【源码】鳄鱼交易法-日内交易系统
Params
Numeric slowLength(13);
Numeric midLength(8);
Numeric fastLength(5);
Numeric ultraLength(3);
Numeric atrLength(14);
Numeric ratio(1);
Vars
NumericSeries atrValue;//ATR
NumericSeries Croco;//鳄
NumericSeries Teeth;//齿
NumericSeries Lips;//唇
NumericSeries Y;//中线
BoolSeries Con1;
BoolSeries Con2;
NumericSeries lots;
Begin
atrValue=Average(Max(Max(High-Low,Abs(Close-High)),Abs(Close-Low)),atrLength);
If(CurrentBar<atrLength)
{
lots=1;
}Else
{
If(Weekday<>(Weekday+1)%7)
{
lots=IntPart(((Portfolio_CurrentCapital+Portfolio_UsedMargin)*ratio/100)/(atrValue*ContractUnit*BigPointValue));
}Else
{
lots=lots;
}
}
Commentary("lots="+Text(lots));
Y=(High+Low+Close)/3;
Croco=SMA(Y,slowLength,1);
Teeth=SMA(Y,midLength,1);
Lips=SMA(Y,slowLength,1);
Con1=Croco>Teeth&&Teeth>Lips&&Close<Open&&Low<Low;//空单
Con2=Croco<Teeth&&Teeth<Lips&&Close>Open&&High>High;//多单
PlotNumeric("鳄",Croco,0,White);
PlotNumeric("齿",Teeth,0,Red);
PlotNumeric("唇",Lips,0,Yellow);
If(Con1)
SellShort(lots,Open);
If(Con2)
Buy(lots,Open);
If(MarketPosition==-1)
{
If(CountIf(Con1,BarsSinceEntry)==1)
{
If(Open>Teeth)
BuyToCover(lots,Open);
}Else
{
If(Open>High)
BuyToCover(lots,Open);
}
}
If(MarketPosition==1)
{
If(CountIf(Con2,BarsSinceEntry)==1)
{
If(Open<Teeth)
Sell(lots,Open);
}Else
{
If(Open<Low)
Sell(lots,Open);
}
}
End
简单地说就是一个三均线系统
慢中快均线依次排列,结合K线进行开仓条件判断;
初始止损为开仓时的快速均线值
当单边出现多次开仓信号时将止损位设置为上一根K线的高(低)点;
此系统无强制离场措施;
另外我用ATR进行了开仓手数设置;
商品设置:
http://i587.photobucket.com/albums/ss315/sorakiraa/item.jpg
交易设置:
http://i587.photobucket.com/albums/ss315/sorakiraa/all-2.jpg
曲线:
http://i587.photobucket.com/albums/ss315/sorakiraa/detail.jpg 光看图,对于日内系统来说,这个回撤太大了。况且回测时间仅仅1年不到,要是多回测几年,可能会更大。我是不敢用的。 我只是提供一种思路
至于到了实战怎么进行策略优化,仓位控制,止损止盈则见仁见智
有人喜欢做波段,趋势,有人喜欢日内,隔夜不持仓
其实不管你用MA,EMA,SMA还是AMA,ADX,ZIGZAG,要想获得更高的收益率就要做好承受更高回撤的心理准备:lol 太感谢了,这几天正在研究这个系统楼主就发上来了。真是及时雨啊 还差个分形 书上只写了三条线的代码
至于开平仓代码是以我的理解写的:( 谢谢楼主分享!
请问这个系统是用于几分钟周期的图表?
我的浏览器看不到你贴的“商品设置”、“交易设置”图。 我喜欢用5分钟图:) 只适用日线,其他无信号 我的报错,什么情况 if语句的地方有语法错误??
页:
[1]
2