设为首页收藏本站

 找回密码
 注册
查看: 9517|回复: 10
打印 上一主题 下一主题

无风险套利系统,修改参数后可实盘 [复制链接]

Rank: 4

精华
0
UID
51272
积分
463
帖子
67
主题
14
阅读权限
50
注册时间
2011-7-3
最后登录
2016-7-25
跳转到指定楼层
1#
发表于 2011-11-10 16:01:52 |只看该作者 |倒序浏览
以铜1206与铜1201为例
当不活跃合约1206盘口价差大于200且1206-1201价差小于等于-200时,同时以高于买价1跳挂买单,成交后立即在1201开空单,然后以低于卖价1跳挂1206平仓单,成交后平1201空单,即完成一个循环。
当1206-1201价差大于等于200时,反向操作。
另外可设置alwaytrade交易模式,即不考虑1206-1206价差,同时挂买单卖单,哪个先成交撤另外一个单子,后续交易过程同上。
代码如下:
//------------------------------------------------------------------------
//如有疑问,请联系:QQ279753247
//------------------------------------------------------------------------

Params
    Numeric profit(200);
        Numeric noprofit(100);
        Numeric buypoint(-200);
        Numeric sellpoint(200);
        Numeric alwaystrade(1);
        Numeric lots(1);
Vars
        Bool Condtrade;
        bool conddelete;
        Bool condbuy;
        bool condsell;
        Numeric longposition0(0);
        Numeric longposition1(0);
        Numeric shortposition0(0);
        Numeric shortposition1(0);
        Numeric madetrade(0);
       
Begin

//--------------------------------------------

If(date!=date[1])  
  {
   If(low==high)     //集合竞价不开仓
     return;
  }

If (BarStatus == 0)
{
  SetGlobalVar(0,0);
  SetGlobalVar(1,0);
  SetGlobalVar(2,0);
  SetGlobalVar(3,0);
  SetGlobalVar(4,0);
}

//---------------------------------------------------------------------
  longposition0=GetGlobalVar(0);
  longposition1=GetGlobalVar(2);
  shortposition0=GetGlobalVar(1);
  shortposition1=GetGlobalVar(3);
  madetrade=GetGlobalVar(4);
  
//---------------------------------------------------------------------
Condtrade=Data0.Q_AskPrice-Data0.Q_BidPrice>=profit;       //挂单条件
conddelete=Data0.Q_AskPrice-Data0.Q_BidPrice<=noprofit;
condsell=Data0.Q_AskPrice-data1.Q_BidPrice>=sellpoint;
condbuy=data0.Q_BidPrice-data1.Q_AskPrice<=buypoint;

//---------------------------------------------------------------------
If(Condtrade&&longposition0==0&&shortposition0==0&&longposition1==0&&shortposition1==0)    //挂单
{
  If(condbuy)
    {
         data0.A_SendOrder(Enum_Buy,Enum_Entry,Lots,data0.Q_BidPrice+MinMove*PriceScale);
         SetGlobalVar(0,1);
         FileAppend("D:\\Formula.log","\n");
     FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
     FileAppend("D:\\Formula.log","满足价差挂多单! "+" "+Text(data0.Q_BidPrice+MinMove*PriceScale));
        }
       
  else If(condsell)
    {
         data0.A_SendOrder(Enum_Sell,Enum_Entry,Lots,data0.Q_askPrice-MinMove*PriceScale);
         SetGlobalVar(1,1);
         FileAppend("D:\\Formula.log","\n");
     FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
     FileAppend("D:\\Formula.log","满足价差挂空单! "+" "+Text(data0.Q_askPrice-MinMove*PriceScale));
        }
   
   else If(alwaystrade==1)
         {
         data0.A_SendOrder(Enum_Buy,Enum_Entry,Lots,data0.Q_BidPrice+MinMove*PriceScale);
         data0.A_SendOrder(Enum_Sell,Enum_Entry,Lots,data0.Q_askPrice-MinMove*PriceScale);
         SetGlobalVar(1,1);
         SetGlobalVar(0,1);
         FileAppend("D:\\Formula.log","\n");
     FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
     FileAppend("D:\\Formula.log","满足价差挂多单和空单! "+" "+Text(data0.Q_BidPrice+MinMove*PriceScale)+" "+Text(data0.Q_askPrice-MinMove*PriceScale));
         }
}

