查看: 1986|回复: 8
打印 上一主题 下一主题

[其它] 程序化价差交易

[复制链接]
跳转到指定楼层
1
发表于 2015-1-18 11:05:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在做螺纹,感觉价差变化缓慢稳定。但理想的价差开仓点,需要实时盯盘。所以考虑程序化盯盘





2
 楼主| 发表于 2015-1-18 11:07:56 | 只看该作者
首先解决软件问题,我在徽商期货开的户,它要求用易盛的话,必须每个月交易500单以上,平均每天交易22单以上。对我这样的新手,有难度。
你们知道如何能用易盛,同时交易不必达到500手吗?
回复 支持 反对

使用道具 举报

3
 楼主| 发表于 2015-1-18 22:06:27 | 只看该作者
本帖最后由 zhaowd2001 于 2015-1-18 22:14 编辑

//目的是进行价差套利。当rb1510-rb1505<=9的时候,多rb1510,空rb1505. 当rb1510-rb1505>=14的时候,平仓。
//代码写好了,用rb1501的1分钟数据测试,总是没有买卖记录,请斑竹指出程序错误。
//软件是易盛模拟。
//代码如下:

Params   
     Numeric diff_open(9);//赌扩大
     Numeric diff_close(15);
     Numeric diff_sell(22);//赌缩小
GlobalVars
Bool hasBid(False);//是否已经下单:赌扩大
Bool hasBid2(False);//是否已经下单:赌缩小
Vars  
String far_name;
String mid_name;
     NumericArray far;
     NumericArray  middle;
  NumericArray  diffArr;
  Numeric diff;
  Numeric slip(1);//买卖时滑价
     Bool Open1;
     Bool Close1;
  
  Numeric i(0);
Begin
mid_name = "RB1505";
far_name = "RB1510";


    middle = HisData(Enum_Data_Close, Enum_Period_Min1, mid_name );  //rb1510最新价
    far  = HisData(Enum_Data_Close,Enum_Period_Min1,  far_name);//rb1505最新价
     
print(diff);
print(far);
print(middle);
  //diffArr = far-middle;
  diff = far - middle;
  if(diff <= 0 || diff > 100)
   return;
//PlotNumeric("diff", far-middle);  //绘制价差
     
  //赌扩大
Open1 = (diff <  diff_open); //开仓
Close1 = (diff >= diff_close);//平仓
  
if (Open1 && (hasBid==False))//开仓
{
  //是否已经有持仓?
  //if (A_SellPosition(mid_name) <= 0 && //没有卖仓
  // A_BuyPosition(far_name) <= 0//没有买仓
  // )
  {
   hasBid = True;//开仓标志
   
   //价差开仓
   //卖出middle:rb1505
      SellShort(1, middle-slip, mid_name );
  
   //买入far: rb1510
      Buy(1, far+slip, far_name);
  }
    }
if(Close1 && hasBid)//平仓
{
  //是否已经有持仓?
  //if (A_SellPosition(mid_name) >= 1 && //没有卖仓
  // A_BuyPosition(far_name)  >= 1//没有买仓
  // )
  {
   //价差平仓
   //买平middle:rb1505
      BuyToCover( 1, middle+slip, mid_name );
  
   //卖平far: rb1510
      Sell(1, far -slip, far_name);
   
   hasBid = False;//没有持仓
  }  
}
     
  //赌缩小
Open1 = (diff >=  diff_sell); //开仓
Close1 = (diff <= diff_close);//平仓
  
if (Open1 && (hasBid==False))//开仓
{
  //是否已经有持仓?
  //if (A_SellPosition(mid_name) <= 0 && //没有卖仓
  // A_BuyPosition(far_name) <= 0//没有买仓
  // )
  {
   hasBid = True;//开仓标志
   
   //价差开仓
   //买入middle:rb1505
      Buy(1, middle+slip, mid_name );
  
   //卖出far: rb1510
      SellShort(1, far-slip, far_name);
  }
    }
if(Close1 && hasBid)//平仓
{
  //是否已经有持仓?
  //if (A_SellPosition(mid_name) >= 1 && //没有卖仓
  // A_BuyPosition(far_name)  >= 1//没有买仓
  // )
  {
   //价差平仓
   //卖平middle:rb1505
      Sell( 1, middle-slip, mid_name );
  
   //买平far: rb1510
      BuyToCover(1, far +slip, far_name);
   
   hasBid = False;//没有持仓
  }  
}
     
End

回复 支持 反对

使用道具 举报

4
 楼主| 发表于 2015-1-19 16:40:49 | 只看该作者
//1.模拟测试的时候,选定rb1510测试。分析周期选Tick/30秒/多秒数的时候,取不到rb1505的价格。
//分析周期选'1分钟'时,是可以取出rb1505价格的。
回复 支持 反对

使用道具 举报

5
发表于 2015-2-12 09:39:35 | 只看该作者
打酱油路过
回复 支持 反对

使用道具 举报

6
发表于 2015-2-14 21:40:20 | 只看该作者
我开户,从来没有成交量、资金之类的要求,手续费还特低,只是没有返佣
回复 支持 反对

使用道具 举报

7
发表于 2015-2-15 01:53:14 | 只看该作者
我开的户0手续费,就是只收交易所手续费,也没返佣
回复 支持 反对

使用道具 举报

8
 楼主| 发表于 2015-3-13 13:08:45 | 只看该作者
rb价差从20扩大到110,巨亏。
回复 支持 反对

使用道具 举报

9
 楼主| 发表于 2015-3-13 13:10:11 | 只看该作者
螺纹感觉底部探明。
依托这个底部,逢低做多,止损设置在最低点,有利就跑。
应该能来回砍到一些利润
回复 支持 反对

使用道具 举报

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

本版积分规则

易家网  ©2015-2023  郑州期米信息技术有限公司版权所有  豫公网安备 41010502005136号 豫ICP备16010300号