以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  分段提取数据产生信号。  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=137474)

--  作者:flyme
--  发布时间:2016/8/3 13:32:38
--  分段提取数据产生信号。
模型制作中,有没有方法实行:按照成交量或者持仓量的变化,自动提取后主力合约的K线数据,然后产生信号?
--  作者:jinzhe
--  发布时间:2016/8/3 13:43:06
--  
这个不就是系统自带的连续合约么?
--  作者:flyme
--  发布时间:2016/8/3 13:59:09
--  

我的意思是,当后主力合约和现在的主力合约,他们之间成交量或者持仓量的比大于一个数值,我就提取后主力合约。


--  作者:jinzhe
--  发布时间:2016/8/3 14:04:11
--  
系统判断不了“后主力合约”
--  作者:flyme
--  发布时间:2016/8/3 14:07:14
--  
换句话说,我要在开仓的时候将系统默认的主力合约提前变更,从而产生信号。趋势行情中,后主力合约和当前主力合约的直接反应是,多头市场后主力更强,空头市场后主力更弱。
--  作者:flyme
--  发布时间:2016/8/3 14:11:08
--  

您说的对,后主力合约的判断条件我自己添加,定义为:条件A;

 

达到条件A系统自动提取后主力合约的数据产生K线,开仓的不是主力合约而是后主力合约。


--  作者:jinzhe
--  发布时间:2016/8/3 14:17:58
--  
变更指的是交易合约的转换?
--  作者:flyme
--  发布时间:2016/8/3 14:37:23
--  

不是交易合约的转换,可能是我没阐述清楚。下面我给出一张图。在下图中,根据主力合约和后主力合约的持仓量或者成交量之间的比例为衡量标准。这个标准称之为条件A,当条件A成立时。交易系统自动提取后主力合约的数据产生信号。比方说下图的国债,在同一时间,12月合约有信号,而主力合约没有信号。

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:t12.png
图片点击可在新窗口打开查看
第一张是现在的主力合约,最后一张是后主力12月份合约。
--  作者:jinzhe
--  发布时间:2016/8/3 14:51:14
--  

这段代码要同时交易主力和后主力合约

 

主力合约:=\'AA01\';//这里AA01代表你的主力合约代码;

后主力合约:=\'AA02\';//这里AA02代表你的后主力合约代码;

v1:=callstock(主力合约,vtvol,datatype);

v2:=callstock(后主力合约,vtvol,datatype);

bl:=v1/v2;//bl就是用户所需要的主力和后主力合约成交量的比值

A:=0.5;//A就是用户所讲的标准,这里赋值为0.5

 

if bl<a and stricmp(stklabel,主力合约) then buy(1,10,market);//当比值小于标准值时买主力合约的

if bl>a and stricmp(stklabel,后主力合约) then buy(1,10,market);//当比值大于标准值时买后主力合约的


--  作者:flyme
--  发布时间:2016/8/4 12:43:48
--  

M3 :=month>=10 and month<=12;
M6 :=month>=1  and month<=3;
M9 :=month>=4  and month<=6;
M12:=month>=7  and month<=9;//时间处于7月-9月期间
取3月 :=callstock(\'t03\',vtOPENINT,datatype);
取6月 :=callstock(\'t06\',vtOPENINT,datatype);
取9月 :=callstock(\'t09\',vtOPENINT,datatype);
取12月:=callstock(\'t12\',vtOPENINT,datatype);//取12月数据
后主力合约:=if(M3,取3月,if(M6,取6月,if(M9,取9月,取12月)));

主力合约:=\'t00\';//这里AA01代表你的主力合约代码;
//后主力合约:=\'t12\';//这里AA02代表你的后主力合约代码;
v1:=callstock(主力合约,OPENINT,datatype);
v2:=callstock(后主力合约,OPENINT,datatype);
bl:=v2/v1;//bl就是用户所需要的主力和后主力合约成交量的比值
A :=0.6;//A就是用户所讲的标准,这里赋值为0.5
if bl<a and stricmp(stklabel,主力合约)  and holding<=0 then buy(1,10,market);//当比值小于标准值时买主力合约的
if bl>a and stricmp(stklabel,后主力合约)and holding>=0 then buy(1,10,market);//当比值大于标准值时买后主力合约的

 

以上代码错在哪里?没信号?