if(Bid-OrderOpenPrice()>WhenToMoveToBE*Point) //how far has the bid moved from opening int buyticket1=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-(PipsToLockIn*PointWhat you wrote was a trailing SL. What you need is two critera A) below BE move when market reaches 100 pips. B) above(at) BE move when market reaches 200 pips above SL.
WHRoeder:
What you wrote was a trailing SL. What you need is two critera A) below BE move when market reaches 100 pips. B) above(at) BE move when market reaches 200 pips above SL.
Okay, that logic helps.. So something like this...What you wrote was a trailing SL. What you need is two critera A) below BE move when market reaches 100 pips. B) above(at) BE move when market reaches 200 pips above SL.
void MoveToBreakeven() //Breakeven function { for(int b=OrdersTotal()-1; b >= 0; b--) { if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==MagicNumber) //correct order if(OrderSymbol()==Symbol()) //correct pair if(OrderType()==OP_BUY) //correct buy if(Bid-OrderOpenPrice()>WhenToMoveToBE1*Point) //how far has the bid moved from opening if(OrderOpenPrice()>OrderStopLoss()) int buyticket1=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-(PipsToLockIn*Point),Digits),OrderTakeProfit(),0,clrBlue); if(Bid-OrderOpenPrice()>WhenToMoveToBE2*Point) if(OrderOpenPrice()>OrderStopLoss()) int buyticket2=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-(PipsToLockIn*Point),Digits),OrderTakeProfit(),0,clrBlue); } for(int s=OrdersTotal()-1; s>=0; s--) { if(OrderSelect(s,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==MagicNumber) if(OrderSymbol()==Symbol()) if(OrderType()==OP_SELL) if(OrderOpenPrice()-Ask>WhenToMoveToBE1*Point) if(OrderOpenPrice()<OrderStopLoss()) int sellticket1=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+(PipsToLockIn*Point),Digits),OrderTakeProfit(),0,clrRed); if(OrderOpenPrice()-Ask>WhenToMoveToBE2*Point) if(OrderOpenPrice()<OrderStopLoss()) int sellticket2=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+(PipsToLockIn*Point),Digits),OrderTakeProfit(),0,clrRed); } }
WHRoeder:
What you wrote was a trailing SL. What you need is two critera A) below BE move when market reaches 100 pips. B) above(at) BE move when market reaches 200 pips above SL.
What you wrote was a trailing SL. What you need is two critera A) below BE move when market reaches 100 pips. B) above(at) BE move when market reaches 200 pips above SL.
Okay this works:
void MoveToBreakeven() //Breakeven function { for(int b=OrdersTotal()-1; b >= 0; b--) { if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==MagicNumber) //correct order if(OrderSymbol()==Symbol()) //correct pair if(OrderType()==OP_BUY) //correct buy if(OrderOpenPrice()>OrderStopLoss()) if(Bid-OrderOpenPrice()>WhenToMoveToBE1*Point) //how far has the bid moved from opening int buyticket1=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-(PipsToLockIn*Point),Digits),OrderTakeProfit(),0,clrBlue); if(Bid-OrderOpenPrice()>WhenToMoveToBE2*Point) if(buyticket1>0) int buyticket2=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-(PipsToLockIn*Point),Digits),OrderTakeProfit(),0,clrBlue); }
Thanks for the help.
something like that maybe :
if(Bid > OrderStoploss() +step*Point)
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hi guys,
If I place an order of let's say take profit 500 and stop loss 100. I want the order to break even when it gets to 100 profit (which is easy enough to code) however, I want the stop loss to move up every 100 pips (not trail) by 100 pips. So it will take incremental steps towards the take profit. In other words it must "break even" every 100 pips adding an additional 100 pips to the stop loss. I have coded the first step but not sure how to make it move step by step. Here is my break even code:
If there is any way to edit it to make it move step by step that would help a lot!