//记录盈利峰值价和跟踪止损价,多头
If(MarketPosition > 0 And BarsSinceEntry==0)
{
HighAfterEntry = c[1];
LowAfterEntry = c[1];
stopPrice = EntryPrice - StopLossSet*MinPoint;
}
If(MarketPosition > 0 And BarsSinceEntry > 0)
{
HighAfterEntry = Max(HighAfterEntry[1],High);
LowAfterEntry = Min(LowAfterEntry[1],low);
MyExitPrice = stopPrice;
If(HighAfterEntry[1] >= EntryPrice + TrailingStart2 * MinPoint)// 假如最高价大于等于开仓均价加上固定的止盈启动设置2乘以最小跳动价
{
MyExitPrice = HighAfterEntry[1] - TrailingStop2 * MinPoint;//平仓价呢等于最高价减去真正止盈设置2系数乘以最小跳动价。
}Else
if(HighAfterEntry[1] >= EntryPrice + TrailingStart1 * MinPoint) // 第一级跟踪止盈的条件表达式。这里就是把设置2变成设置1
{
MyExitPrice = HighAfterEntry[1] - TrailingStop1 * MinPoint; //平仓价,主要计算就是那个止盈系数设置1
}
}
//记录盈利峰值价和跟踪止损价,空头
If(MarketPosition < 0 And BarsSinceEntry==0)
{
HighAfterEntry = Close[1];
LowAfterEntry = Close[1];
stopPrice = EntryPrice + StopLossSet*MinPoint;
}
If(MarketPosition < 0 And BarsSinceEntry > 0)
{
HighAfterEntry = Max(HighAfterEntry[1],High);
LowAfterEntry = Min(LowAfterEntry[1],low);
MyExitPrice = stopPrice;
If(LowAfterEntry[1] <= EntryPrice - TrailingStart2 * MinPoint)// 假如最低价小于等于开仓均价减去固定的止盈启动设置2乘以最小跳动价
{
MyExitPrice = LowAfterEntry[1] + TrailingStop2 * MinPoint;//平仓价呢等于最低价加上真正止盈设置2系数乘以最小跳动价。
}Else
if(LowAfterEntry[1] <= EntryPrice - TrailingStart1 * MinPoint) // 第一级跟踪止盈的条件表达式。这里就是把设置2变成设置1
{
MyExitPrice = LowAfterEntry[1] + TrailingStop1 * MinPoint; //平仓价,主要计算就是那个止盈系数设置1
}
}
If( BarsSinceEntry > 0 And MarketPosition==1 And Low<=MyExitPrice)
{
Sell(0,Min(Open,MyExitPrice));
}
If( BarsSinceEntry > 0 And MarketPosition == -1 And High>=MyExitPrice)
{
BuyToCover(0,Max(Open,MyExitPrice));
}
开仓下一根就开盘平仓了,不知道哪里的逻辑不对啊?