I have logic using 1 Tick BIP to move a stop to break even,
if(BarsInProgress == tBIP); // 1 Tick BIP
{
if(mfeStop && mfelist.Count > 19)
{
p = Convert.ToDouble(mfelist.Count);
if( Position.MarketPosition == MarketPosition.Long && High[0] >= longPrice + mfelist[Convert.ToInt16(p * mfePercent / 100 + 1)] * TickSize
&& pStop.StopPrice < longPrice)
{
pStop = ExitLongStop(0, true, Position.Quantity, longPrice, "MFE Stop", "pEntry");
if(mfeDraw != true)
{
DrawDot("mfe draw" + CurrentBar, true, 0, Low[0] - 10 * TickSize, Color.Black);
DrawText("mfe" + mfe," " + mfelist[Convert.ToInt16(Convert.ToDouble(mfelist.Count) * mfePercent / 100 + 1)],0,Low[0] - 15 * TickSize,Color.Black);
}
}
else if( Position.MarketPosition == MarketPosition.Short && Low[0] <= shortPrice - mfelist[Convert.ToInt16(p * mfePercent / 100 + 1)] * TickSize
&& pStop.StopPrice > shortPrice)
{
pStop = ExitShortStop(0, true, Position.Quantity, shortPrice, "MFE Stop", "pEntry");
if(mfeDraw != true)
{
DrawDot("mfe draw" + CurrentBar, true, 0, High[0] + 10 * TickSize, Color.Black);
DrawText("mfe" + mfe," w" + mfelist[Convert.ToInt16(Convert.ToDouble(mfelist.Count) * mfePercent / 100 + 1)],0,High[0] + 15 * TickSize, Color.Black);
}
}
Here is the error form the log:-
15/07/2013 14:30:00 Entered internal PlaceOrder() method at 15/07/2013 14:30:00: BarsInProgress=0 Action=Sell OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=143.28 SignalName='MFE Stop' FromEntrySignal='pEntry'
**NT** A Sell stop order placed at '15/07/2013 14:30:01' has been ignored since the stop price is greater than or equal to close price of the current bar. This is an invalid order and subsequent orders may also be ignored. Please fix your strategy.

Comment