- 精华
- 0
- 在线时间
- 231 小时
- UID
- 26303
- 积分
- 924
- 帖子
- 186
- 阅读权限
- 60
- 注册时间
- 2011-2-21
- 最后登录
- 2017-1-6
- 精华
- 0
- UID
- 26303
- 积分
- 924
- 帖子
- 186
- 主题
- 89
- 阅读权限
- 60
- 注册时间
- 2011-2-21
- 最后登录
- 2017-1-6
|
copy过去发现不对,经常在同一根k线上开平仓
If(BarsSinceentry == 1)
{
HighestAfterEntry = Max(AvgEntryPrice,Close[1]); // 开仓后的下一个Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
LowestAfterEntry = Min(AvgEntryPrice,Close[1]); // 开仓后的下一个Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
}else if(BarsSinceEntry > 1)
{
HighestAfterEntry = Max(HighestAfterEntry,High[1]); // 记录下前一个Bar的最高点,用于当前Bar的跟踪止损判断
LowestAfterEntry = Min(LowestAfterEntry,Low[1]); // 记录下前一个Bar的最低点,用于当前Bar的跟踪止损判断
}
MinPoint = MinMove*PriceScale;
MyEntryPrice = AvgEntryPrice;
If(MarketPosition==1) // 有多仓的情况
{
If(HighestAfterEntry >= MyEntryPrice + TrailingStart2*MinPoint) // 第二级跟踪止损的条件表达式
{
If(Low <= HighestAfterEntry - TrailingStop2*MinPoint)
{
MyExitPrice = HighestAfterEntry - TrailingStop2*MinPoint;
If(Open < MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价有跳空触发,则用开盘价代替
Sell(0,MyExitPrice);
}
}else if(HighestAfterEntry >= MyEntryPrice + TrailingStart1*MinPoint)// 第一级跟踪止损的条件表达式
{
If(Low <= HighestAfterEntry - TrailingStop1*MinPoint)
{
MyExitPrice = HighestAfterEntry - TrailingStop1*MinPoint;
If(Open < MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价有跳空触发,则用开盘价代替
Sell(0,MyExitPrice);
}
}else //可以在这里写上初始的止损处理
{
MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
If(Open < MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价有跳空触发,则用开盘价代替
Sell(0,MyExitPrice);
}
}else if(MarketPosition==-1) // 有空仓的情况
{
If(LowestAfterEntry <= MyEntryPrice - TrailingStart2*MinPoint) // 第二级跟踪止损的条件表达式
{
If(High >= LowestAfterEntry + TrailingStop2*MinPoint)
{
MyExitPrice = LowestAfterEntry + TrailingStop2*MinPoint;
If(Open > MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价有跳空触发,则用开盘价代替
BuyToCover(0,MyExitPrice);
}
}else if(LowestAfterEntry <= MyEntryPrice + TrailingStart1*MinPoint)// 第一级跟踪止损的条件表达式
{
If(High >= LowestAfterEntry + TrailingStop1*MinPoint)
{
MyExitPrice = LowestAfterEntry - TrailingStop1*MinPoint;
If(Open > MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价有跳空触发,则用开盘价代替
BuyToCover(0,MyExitPrice);
}
}else //可以在这里写上初始的止损处理
{
MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
If(Open > MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价有跳空触发,则用开盘价代替
BuyToCover(0,MyExitPrice);
}
} |
|