欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → [原创]多个后台程序模拟盘测试中,持续更新

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有6261人关注过本帖平板打印复制链接

主题:[原创]多个后台程序模拟盘测试中,持续更新

帅哥哟,离线,有人找我吗?
量化资产
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:16 积分:0 威望:0 精华:0 注册:2018/5/6 14:33:55
  发帖心情 Post By:2018/5/12 7:53:19 [只看该作者]

考虑基差风险
myaccount:='623450';手数:=1;MINDIFF1:=10;
//全合约:='CU06','CU07','CU08','CU09','CU10','CU11','CU12','CU01','CU02','CU03','CU04';

//非主力合约:='CU01','CU02','CU03','CU04','CU05','CU06','CU08','CU09','CU10','CU11','CU12';
//合约01:='CU01';合约02:='CU02';合约03:='CU03';合约04:='CU04';合约05:='CU05';合约06:='CU06';
//合约07:='CU07';合约08:='CU08';合约09:='CU09';合约10:='CU10';合约11:='CU11';合约12:='CU12';
//合约06:='CU11';合约08:='CU12';合约09:='CU01';
主力合约:='CU07';
多头均价主力合约:=TAVGENTERPRICEEX2(myaccount ,主力合约 ,0);空头均价主力合约:=TAVGENTERPRICEEX2(myaccount ,主力合约 ,1);
买一价主力合约:=DYNAINFO2( 20,主力合约);卖一价主力合约:=DYNAINFO2( 21,主力合约);盘口差价主力合约:=卖一价主力合约-买一价主力合约;
//合约06
合约06:='CU06';input:基差合约06(-190,-250,-150,10);
多头均价合约06:=TAVGENTERPRICEEX2(myaccount ,合约06 ,0);空头均价合约06:=TAVGENTERPRICEEX2(myaccount ,合约06 ,1);
买一价合约06:=DYNAINFO2( 20,合约06);卖一价合约06:=DYNAINFO2( 21,合约06);盘口差价合约06:=卖一价合约06-买一价合约06;
多持合约06:=tbuyholdingex (myaccount,合约06,2);空持合约06:=tsellholdingex(myaccount,合约06,2) ;持合约06:=多持合约06+空持合约06;//绝对持仓
//开仓条件//基差有一跳利润//盘口有一跳利润
if 持合约06=0 then begin
    买开仓基差差值合约06:买一价合约06-买一价主力合约-基差合约06,NODRAW;卖开仓基差差值合约06:卖一价合约06-卖一价主力合约-基差合约06,NODRAW;
    DEBUGFILE('C:\TEST.TXT','买开仓基差差值合约06小于10 %.0f', 买开仓基差差值合约06);DEBUGFILE('C:\TEST.TXT','卖开仓基差差值合约06大于10 %.0f', 卖开仓基差差值合约06);
    买开仓条件合约06:=买开仓基差差值合约06<MINDIFF1 and 盘口差价合约06>MINDIFF1;卖开仓条件合约06:=卖开仓基差差值合约06>MINDIFF1 and 盘口差价合约06>MINDIFF1;
    tcancelex(买开仓条件合约06=0 and tisremainex(1,myaccount,合约06)>0 ,1,myaccount,合约06); //买一卖一变动后,不满足条件就撤单
    tcancelex(卖开仓条件合约06=0 and tisremainex(3,myaccount,合约06)>0 ,3,myaccount,合约06); 
    //开仓//无仓和无挂单时买1价开多//无仓和无挂单时卖1价开空//盘口差价大于1
    tbuy     (买开仓条件合约06  and tisremainex(1,myaccount,合约06)=0,手数,lmt,买一价合约06,0,myaccount,合约06);
    tbuyshort(卖开仓条件合约06  and tisremainex(3,myaccount,合约06)=0,手数,lmt,卖一价合约06,0,myaccount,合约06);