If(conddelete&&madetrade==0&&(shortposition0==1||longposition0==1))
  {
            data0.A_DeleteOrder;
            SetGlobalVar(0,0);
        SetGlobalVar(1,0);
            FileAppend("D:\\Formula.log","\n");
        FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
        FileAppend("D:\\Formula.log","未成交撤单!");
  }

//---------------------------------------------------------------------

If(data0.A_BuyPosition==lots&&shortposition1==0)           //不活跃品种多单成交
  {
   FileAppend("D:\\Formula.log","\n");
   FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
   FileAppend("D:\\Formula.log",Data0.Symbol+"多头头寸= "+Text(data0.A_BuyPosition));
   data1.A_SendOrder(Enum_Sell,Enum_Entry,Lots,data1.Q_bidPrice);   //主力开空对冲
   SetGlobalVar(3,1);
   SetGlobalVar(4,1);
  }
  
  
If(data0.A_BuyPosition==lots&&data1.A_SellPosition==lots&&longposition0==1)
  {
   FileAppend("D:\\Formula.log","\n");
   FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
   FileAppend("D:\\Formula.log",Data1.Symbol+"空头头寸= "+Text(data1.A_SellPosition));
   data0.A_DeleteOrder();       //未成交的不活跃空单撤单
   FileAppend("D:\\Formula.log","未成交空单撤单并且平不活跃多单");
   Data0.A_SendOrder(Enum_Sell,Enum_Exit,Lots,data0.Q_askPrice-MinMove*PriceScale);//平不活跃多单
   SetGlobalVar(0,0);
   SetGlobalVar(1,0);
   
  }
  
If(data0.A_BuyPosition==0&&data0.A_sellPosition==0&&shortposition1==1)//平主力空单
  {
   FileAppend("D:\\Formula.log","\n");
   FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
   FileAppend("D:\\Formula.log",Data0.Symbol+"多头头寸= "+Text(data0.A_BuyPosition));
   data1.A_SendOrder(Enum_buy,Enum_Exit,Lots,data1.Q_askPrice);
   SetGlobalVar(3,0);
   SetGlobalVar(4,0);
   FileAppend("D:\\Formula.log","\n");
   FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
   FileAppend("D:\\Formula.log",data1.Symbol+"空头头寸= "+Text(shortposition1));

  }
  
//---------------------------------------------------------------------------------------

If(data0.A_sellPosition==lots&&longposition1==0)           //不活跃品种空单成交
  {
        FileAppend("D:\\Formula.log","\n");
    FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
        FileAppend("D:\\Formula.log",Data0.Symbol+"空头头寸= "+Text(Data0.A_sellPosition));
   data1.A_SendOrder(Enum_buy,Enum_Entry,Lots,data1.Q_askPrice);//主力开多对冲
   SetGlobalVar(2,1);
   SetGlobalVar(4,1);
  }
  
If(data0.A_sellPosition==lots&&data1.A_buyPosition==lots&&shortposition0==1)
  {
    FileAppend("D:\\Formula.log","\n");
   FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
    FileAppend("D:\\Formula.log",data1.Symbol+"多头头寸= "+Text(data1.A_buyPosition));
   data0.A_DeleteOrder();     //未成交的不活跃多单撤单
   data0.A_SendOrder(Enum_buy,Enum_Exit,Lots,data0.Q_bidPrice+MinMove*PriceScale);//平不活跃空单
   SetGlobalVar(1,0);
   SetGlobalVar(0,0);
  }
  
