以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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 -- 好的 |