end
//空头持仓撤开多单//多头持仓撤开空单
tcancelex(空持合约06>0,1,myaccount,合约06);tcancelex(多持合约06>0,3,myaccount,合约06); 
//平仓//平仓条件//基差有一跳利润//盘口有一跳利润
if 多持合约06>0 then begin
    多头基差均价合约06:=多头均价合约06-空头均价主力合约;//实际持仓基差价格
    平多仓基差差值合约06:卖一价合约06-卖一价主力合约-多头基差均价合约06,NODRAW;DEBUGFILE('C:\TEST.TXT','平多仓基差差值合约06大于10 %.0f', 平多仓基差差值合约06);
    平多仓条件合约06:=平多仓基差差值合约06>MINDIFF1;//平仓//有多仓和无挂平多单时卖1价平多//有空仓和无挂平空单时买1价平空
    tcancelex(tisremainex(2,myaccount,合约06)>0 and 平多仓条件合约06=0,2,myaccount,合约06);//买一卖一变动后,不满足条件就撤单
    tsell(平多仓条件合约06 and tisremainex(2,myaccount,合约06)=0,多持合约06,lmt,卖一价合约06,0,myaccount,合约06);
end
if 空持合约06>0 then begin 
    空头基差均价合约06:=空头均价合约06-多头均价主力合约;
    平空仓基差差值合约06:买一价合约06-买一价主力合约-空头基差均价合约06,NODRAW;DEBUGFILE('C:\TEST.TXT','平空仓基差差值合约06大于10 %.0f', 平空仓基差差值合约06);
    平空仓条件合约06:=平空仓基差差值合约06>MINDIFF1;
    tcancelex(tisremainex(4,myaccount,合约06)>0 and 平空仓条件合约06=0,4,myaccount,合约06); 
    tsellshort(平空仓条件合约06 and tisremainex(4,myaccount,合约06)=0,空持合约06,lmt,买一价合约06,0,myaccount,合约06);
end
//合约08
合约08:='CU08';input:基差合约08(180,150,200,10);
多头均价合约08:=TAVGENTERPRICEEX2(myaccount ,合约08 ,0);空头均价合约08:=TAVGENTERPRICEEX2(myaccount ,合约08 ,1);
买一价合约08:=DYNAINFO2( 20,合约08);卖一价合约08:=DYNAINFO2( 21,合约08);盘口差价合约08:=卖一价合约08-买一价合约08;
多持合约08:=tbuyholdingex (myaccount,合约08,2);空持合约08:=tsellholdingex(myaccount,合约08,2) ;持合约08:=多持合约08+空持合约08;//绝对持仓
//开仓条件//基差有一跳利润//盘口有一跳利润
if 持合约08=0 then begin
    买开仓基差差值合约08:买一价合约08-买一价主力合约-基差合约08,NODRAW;卖开仓基差差值合约08:卖一价合约08-卖一价主力合约-基差合约08,NODRAW;
    DEBUGFILE('C:\TEST.TXT','买开仓基差差值合约08小于10 %.0f', 买开仓基差差值合约08);DEBUGFILE('C:\TEST.TXT','卖开仓基差差值合约08大于10 %.0f', 卖开仓基差差值合约08);
    买开仓条件合约08:=买开仓基差差值合约08<MINDIFF1 and 盘口差价合约08>MINDIFF1;卖开仓条件合约08:=卖开仓基差差值合约08>MINDIFF1 and 盘口差价合约08>MINDIFF1;
    tcancelex(买开仓条件合约08=0 and tisremainex(1,myaccount,合约08)>0 ,1,myaccount,合约08); //买一卖一变动后,不满足条件就撤单
    tcancelex(卖开仓条件合约08=0 and tisremainex(3,myaccount,合约08)>0 ,3,myaccount,合约08); 
    //开仓//无仓和无挂单时买1价开多//无仓和无挂单时卖1价开空//盘口差价大于1
    tbuy     (买开仓条件合约08  and tisremainex(1,myaccount,合约08)=0,手数,lmt,买一价合约08,0,myaccount,合约08);
    tbuyshort(卖开仓条件合约08  and tisremainex(3,myaccount,合约08)=0,手数,lmt,卖一价合约08,0,myaccount,合约08);
