以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 策略编写求助区 (http://222.73.7.161/bbs/list.asp?boardid=11) ---- 天灵灵,地灵灵,全局变量来显灵,有请董大大,火大大 (http://222.73.7.161/bbs/dispbbs.asp?boardid=11&id=12687) |
-- 作者:sun884588 -- 发布时间:2012/6/28 17:27:40 -- 天灵灵,地灵灵,全局变量来显灵,有请董大大,火大大 是这样一个东西
远期卖一:=DYNAINFO2( 34,\'zjif12\'); 买远抛近差值1:远期卖一-近期买一;
我想通过全局变量来记录每天合约价差的变化。
分别记录4个全局变量
他们分别对应2个基础值。基础值就是,买远抛近差值1以及买近抛远差值1的最高和最低。 我主要想看这两个基础值得波动范围。
也就是
我希望通过全局变量记录4个东西。
买远抛近差值1最高,买远抛近差值1最低,买近抛远差值1最高,买近抛远差值1最低。
每次行情数据进入机器,那么分别比较:买远抛近差值1和买远抛近差值1最高,买远抛近差值1最低之间的关系,大小,如果最新的买远抛近差值1大于 买远抛近差值1最高,那么买远抛近差值1最高就是最新的值得数值,反之,如果买远抛近差值1<买远抛近差值1最高,那么原来的买远抛近差值1最高的值不改变。如果买远抛近差值1<买近抛远差值1最低,那么买近抛远差值1最低就变成最新的买远抛近差值1,全局变量改变。如果没有小于,也就是没有创当日最低,那么就不动作,之前的最低还是最低。
买近抛远差值1最高和最低的原理完全和上面一样。即4个全局变量分别记录2组数值的最高,最低。就可以了。但是需要不断更新,比较,即进来的最新行情数据都和全局变量不断比较,全局变量有因为行情的变化而变化。
谢谢大家。
|
-- 作者:董小球 -- 发布时间:2012/6/29 10:38:32 -- {在这里http://www.weistock.com/WeisoftHelp/quanjubianliang.htm 设置两个全局变量A和B,方便后面使用 } 远期卖一:=DYNAINFO2( 34,\'zjif12\'); 远期买一:=DYNAINFO2( 28,\'zjif12\'); 近期卖一:=DYNAINFO2( 34,\'zjif07\'); 近期买一:=DYNAINFO2( 28,\'zjif07\'); 买远抛近差值1:远期卖一-近期买一; 买近抛远差值1:远期买一-近期卖一; //如果发现a和b没有值,就把他们初始化为下面的值; IF EXTGBDATA(\'A\' )=0 and currenttime>085900 and currenttime<151500 THEN BEGIN EXTGBDATASET( \'A\',买远抛近差值1); END IF EXTGBDATA(\'B\' )=0 and currenttime>085900 and currenttime<151500 THEN BEGIN EXTGBDATASET( \'B\',买近抛远差值1); END //把A和B跟当前的差值进行比较,如果小于当前差值,就把新的差值赋给A和B, //总之让A和B始终代表最大的差值; IF 买远抛近差值1>EXTGBDATA(\'A\' ) and EXTGBDATA(\'A\' )>0 THEN BEGIN EXTGBDATASET( \'A\',买远抛近差值1); END IF 买近抛远差值1>EXTGBDATA(\'B\' ) and EXTGBDATA(\'B\' )>0 THEN BEGIN EXTGBDATASET( \'B\',买近抛远差值1); END //收盘后把A和B重新初始化为0; IF currenttime>151500 THEN BEGIN EXTGBDATASET( \'A\',0); END IF currenttime>151500 THEN BEGIN EXTGBDATASET( \'B\',0); END
|
-- 作者:董小球 -- 发布时间:2012/6/29 10:38:46 -- 大概思路就是这样的,自己再研究研究吧 |
-- 作者:sun884588 -- 发布时间:2012/6/29 11:40:15 -- 谢谢董大大 |