开拓者期货期权程序化系统交易论坛
标题:
灵感来了,挡都挡不住
[打印本页]
作者:
flyfish
时间:
2012-10-22 06:07:51
标题:
灵感来了,挡都挡不住
想出一个自动更换主力合约并操作的方法,虽然还没测试,但理论和逻辑上绝对可行。
以TA日线周期为例:在一个超级图表里先加载TA000作为data0,然后插入TA1301作为data1,再依次插入其他所有TA合约。比较前连续2日的各合约的成交量,最大的定为主力合约。策略的开平仓条件针对指数运算,但开平仓操作针对主力合约。在换月时代码处理好平仓对前一个主力合约,开仓对新主力合约即可。
此法的缺点是旧合约交割和新合约上市后还是需要在图表中手工处理一下
作者:
liaowenbin
时间:
2012-10-22 09:16:55
自动没用啊。tb不是要求每天8点多都得重启软件吗
作者:
JPMorgan
时间:
2012-10-22 09:36:38
这个坛子里面有具体的实现方法的
作者:
莫小漠
时间:
2012-10-22 14:41:55
我就不告诉你早就有这部分的代码了。
搜索下吧,自动换月
但是除非配置很高,不建议这样做
作者:
flyfish
时间:
2012-10-22 15:27:52
搜了,没搜到实现的代码,倒是搜到几个建议增加自动换月函数的帖子。
作者:
莫小漠
时间:
2012-10-22 16:31:54
Params
Numeric Lots(1);
Numeric Slippage(0);
Numeric Length1(10);
Numeric Length2(20);
Vars
NumericSeries EMa1;
NumericSeries EMa2;
Begin
EMa1=XAverage(Close, Length1);
EMa2=XAverage(Close, Length2);
PlotNumeric("EMa1",EMa1);
PlotNumeric("EMa2",EMa2);
If(CrossOver(EMa1[1],EMa2[1]))
{
If(Data0.Vol==Data1.Vol)
{
Data1.Buy(Lots,Data1.Open+Slippage);
}
If(Data0.Vol==Data2.Vol)
{
Data2.Buy(Lots,Data2.Open+Slippage);
}
If(Data0.Vol==Data3.Vol)
{
Data3.Buy(Lots,Data3.Open+Slippage);
}
}
If(CrossUnder(EMa1[1],EMa2[1]))
{
If(Data1.MarketPosition==1)
{
Data1.Sell(Lots,Data1.Open-Slippage);
}
If(Data2.MarketPosition==1)
{
Data2.Sell(Lots,Data2.Open-Slippage);
}
If(Data3.MarketPosition==1)
{
Data3.Sell(Lots,Data3.Open-Slippage);
}
}
End
复制代码
作者:
flyfish
时间:
2012-10-22 18:22:50
谢谢楼上。我研究一下先。
作者:
feijian0000
时间:
2012-12-13 13:43:47
莫小漠 发表于 2012-10-22 16:31
谢谢楼主,我看看
作者:
jastn
时间:
2013-3-10 23:17:46
论坛上有源码
作者:
受伤的小鱼
时间:
2013-3-11 01:28:51
这都需要灵感,这就是灵感了?
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2