end
//空头持仓撤开多单//多头持仓撤开空单
tcancelex(空持合约08>0,1,myaccount,合约08);tcancelex(多持合约08>0,3,myaccount,合约08); 
//平仓//平仓条件//基差有一跳利润//盘口有一跳利润
if 多持合约08>0 then begin
    多头基差均价合约08:=多头均价合约08-空头均价主力合约;//实际持仓基差价格
    平多仓基差差值合约08:卖一价合约08-卖一价主力合约-多头基差均价合约08,NODRAW;DEBUGFILE('C:\TEST.TXT','平多仓基差差值合约08大于10 %.0f', 平多仓基差差值合约08);
    平多仓条件合约08:=平多仓基差差值合约08>MINDIFF1;//平仓//有多仓和无挂平多单时卖1价平多//有空仓和无挂平空单时买1价平空
    tcancelex(tisremainex(2,myaccount,合约08)>0 and 平多仓条件合约08=0,2,myaccount,合约08);//买一卖一变动后,不满足条件就撤单
    tsell(平多仓条件合约08 and tisremainex(2,myaccount,合约08)=0,多持合约08,lmt,卖一价合约08,0,myaccount,合约08);
end
if 空持合约08>0 then begin 
    空头基差均价合约08:=空头均价合约08-多头均价主力合约;
    平空仓基差差值合约08:买一价合约08-买一价主力合约-空头基差均价合约08,NODRAW;DEBUGFILE('C:\TEST.TXT','平空仓基差差值合约08大于10 %.0f', 平空仓基差差值合约08);
    平空仓条件合约08:=平空仓基差差值合约08>MINDIFF1;
    tcancelex(tisremainex(4,myaccount,合约08)>0 and 平空仓条件合约08=0,4,myaccount,合约08); 
    tsellshort(平空仓条件合约08 and tisremainex(4,myaccount,合约08)=0,空持合约08,lmt,买一价合约08,0,myaccount,合约08);
end
//合约09
合约09:='CU09';input:基差合约09(350,300,400,10);
多头均价合约09:=TAVGENTERPRICEEX2(myaccount ,合约09 ,0);空头均价合约09:=TAVGENTERPRICEEX2(myaccount ,合约09 ,1);
买一价合约09:=DYNAINFO2( 20,合约09);卖一价合约09:=DYNAINFO2( 21,合约09);盘口差价合约09:=卖一价合约09-买一价合约09;
多持合约09:=tbuyholdingex (myaccount,合约09,2);空持合约09:=tsellholdingex(myaccount,合约09,2) ;持合约09:=多持合约09+空持合约09;//绝对持仓
//开仓条件//基差有一跳利润//盘口有一跳利润
if 持合约09=0 then begin
    买开仓基差差值合约09:买一价合约09-买一价主力合约-基差合约09,NODRAW;卖开仓基差差值合约09:卖一价合约09-卖一价主力合约-基差合约09,NODRAW;
    DEBUGFILE('C:\TEST.TXT','买开仓基差差值合约09小于10 %.0f', 买开仓基差差值合约09);DEBUGFILE('C:\TEST.TXT','卖开仓基差差值合约09大于10 %.0f', 卖开仓基差差值合约09);
    买开仓条件合约09:=买开仓基差差值合约09<MINDIFF1 and 盘口差价合约09>MINDIFF1;卖开仓条件合约09:=卖开仓基差差值合约09>MINDIFF1 and 盘口差价合约09>MINDIFF1;
    tcancelex(买开仓条件合约09=0 and tisremainex(1,myaccount,合约09)>0 ,1,myaccount,合约09); //买一卖一变动后,不满足条件就撤单
    tcancelex(卖开仓条件合约09=0 and tisremainex(3,myaccount,合约09)>0 ,3,myaccount,合约09); 
    //开仓//无仓和无挂单时买1价开多//无仓和无挂单时卖1价开空//盘口差价大于1
    tbuy     (买开仓条件合约09  and tisremainex(1,myaccount,合约09)=0,手数,lmt,买一价合约09,0,myaccount,合约09);
    tbuyshort(卖开仓条件合约09  and tisremainex(3,myaccount,合约09)=0,手数,lmt,卖一价合约09,0,myaccount,合约09);
