发个套利系统
本帖最后由 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 沙发,不错 谢谢分享 你对spread加上滤波器,高通,会发现回撤更小,资金曲线更漂亮。不过实际操作中滑点和手续费能吃掉所有利润吧。还有非主力合约,能成交吗?万一瘸了一条腿就麻烦了。 tigerpan 发表于 2012-10-9 00:26 static/image/common/back.gif
你对spread加上滤波器,高通,会发现回撤更小,资金曲线更漂亮。不过实际操作中滑点和手续费能吃掉所有利润 ...
谢谢指教。
滤波器?高通?怎么加啊? 套利不懂 ST振翔 发表于 2012-10-9 19:02 static/image/common/back.gif
谢谢指教。
滤波器?高通?怎么加啊?
指教谈不上,大家讨论:)
我是用matlab做的,在matlab里面,把spread当做输入,加filter模块,然后滤掉低频的信号,得到的结果更可靠。如果要实际使用,可以把matlab里面写好的代码发布成c,然后再调用。不过不知道tb能不能调用dll。而且这样做很可能会过渡优化,需要谨慎 tigerpan 发表于 2012-10-9 22:36 static/image/common/back.gif
指教谈不上,大家讨论:)
我是用matlab做的,在matlab里面,把spread当做输入,加filter模块,然后滤掉 ...
TB不如MT4,调用不了DLL。今晚改代码的时候,还出了问题,前几天写的公式全部消失了。
matlab也没接触过,你说的FILTER模块的这种滤波功能原理是什么?不知在TB里面能否实现呢。 楼主代码有误,你是做震荡策略吧?进场方向正好相反。 测试的时间范围?手续费的设置?滑点的设置? 楼主能否说一下进场的原理啊!你的代码是正确的,但是我不太理解你出场方式。你的进场方式趋势类的,出场方式感觉很奇怪?楼主能否解释一下?