以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [原创]关于图表程序化问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=163819)

--  作者:zjw888
--  发布时间:2018/6/4 11:09:09
--  [原创]关于图表程序化问题
我在策略里面用到了getinifile/writeinifile读写本地文件,在图表程序化运行时,由于图表程序化的机制,图表中K线信号变化过程中也会执行策略的getinifile/writeinifile,有什么办法只让程序化中设置的K线走完运行一次?
--  作者:zjw888
--  发布时间:2018/6/4 11:11:00
--  
我的意思是,图表程序化运行过程中,相当于执行了两次,1次是窗口的图表加载了K线并且有策略,信号变化会执行一次,另外的是程序化运行时,K线走完也会运行一次,有什么办法只在K线走完运行?
--  作者:FireScript
--  发布时间:2018/6/4 11:24:01
--  
 这个做不到的。可以限制只读写一次,但是如果按照你说的走完K去读写一次,那是不行的,对于代码执行而言没有这么个说法的。
--  作者:zjw888
--  发布时间:2018/6/4 15:45:08
--  
如何限制只读写一次?在图表中加载策略后(非程序化),出现信号后会一直执行,加全局变量限制也没有用(只有走完K线变量才会固定值)
--  作者:FireScript
--  发布时间:2018/6/4 16:39:52
--  
 限制一个K内只赋值一次一般用另一种全局变量:http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm  这里用EXTGBDATA 来获取的全局变量。你可以看下这个全局变量的用法。

通常是用这个全局变量保存K线barpos或者time,来作为限制某个语句只执行一次的条件。

比如你保存了K线的time,那么只有当当前K的time不等于全局变量保存的值的时候,执行一次,执行完成之后将全局变量赋值成当前的time。

不过我觉得你用getinifile 这类函数在图表上的话其实有一定问题,因为他们也是只有最新值。你在图表上从历史到现在这个函数取到的值都是一样的,会影响策略信号的。



--  作者:zjw888
--  发布时间:2018/6/4 16:49:41
--  
好的