end
//空头持仓撤开多单//多头持仓撤开空单
tcancelex(空持合约09>0,1,myaccount,合约09);tcancelex(多持合约09>0,3,myaccount,合约09); 
//平仓//平仓条件//基差有一跳利润//盘口有一跳利润
if 多持合约09>0 then begin
    多头基差均价合约09:=多头均价合约09-空头均价主力合约;//实际持仓基差价格
    平多仓基差差值合约09:卖一价合约09-卖一价主力合约-多头基差均价合约09,NODRAW;DEBUGFILE('C:\TEST.TXT','平多仓基差差值合约09大于10 %.0f', 平多仓基差差值合约09);
    平多仓条件合约09:=平多仓基差差值合约09>MINDIFF1;//平仓//有多仓和无挂平多单时卖1价平多//有空仓和无挂平空单时买1价平空
    tcancelex(tisremainex(2,myaccount,合约09)>0 and 平多仓条件合约09=0,2,myaccount,合约09);//买一卖一变动后,不满足条件就撤单
    tsell(平多仓条件合约09 and tisremainex(2,myaccount,合约09)=0,多持合约09,lmt,卖一价合约09,0,myaccount,合约09);
end
if 空持合约09>0 then begin 
    空头基差均价合约09:=空头均价合约09-多头均价主力合约;
    平空仓基差差值合约09:买一价合约09-买一价主力合约-空头基差均价合约09,NODRAW;DEBUGFILE('C:\TEST.TXT','平空仓基差差值合约09大于10 %.0f', 平空仓基差差值合约09);
    平空仓条件合约09:=平多仓基差差值合约09>MINDIFF1;
    tcancelex(tisremainex(4,myaccount,合约09)>0 and 平空仓条件合约09=0,4,myaccount,合约09); 
    tsellshort(平空仓条件合约09 and tisremainex(4,myaccount,合约09)=0,空持合约09,lmt,买一价合约09,0,myaccount,合约09);
end
//合约10
合约10:='CU10';input:基差合约10(530,400,600,10);
多头均价合约10:=TAVGENTERPRICEEX2(myaccount ,合约10 ,0);空头均价合约10:=TAVGENTERPRICEEX2(myaccount ,合约10 ,1);
买一价合约10:=DYNAINFO2( 20,合约10);卖一价合约10:=DYNAINFO2( 21,合约10);盘口差价合约10:=卖一价合约10-买一价合约10;
多持合约10:=tbuyholdingex (myaccount,合约10,2);空持合约10:=tsellholdingex(myaccount,合约10,2) ;持合约10:=多持合约10+空持合约10;//绝对持仓
//开仓条件//基差有一跳利润//盘口有一跳利润
if 持合约10=0 then begin
    买开仓基差差值合约10:买一价合约10-买一价主力合约-基差合约10,NODRAW;卖开仓基差差值合约10:卖一价合约10-卖一价主力合约-基差合约10,NODRAW;
    DEBUGFILE('C:\TEST.TXT','买开仓基差差值合约10小于10 %.0f', 买开仓基差差值合约10);DEBUGFILE('C:\TEST.TXT','卖开仓基差差值合约10大于10 %.0f', 卖开仓基差差值合约10);
    买开仓条件合约10:=买开仓基差差值合约10<MINDIFF1 and 盘口差价合约10>MINDIFF1;卖开仓条件合约10:=卖开仓基差差值合约10>MINDIFF1 and 盘口差价合约10>MINDIFF1;
    tcancelex(买开仓条件合约10=0 and tisremainex(1,myaccount,合约10)>0 ,1,myaccount,合约10); //买一卖一变动后,不满足条件就撤单
    tcancelex(卖开仓条件合约10=0 and tisremainex(3,myaccount,合约10)>0 ,3,myaccount,合约10); 
    //开仓//无仓和无挂单时买1价开多//无仓和无挂单时卖1价开空//盘口差价大于1
    tbuy     (买开仓条件合约10  and tisremainex(1,myaccount,合约10)=0,手数,lmt,买一价合约10,0,myaccount,合约10);
    tbuyshort(卖开仓条件合约10  and tisremainex(3,myaccount,合约10)=0,手数,lmt,卖一价合约10,0,myaccount,合约10);
