以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 如何让后台执行全局变量往下传递数据 (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=8021) |
-- 作者:longbow -- 发布时间:2011/9/15 8:50:31 -- 如何让后台执行全局变量往下传递数据 环境: 后台执行代码 需求:需要一个全局变量在每次执行的时候往后传递数据 现状: 现在的解决方案是设置全局变量,利用Exdataset 以及Exdata来保存与获取 问题: 上述这种解决问题的方法很好,但有个缺点,就是当算法很多,全局变量很多时查询与维护不方便。 希望: 能用Variable 直接声明一个变量,再每次单步执行的时候它的值能够往后传递。而不是每次单步执行的时候都要重新计算或者利用Exdata获取。 例子: 记录是否已经止损的状态 variable: bstopped:=0; if (stoploss) then bstopped:=1 if (bstopped=0) then begin end if (bstopped=1) then begin end 我现在担心每次重新执行时bstopped都被重新初始化成0. 由于时间紧急,请高手尽快解答一下。 谢谢! |
-- 作者:longbow -- 发布时间:2011/9/15 8:53:13 -- 用extgbdata和extgbdataset维护起来不方便,特别是这些单值型全局变量比较多的时候 楼主应该是这个意思: 环境:后台执行代码,也可前台,应该不影响 需求:需要一个全局变量(单值型的)在每次执行的时候往后传递数据 现状:现在的解决方案是设置全局变量,利用Exdataset 以及Exdata来保存与获取 上述这种解决问题的方法很好,但有个缺点,就是当算法很多,全局变量很多时查询与维护不方便。
希望: 能用Variable2 直接声明一个变量,该变量的作用: 1,再每次单步执行的时候它的值能够往后传递。 2,在每次加载程序的时候初始化一次初始值,仅此一次。类似runmode、input函数等 3,该变量只在最后一个周期有效 也就是一个赋值和取值跟普通变量一样方便的单值型全局变量。 |
-- 作者:fly -- 发布时间:2011/9/15 8:59:00 -- 你的是后台程序化交易,请用Exdataset 以及Exdata来保存与获取全局变量.
variable:定义的全局变量是用于图表的----用于图表,只会初始化一次,不会出现楼主说的情况 |
-- 作者:阿火 -- 发布时间:2011/9/15 14:12:50 --
不好意思,我点错了,编程了二楼的帖子了。
补充一下:所声明的全局变量,只局限在改公式使用。不像extgbdata是公共的、开放的 [此贴子已经被作者于2011-9-15 14:13:52编辑过]
|
-- 作者:王锋 -- 发布时间:2011/9/15 14:16:49 -- 有一定的可行性,会在日后版本中考虑增加 GlobalVariable: 这样的全局变量声明。 |
-- 作者:阿火 -- 发布时间:2011/9/15 16:30:37 -- 丰胸果然牛 |
-- 作者:longbow -- 发布时间:2011/9/15 21:50:25 -- 谢谢。
请增加后台执行的全局变量。 |
-- 作者:阿火 -- 发布时间:2011/9/17 22:53:32 -- 后来想想,认为: 1,其实无需限定为最后一个周期才有效,如果需要,用户可以自行用islastbar控制 2,图标和后台均可以使用 也就是这样的变量:只局限在公式内部使用的、无需保存的、非公共的、非开放的、赋值和取值非常方便的单值型全局变量
有了这样的变量后,会有更多的功效,比如:无需重复计算的变量,都可以使用这个变量加快程序运行速度 举个例子: //某日内交易模型,开盘价 + 昨日的波幅*0.4 +作为上界 |
-- 作者:longbow -- 发布时间:2011/9/18 21:05:36 -- LeeVolvo的理解非常正确,就是很多变量是重复计算的,比如开盘价的取值,前三十分钟的最高最低值,以及当日的交易次数与仓位信息。
这些计算都是重复的,而且是相当的计算量,尤其是过去N周期的最高最低值,如果能够避免计算,则计算量会非常节省。
谢谢! |
-- 作者:阿火 -- 发布时间:2011/9/19 14:35:45 -- 呵呵,要采用这种方法,对模型编写水平的要求就比较高了。 |