ST振翔 发表于 2012-10-7 20:11:00

发个套利系统

本帖最后由 ST振翔 于 2012-10-7 20:11 编辑

第一次发帖,前几天洗澡的时候想出来的一个套利系统,测试效果还不错。
原理:价差值小于或大于规定期限内的最低或最高值时,进场进行套利交易。

PTA和RU15分钟指数数据测试结果


代码:
Params
        Numeric Length1(35);
        Numeric Length2(75);
Vars
        NumericSeries Spread;
        NumericSeries High1;  
        NumericSeries High2;
        NumericSeries Low1;
        NumericSeries Low2;
        Numeric Signlogo(0);       
        Numeric Lots(1);

       
Begin
    If(Data0.Close!=InvalidNumeric&&Data1.Close!=InvalidNumeric)
    {
        Spread=Data0.Close-Data1.Close; // 定义价差                                               
    }
      High1=Highest(Spread,Length1);
          High2=Highest(Spread,Length2);
          Low1=Lowest(Spread,Length1);  
          Low2=Lowest(Spread,Length2);  
        PlotNumeric("Spread",Spread);
        PlotNumeric("High1",High1);
        PlotNumeric("Low1",Low1);


       
       
        If(Spread<Low1 && Spread>Low1)
        {
          Data1.Buy(Lots,Open);
          Data0.SellShort(Lots,Open);
          Signlogo = 1;
        }
    If(Spread>High1 && Spread<High1)       
        {
          Data0.Buy(Lots,Open);
          Data1.SellShort(Lots,Open);
          Signlogo = -1;
        }
       
        If(Signlogo == 1 && Spread>High2 )
        {
          Data1.SellShort(0,Open);
          Data0.BuyToCover(0,Open);
        }
        If(Signlogo == -1 && Spread<Low2)
        {
          Data0.SellShort(0,Open);
          Data1.BuyToCover(0,Open);
        }
          
End

myangsoft 发表于 2012-10-8 09:33:54

沙发,不错 谢谢分享

tigerpan 发表于 2012-10-9 00:26:52

你对spread加上滤波器,高通,会发现回撤更小,资金曲线更漂亮。不过实际操作中滑点和手续费能吃掉所有利润吧。还有非主力合约,能成交吗?万一瘸了一条腿就麻烦了。

ST振翔 发表于 2012-10-9 19:02:45

tigerpan 发表于 2012-10-9 00:26 static/image/common/back.gif
你对spread加上滤波器,高通,会发现回撤更小,资金曲线更漂亮。不过实际操作中滑点和手续费能吃掉所有利润 ...

谢谢指教。
滤波器?高通?怎么加啊?

迎风尿十丈 发表于 2012-10-9 19:10:09

套利不懂

tigerpan 发表于 2012-10-9 22:36:00

ST振翔 发表于 2012-10-9 19:02 static/image/common/back.gif
谢谢指教。
滤波器?高通?怎么加啊?

指教谈不上,大家讨论:)
我是用matlab做的,在matlab里面,把spread当做输入,加filter模块,然后滤掉低频的信号,得到的结果更可靠。如果要实际使用,可以把matlab里面写好的代码发布成c,然后再调用。不过不知道tb能不能调用dll。而且这样做很可能会过渡优化,需要谨慎

ST振翔 发表于 2012-10-9 23:22:19

tigerpan 发表于 2012-10-9 22:36 static/image/common/back.gif
指教谈不上,大家讨论:)
我是用matlab做的,在matlab里面,把spread当做输入,加filter模块,然后滤掉 ...

TB不如MT4,调用不了DLL。今晚改代码的时候,还出了问题,前几天写的公式全部消失了。
matlab也没接触过,你说的FILTER模块的这种滤波功能原理是什么?不知在TB里面能否实现呢。

feijian0000 发表于 2012-10-16 12:53:45

楼主代码有误,你是做震荡策略吧?进场方向正好相反。

feijian0000 发表于 2012-10-16 13:02:23

测试的时间范围?手续费的设置?滑点的设置?

feijian0000 发表于 2012-10-16 13:05:43

楼主能否说一下进场的原理啊!你的代码是正确的,但是我不太理解你出场方式。你的进场方式趋势类的,出场方式感觉很奇怪?楼主能否解释一下?
页: [1] 2 3 4 5
查看完整版本: 发个套利系统