end
//空头持仓撤开多单//多头持仓撤开空单
tcancelex(空持合约10>0,1,myaccount,合约10);tcancelex(多持合约10>0,3,myaccount,合约10); 
//平仓//平仓条件//基差有一跳利润//盘口有一跳利润
if 多持合约10>0 then begin
    多头基差均价合约10:=多头均价合约10-空头均价主力合约;//实际持仓基差价格
    平多仓基差差值合约10:卖一价合约10-卖一价主力合约-多头基差均价合约10,NODRAW;DEBUGFILE('C:\TEST.TXT','平多仓基差差值合约10大于10 %.0f', 平多仓基差差值合约10);
    平多仓条件合约10:=平多仓基差差值合约10>MINDIFF1;//平仓//有多仓和无挂平多单时卖1价平多//有空仓和无挂平空单时买1价平空
    tcancelex(tisremainex(2,myaccount,合约10)>0 and 平多仓条件合约10=0,2,myaccount,合约10);//买一卖一变动后,不满足条件就撤单
    tsell(平多仓条件合约10 and tisremainex(2,myaccount,合约10)=0,多持合约10,lmt,卖一价合约10,0,myaccount,合约10);
end
if 空持合约10>0 then begin 
    空头基差均价合约10:=空头均价合约10-多头均价主力合约;
    平空仓基差差值合约10:买一价合约10-买一价主力合约-空头基差均价合约10,NODRAW;DEBUGFILE('C:\TEST.TXT','平空仓基差差值合约10大于10 %.0f', 平空仓基差差值合约10);
    平空仓条件合约10:=平多仓基差差值合约10>MINDIFF1;
    tcancelex(tisremainex(4,myaccount,合约10)>0 and 平空仓条件合约10=0,4,myaccount,合约10); 
    tsellshort(平空仓条件合约10 and tisremainex(4,myaccount,合约10)=0,空持合约10,lmt,买一价合约10,0,myaccount,合约10);
end


//主力合约//主力合约填补多空缺口//对手价开平仓
//有持仓变动就改变主力持仓,
多持非主力合约:=多持合约06+多持合约08+多持合约09+多持合约10;空持非主力合约:=空持合约06+空持合约08+空持合约09+空持合约10;//
非主仓差:=多持非主力合约-空持非主力合约;
多持主力合约:=tbuyholdingex (myaccount,主力合约,2);空持主力合约:=tsellholdingex (myaccount,主力合约,2);
主仓差:=多持主力合约-空持主力合约;平衡仓差:=主仓差+非主仓差;
if 平衡仓差<0 then begin
    tcancelex( tisremainex(1,myaccount,主力合约)>0 ,1,myaccount,主力合约);tcancelex( tisremainex(4,myaccount,主力合约)>0 ,4,myaccount,主力合约);
    tbuy(空持主力合约=0 and tisremainex(1,myaccount,主力合约)=0,1,lmt,卖一价主力合约,0,myaccount,主力合约);//卖1价开多
    tsellshort(空持主力合约>0 and tisremainex(4,myaccount,主力合约)=0,1,lmt,卖一价主力合约,0,myaccount,主力合约);//卖1价平空
end
if 平衡仓差>0 then begin
    tcancelex( tisremainex(3,myaccount,主力合约)>0 ,3,myaccount,主力合约);tcancelex( tisremainex(2,myaccount,主力合约)>0 ,2,myaccount,主力合约);
    tbuyshort(多持主力合约=0 and tisremainex(3,myaccount,主力合约)=0,1,lmt,买一价主力合约,0,myaccount,主力合约);//买1价开空
    tsell(多持主力合约>0 and tisremainex(2,myaccount,主力合约)=0,1,lmt,买一价主力合约,0,myaccount,主力合约);//买1价平多
end


 回到顶部