欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 什么叫做“从头刷新指标数据时”

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有5381人关注过本帖平板打印复制链接

主题:什么叫做“从头刷新指标数据时”

帅哥哟,离线,有人找我吗?
klc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/5/5 22:35:06    Post IP:183.235.249.123[只看该作者]

你看看我的“教你写一个不卡的复杂图表策略”你就知道了,这是里面我的研究报告:

“逐K线计算”+“仅刷最后一根K线”模式的运行原理是这样的:

加载公式到图表,或公式被初次stkindi:从第1根K线(barpos=1)逐根计算至最后一根K线(barpos=DATACOUNT且islastbar为true

收到新的行情但没有产生新的K线:仅就最后一根K线进行计算

收到新的行情并且产生新的K线(即新K线收到第一笔行情):从第1根K线(barpos=1)逐根计算至最后一根K线(barpos=DATACOUNT且islastbar为true

 

所以,金字塔即使在“仅刷最后一根K线”时也会新产生一根K线就“从头刷新指标数据”,不勾选他,则每次都是“从头刷新指标数据”。所以两种全局变量表现不同:VARIABLE在计算barpos=1的K线时被重置,GLOBALVARIABLE不会,所以使用GLOBALVARIABLE要更小心,例如我曾经遇到两次评测的结果不同,后来查出的原因就是连两次评测时,GLOBALVARIABLE都没被重置,也就是GLOBALVARIABLE竟然记住了上次评测时最后一次被赋予的值。当然,把评测窗口关闭,然后重新从菜单中点击再次进入交易评测,GLOBALVARIABLE就被重置了。

 

我还发现,当你把公式加载到图表后,GLOBALVARIABLE就再也不会被重置,即使你进入代码编辑,修改了一点代码,保存,图表上的公式进行了重新计算,GLOBALVARIABLE也没有被重置。

 

换句话说GLOBALVARIABLE在加载后,只进行一次初始化,然后只能通过代码来改变他的值,你可以在barpos=1时对他进行赋值个初始值,那他和variant就几乎没什么两样了。

 

以前我以为勾选了“仅刷最后一根K线”,GLOBALVARIABLE或variable就每次都被重置,但实际不是的,只是这时金字塔对最后一根K线的“临时值”是不保存的,但当新K线产生时,那根K线最后一次被计算的值还是会被保存的。

你可以试试:

variable:mybarpos=0;

mybarpos:=mybarpos+1;

A:barpos;

B:mybarpos;

上面A、B输出总是一样的,但是你想过没有,最后一根K线在实盘时往往被刷新很多次,结果系统只承认一次,明白了吧?

 

globalvariable:mybarpos=0;

mybarpos:=mybarpos+1;

A:barpos;

B:mybarpos;

这个输出的B就不一定和A一样了,只有第一次加载时是一样的,第二次计算,B就都比A大很多了,总之B总是会越来越大


 回到顶部