以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  代码表达是否正确的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=167650)

--  作者:小李飞刀
--  发布时间:2019/1/11 13:51:26
--  代码表达是否正确的问题
 //yyhl3760:=selfdata(\'yyhl3760\');
//yyhl37day:=selfdata(\'yyhl37day\');
yyhl3760:=STKINDI(\'\',\'yt.hl37\',0,5);
yyhl37day:=STKINDI(\'\',\'yt.hl37\',0,6);
(以上两个用法哪一个准确?,上面两个用法是否结果一致。,帮忙看一下,下面的语句是否能够正确表达出,三个买入点)
第一点0:=hl37>0 and ref(hl37,1)<0;
firsthour0:=if(yyhl3760>0 and 第一点0,1,if(yyhl3760<0,-1,0)); 
firsthour1:=if(firsthour0=0,ref(firsthour0,barslast(firsthour0<>0)),firsthour0);
第一点1:=firsthour1>0 and ref(firsthour1,1)<0;
firsthour2:=if(yyhl3760>0 and 第一点0 and ref(firsthour1,1)>0,1,if(yyhl3760<0,-1,0)); 
firsthour3:=if(firsthour2=0,ref(firsthour2,barslast(firsthour2<>0)),firsthour2);
第一点2:=firsthour3>0 and ref(firsthour3,1)<0;
firsthour4:=if(yyhl3760>0 and 第一点0 and ref(firsthour3,1)>0,1,if(yyhl3760<0,-1,0)); 
firsthour5:=if(firsthour4=0,ref(firsthour4,barslast(firsthour4<>0)),firsthour4);
第一点3:=firsthour5>0 and ref(firsthour5,1)<0;
firstday0:=if(yyhl37day>0 and 第一点0,1,if(yyhl37day<0,-1,0)); 
firstday1:=if(firstday0=0,ref(firstday0,barslast(firstday0<>0)),firstday0);
第一点10:=firstday1>0 and ref(firstday1,1)<0;
firstday2:=if(yyhl3760>0 and 第一点0 and ref(firstday1,1)>0,1,if(yyhl3760<0,-1,0)); 
firstday3:=if(firstday2=0,ref(firstday2,barslast(firstday2<>0)),firstday2);
第一点20:=firstday3>0 and ref(firstday3,1)<0;
firstday4:=if(yyhl3760>0 and 第一点0 and ref(firstday3,1)>0,1,if(yyhl3760<0,-1,0)); 
firstday5:=if(firstday4=0,ref(firstday4,barslast(firstday4<>0)),firstday4);
第一点30:=firstday5>0 and ref(firstday5,1)<0;
第一点:=第一点1 or 第一点10;
第二点:=第一点2 or 第一点20;
第三点:=第一点3 or 第一点30; 

--  作者:FireScript
--  发布时间:2019/1/11 14:28:31
--  
 你得给出你的需求思路啊。你只给我代码,我没办法知道你代码是否符合你自己的思路。 其实你代码既然已经写出来了,你可以在图表上来核对下自己的思路的。

--  作者:老刀
--  发布时间:2019/1/11 15:25:17
--  
 //yyhl3760:=selfdata(\'yyhl3760\');
yyhl3760:=STKINDI(\'\',\'yt.hl37\',0,5);

请问上面两个,用自定义数据和STKINDI,返回值是一样的吗?自定义数据返回值是当前该指标数值,还是若干周期的数值。


--  作者:老刀
--  发布时间:2019/1/11 15:39:30
--  
我不太确定:使用自定义数据还是使用跨周期引用。
//yyhl3760:=selfdata(\'yyhl3760\');
yyhl3760:=STKINDI(\'\',\'yt.hl37\',0,5);
上面两个式子调用的是同一个指标表达式中的hl37,这个指标

--  作者:FireScript
--  发布时间:2019/1/11 15:55:07
--  
自定义数据和STKINDI不一样。2者适用在不同场景下。

他们的返回值都是和品种以及K线位置对应的,不过自定义数据返回值还得进一步看你具体怎么设置的。

调用指标使用stkind就可以了。自定义数据通常是拿来做横向统计和排序之类的。



--  作者:老刀
--  发布时间:2019/1/11 16:28:09
--  
谢谢。
我使用的时候,感觉一些比较复杂的程序判断,用自定义数据解决,确实能够提高效率,比如非常多的跨周期调用会造成死机,可是用自定义数据,就不会死机。
所以自定义数据在选股和预警方面等大数据处理的时候,还是很有效的。
非常希望知道:自定义数据和STKINDI不一样,表现在哪里。
据我的观察,自定义数据返回的是当前时刻(当下周期)的值,而之前的自定义数据之是被冲掉的,不知道是不是这样。
举例:我有一个自定义数据用来判断5分钟线的多空:dk5。
现在dk5正表示为“空”,那么我在1分钟线上调用dk5,结果1分钟线上,当前周期之前的所有dk5都是“空”。
不知道我理解的对不对

--  作者:FireScript
--  发布时间:2019/1/11 16:40:19
--  
 自定义数据和stkind引用不具备对比性的,完全不一样的功能,只是有些场景下可以实现相同的需求而已。 自定义数据是可以设置刷新时间的,设置的合理的话,计算的负荷肯定小点。

你给我看下你自定义数据是如何设置的吧,这样我才能知道你如何用的。因为自定义数据设置不一样,实现的效果也很不一样的。