以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  序列模式问题,还是不明白  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=152430)

--  作者:phhd
--  发布时间:2017/5/3 17:14:07
--  序列模式问题,还是不明白

请教,序列模式下,d1与d2 输出结果不一样,为什么呢?真搞不懂。谢谢了

 

if close>=open then dww:=close ;
else dww:=open;

d1:dww;
d2:max(close,open);


--  作者:wenarm
--  发布时间:2017/5/3 17:26:18
--  
逐K线计算时,控制语句比如IF THEN ,FOR 等语句工作机制是每周期都去执行一次,因此在逐K线模式下,可以利用这种灵活的模式来设计我们的策略,比如加仓、减仓、资金管理策略等等。

    序列模式计算时,控制语句条件允许使用序列变量,由于序列模式只执行一次控制语句解析,对于序列变量,仅取最后一个数据做为条件判断

仅刷最后一根K线,当选中逐K线计算模式,并勾选本选项,在图表上加载本公式。当客户端接收到最新一笔行情数据后,在历史 K线上不再重新执行本公式,而只是在最后一根K线上重新计算一次公式(本质是:只在第一次加载公式时在每根历史K线上完整的计算一遍公式,其后就只在最后一根K线上做完整计算了,历史K线上产生的信号一直保留不再随行情更新而变化。)。通过这种方式提高执行效率,避免当行情更新时系统在每根历史K线上都需要做大量重复计算而消耗CPU处理时间。

if close>=open then dww:=close ;.//这个是根据你最新行情的close>=open。进行判断的,
else dww:=open;

d1:dww;
d2:max(close,open);


--  作者:phhd
--  发布时间:2017/5/3 17:38:06
--  
序列模式下,if then 或  for语句在加载时只解析最后一根k,而max(c,o)在加载时也解析历史k?如果max(c,0)不解析历史k,怎么会得到开盘收盘的较高价曲线?
--  作者:yukizzc
--  发布时间:2017/5/4 8:41:08
--  

是的,只有if for这个计算最后一根

对于图表策略必须逐k,所以如果不是喜欢研究底层不建议你太过费心这个