- 精华
- 0
- 在线时间
- 6 小时
- UID
- 241292
- 积分
- 6
- 帖子
- 4
- 阅读权限
- 10
- 注册时间
- 2016-10-5
- 最后登录
- 2016-11-2
- 精华
- 0
- UID
- 241292
- 积分
- 6
- 帖子
- 4
- 主题
- 2
- 阅读权限
- 10
- 注册时间
- 2016-10-5
- 最后登录
- 2016-11-2
|
Params
Numeric MALength1(300); //过滤器短期均线值
Numeric MALength2(600); //过滤器长期均线值
Numeric MALength3(60); //系统信号均线值
Numeric ATRLength(10); //ATR的长度值
Numeric ProtectStopATRMulti(1); //保护性止损的ATR乘数
Numeric TrailStopATRMulti(2.5); //跟踪止损的ATR乘数
Numeric Lots(1); //手数
Numeric ProfitStopATRMulti(3); //止盈ATR乘数
Vars
NumericSeries MA1(0); //过滤器短期均线
NumericSeries MA2(0); //过滤器长期均线
NumericSeries MA3(0); //系统信号均线
NumericSeries ATR(0); //ATR
NumericSeries N; //N
NumericSeries MyEntryPrice; //开仓价格
NumericSeries MyExitPrice; //平仓价格
Begin
// 集合竞价和小节休息过滤
If(!CallAuctionFilter()) Return;
MA1 = AverageFC(C,MALength1);
MA2 = AverageFC(C,MALength2);
MA3 = AverageFC(C,MALength3);
ATR = AvgTrueRange(ATRLength);
If(MarketPosition ==0 )
//当300,600均线多头排列,上一根K线上穿60均线时,以当前K线开盘价做多1手
{
If(Close[1] > MA1 and MA1 > MA2 and Close[2]< MA3 and Close[1] > MA3)
{
Buy(Lots,Open);
/
N = ATR[1];
MyEntryPrice=Open;
}
}
If(MarketPosition == 1 and BarsSinceEntry > 0)
//持有多单时,止盈空间3ATR,止损空间1ATR
{
if(High>= MyEntryPrice+ ProfitStopATRMulti* N)
{
MyExitPrice= MyEntryPrice+ ProfitStopATRMulti* N;
If(Open> MyExitPrice) MyExitPrice=Open;
Sell(Lots, MyExitPrice);
}
//基于ATR的止盈
Else if(Low<= MyEntryPrice - ProtectStopATRMulti*N)
{
MyExitPrice= MyEntryPrice - ProtectStopATRMulti*N;
If(Open< MyExitPrice) MyExitPrice=Open;
Sell(Lots, MyExitPrice);
}
}
End
请问老师,编译完成,在K线图上可以显示开仓平仓位置,为什么回测结果都是0,谢谢老师了! |
|