龙听期货论坛's Archiver

龙听 发表于 2022-5-6 16:04

multicharts如何在小周期引用大周期的KDJ随机指标【定稿系列!】

说明:

[b]一、如何设置工作区及图表:[/b]

1、新建一个“工作区”,在新建工作区中新建一个“图表窗口”,选择好品种和月份合约(可以具体合约或指数或主力连续)及图表周期(比方说15分钟级别);

2、在新建的图表窗口右键单击选择“插入商品”,我们建一个同品种,同月份合约但是不同图表周期(比方说日线级别);确定后就会在图表窗口下方出现一个副图,显示的是大周期的品种。示例如下:

[img]http://p.algo2.net/2022/0506/571067b682c09.png[/img]

[b]二、制作想在大周期中显示的指标(以kdj为例)[/b]

KDJ指标是经典的振荡指标,这里附上经典系列程式码:函数:ankdj
**** Hidden Message *****因为我们要用这个函数来计算K、D、J三个值,而通过上面的input,我们可以看到想在主图中引用指标需要用到六个参数,分别是:[code]inputs:Length( numeric ),SlowLength( numeric ),SmoothLength( numeric ),KValue( numericref ),DValue( numericref ),JValue( numericref );[/code],平时我们多用的KDJ的参数是9.3.3,所以这里前面三个我们也使用这个,后面的三个值分别是K,D,J的三个变量。

[b]三、如何在指标或策略中引用大周期指标的值[/b]

1、在主图中默认的数据是用编号1的数据,即data1,因为是默认的,所以平时也不特意标出了。
2、副图中日线的数据是用编号为2#的数据进行显示和计算,一般用data2来表示。
3、因为在策略中我们只有一个策略编写窗口,所以我们要要标出制作和运行DATA2的变量,让电脑知道是用的data2 的数据,不是默认的数据。
4、在主图中策略编写声明data2的变量:[code]variables:
KValue(0,data2),
DValue(0,data2),
JValue(0,data2),
[/code]然后计算调用三个值,这样调用:[code] Value1 = ankdj(9, 3, 3,kvalue, dvalue, jvalue) of data2 ;[/code]ankdj是刚才在函数里面中填加的,通过刚才ankdj的程式码知道这个函数需要6个变量,三个参数9.3.3 和将K,D,J赋值给三个变量。所以通过上面的这个调用我们就能调到KDJ在副图中日线的值,分别给kvalue,,dvalue,jvalue。

然后我们就可以发挥无穷的想象力,如何弄这三个变量来营造我们的交易策略了。

5、下面我给出一个这样的策略,k值大于d值就只多 不空,k 值小于d值就只空不多。进场以50个bar 的最高和最低做为突破进场,出场我使用3倍atr止损或止盈出场。

6、完整代码如下:**** Hidden Message *****7、效果图如下:(有兴趣的小伙伴可以对一下指标与上面的信号是天否一致:)
[img]http://p.algo2.net/2022/0506/6aa4c91663670.png[/img]

页: [1]