以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  为何STKINDI引用得到的数据不一致  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=147240)

--  作者:daviwang
--  发布时间:2017/1/23 11:10:19
--  为何STKINDI引用得到的数据不一致

我想优化被引用技术指标中的参数,用了“CD1h:=STKINDI(\'\',\'引用指标2.cd1(\'&m1&\',\'&m2&\',\'&m3&\',\'&m4&\',\'&m5&\',\'&m6&\'\'&m7&\',\'&m8&\',\'&m9&\')\',0,24,2);”的语句,但发现被引用技术指标中的参数在指定参数和固定参数时,得到的数据不一致,即引用1和引用2得到的数值不一致。这是什么原因?

 

技术指标代码:

 //指定参数
cc:=c;
INPUT:m1(11,10,90,2),m2(25,1,66,2),m3(36,1,39,1),m4(10,1,39,1),m5(10,1,39,1),m6(16,1,39,1),m7(80,50,99,3),m8(16,1,39,1),m9(80,50,99,3);
pl:=c-ema(c,m1);
map1:=ema(pl,m2);
map2:=ema(pl,m3);
CD1:=2*(map1-map2);
cd2:=ref(cd1,1);
cd3:=ref(cd1,2);

ma7:=ma(c,m4);
ma8:=ma(c,m5);
ma9:=ma(c,m6);
ma10:=ma(c,m7);
ma11:=ma(c,m8);
ma12:=ma(c,m9);

 

//固定参数

pl1:=c-ema(c,14);
map11:=ema(pl1,19);
map21:=ema(pl1,26);
CD01:=2*(map11-map21);
CD11:=2*(map11-map21);
cd21:=ref(2*(map11-map21),1);
cd31:=ref(2*(map11-map21),2);
nlw1:=ma(tr,3);
ma71:=ma(c,7);
ma81:=ma(c,36);
ma91:=ma(c,6);
ma101:=ma(c,40);

 

 

引用1:固定参数:

 

CD1h:=STKINDI(\'\',\'引用指标2.cd11\',0,24,2);
cd2h:=STKINDI(\'\',\'引用指标2.cd21\',0,24,2);
cd3h:=STKINDI(\'\',\'引用指标2.cd31\',0,24,2);
nh:=STKINDI(\'\',\'引用指标2.n1w1\',0,24,2);
ma7h:=STKINDI(\'\',\'引用指标2.ma71\',0,24,2);
ma8h:=STKINDI(\'\',\'引用指标2.ma81\',0,24,2);
ma9h:=STKINDI(\'\',\'引用指标2.ma91\',0,24,2);
ma10h:=STKINDI(\'\',\'引用指标2.ma101\',0,24,2);

 

 

引用2:引用时指定参数:

 

INPUT:s1(14,2,22,1),s2(19,2,32,2),s3(26,2,32,2),s4(7,2,22,2),s5(36,2,42,2),s6(6,1,22,2),s7(40,2,52,2),s8(2,2,2,2),s9(2,2,2,2),s10(2,2,2,2),s11(2,2,2,2);


m1:=NUMTOSTR(s1,0);
m2:=NUMTOSTR(s2,0);
m3:=NUMTOSTR(s3,0);
m4:=NUMTOSTR(s4,0);
m5:=NUMTOSTR(s5,0);
m6:=NUMTOSTR(s6,0);
m7:=NUMTOSTR(s7,0);
m8:=NUMTOSTR(s8,0);
m9:=NUMTOSTR(s9,0);
m10:=NUMTOSTR(s10,0);
m11:=NUMTOSTR(s11,0);

CD1h:=STKINDI(\'\',\'引用指标2.cd1(\'&m1&\',\'&m2&\',\'&m3&\',\'&m4&\',\'&m5&\',\'&m6&\'\'&m7&\',\'&m8&\',\'&m9&\')\',0,24,2);
cd2h:=STKINDI(\'\',\'引用指标2.cd2(\'&m1&\',\'&m2&\',\'&m3&\',\'&m4&\',\'&m5&\',\'&m6&\'\'&m7&\',\'&m8&\',\'&m9&\')\',0,24,2);
cd3h:=STKINDI(\'\',\'引用指标2.cd3(\'&m1&\',\'&m2&\',\'&m3&\',\'&m4&\',\'&m5&\',\'&m6&\'\'&m7&\',\'&m8&\',\'&m9&\')\',0,24,2);
nh:=STKINDI(\'\',\'引用指标2.n1w1\',0,24,2);
ma7h:=STKINDI(\'\',\'引用指标2.ma7(\'&m1&\',\'&m2&\',\'&m3&\',\'&m4&\',\'&m5&\',\'&m6&\'\'&m7&\',\'&m8&\',\'&m9&\')\',0,24,2);
ma8h:=STKINDI(\'\',\'引用指标2.ma8(\'&m1&\',\'&m2&\',\'&m3&\',\'&m4&\',\'&m5&\',\'&m6&\'\'&m7&\',\'&m8&\',\'&m9&\')\',0,24,2);
ma9h:=STKINDI(\'\',\'引用指标2.ma9(\'&m1&\',\'&m2&\',\'&m3&\',\'&m4&\',\'&m5&\',\'&m6&\'\'&m7&\',\'&m8&\',\'&m9&\')\',0,24,2);
ma10h:=STKINDI(\'\',\'引用指标2.ma10(\'&m1&\',\'&m2&\',\'&m3&\',\'&m4&\',\'&m5&\',\'&m6&\'\'&m7&\',\'&m8&\',\'&m9&\')\',0,24,2);

 

 

在引用1和引用2中情况中,cd1h,cd2h,cd3h,ma7h,ma8h得到的数值相同,但ma9h,ma10h得到的数据总是不同。这是什么原因?

 

 

 

 

 

 

 

 

[此贴子已经被作者于2017-1-23 11:11:42编辑过]

--  作者:yukizzc
--  发布时间:2017/1/23 13:07:58
--  

ma101:=ma(c,40);

ma10h:=STKINDI(\'\',\'引用指标2.ma101\',0,24,2);

这个是固定40

 

m7(80,50,99,3),

ma10:=ma(c,m7);
ma10h:=STKINDI(\'\',\'引用指标2.ma10(\'&m1&\',\'&m2&\',\'&m3&\',\'&m4&\',\'&m5&\',\'&m6&\'\'&m7&\',\'&m8&\',\'&m9&\')\',0,24,2);

m7的范围是从50到99,步长3

你传入40这个数值不在这个范围内