If(data0.A_sellPosition==0&&data0.A_BuyPosition==0&&longposition1==1)//平主力多单
  {
   FileAppend("D:\\Formula.log","\n");
   FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
   FileAppend("D:\\Formula.log",Data0.Symbol+"空头头寸= "+Text(data0.A_sellPosition));
   data1.A_SendOrder(Enum_sell,Enum_Exit,Lots,data1.Q_BidPrice);
   SetGlobalVar(2,0);
   SetGlobalVar(4,0);
   FileAppend("D:\\Formula.log","\n");
   FileAppend("D:\\Formula.log",TimeToString(CurrentTime));
   FileAppend("D:\\Formula.log",data1.Symbol+"多头头寸= "+Text(longposition1));

  }
  
If(time>0.1458)  //14时59分撤掉所有未成交单
{
  Data0.A_DeleteOrder;
  Data1.A_DeleteOrder;
}

End

初级大户

酱油

Rank: 5Rank: 5

精华
0
UID
37561
积分
1108
帖子
395
主题
9
阅读权限
60
注册时间
2011-5-4
最后登录
2014-11-3
2#
发表于 2011-11-10 16:49:21 |只看该作者
感谢LZ无私分享
期货IT

使用道具 举报

Rank: 4

精华
0
UID
51272
积分
463
帖子
67
主题
14
阅读权限
50
注册时间
2011-7-3
最后登录
2016-7-25
3#
发表于 2011-11-10 17:21:18 |只看该作者
系统有一个缺陷,就是频繁发单,不知道哪位高手能够解决下。

使用道具 举报

Rank: 4

精华
0
UID
71013
积分
447
帖子
119
主题
6
阅读权限
50
注册时间
2011-10-12
最后登录
2011-12-19
4#
发表于 2011-11-10 22:57:00 |只看该作者
认真学习,谢谢楼主
学习就是力量

使用道具 举报

Rank: 4

精华
0
UID
51272
积分
463
帖子
67
主题
14
阅读权限
50
注册时间
2011-7-3
最后登录
2016-7-25
5#
发表于 2011-11-11 16:53:05 |只看该作者
回复 4# xiaoshansanzhi


    呵呵,不客气,共同进步。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
85182
积分
849
帖子
302
主题
11
阅读权限
60
注册时间
2011-12-8
最后登录
2013-10-28
6#
发表于 2011-12-16 17:19:21 |只看该作者
这个模型的原型是我写的,晕死
http://qpic.cn/NifLLplMk若能一切随它去,便世间自在人。
      ---Derivatives

使用道具 举报

Rank: 4

精华
0
UID
51272
积分
463
帖子
67
主题
14
阅读权限
50
注册时间
2011-7-3
最后登录
2016-7-25
7#
发表于 2011-12-19 15:12:08 |只看该作者
回复 6# 蔡宛宏


    你不要乱说,我自己一行一行写的

使用道具 举报

Rank: 8Rank: 8

精华
0
UID
17581
积分
5464
帖子
275
主题
27
阅读权限
100
注册时间
2010-10-13
最后登录
2021-8-30
8#
发表于 2011-12-25 21:54:44 |只看该作者
按这个做法,不活跃的合约必须不断撤单重挂吧,一天最多撤500次怎么解决?

使用道具 举报

Rank: 1

精华
0
UID
111657
积分
27
帖子
7
主题
0
阅读权限
10
注册时间
2012-7-23
最后登录
2012-11-1
9#
发表于 2012-7-26 16:25:09 |只看该作者
mark

使用道具 举报

Rank: 1

精华
0
UID
98964
积分
43
帖子
25
主题
2
阅读权限
10
注册时间
2012-2-20
最后登录
2012-12-31
10#
发表于 2012-8-1 15:44:00 |只看该作者
貌似已经过期了吧

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-15 00:51

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部