Ak chcete používať chat, prihláste sa.
Späť na Kontakty
Yurin92
Feb 10 2016 at 12:59
8 príspevkov
Hello everyone. I've coded this piece here:

for(int i=0;i<OrdersTotal();i++)
     {
      bool select = OrderSelect(i,SELECT_BY_POS,MODE_TRADES); //Iteration through every trade
      if(OrderMagicNumber()==1 && OrderSymbol()==Symbol()) //if Trade==BUY
        {
         if(Close[1]>OrderStopLoss()+atr && Close[1]>OrderOpenPrice()+atr) //is the price already greater than the opening price+ATR, and than the stoploss+ATR?
           {
            bool order = OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderStopLoss()+atr-0.0005,5),0,0,clrAquamarine);
            if(!order){Alert(GetLastError());}
           }
         else
           {
            return;
           }
        }
}

But the stoploss keeps moving on every tick. I know it is due to the '-0.0005', but I would like to have that added 'margin'. How could I manage it to stop from moving on every tick, without having to remove this -0.0005 margin?

thank you very much in advance.
CrazyTraderfx (CrazyTrader)
Feb 10 2016 at 13:46
1718 príspevkov
If you wanna place SL when you open orders, then you simply need to adjust SL at this moment using OpenOrder function.

If you wanna place SL at a particular event then you have to add the following condition... Does my SL is null, if so, apply your code else nothing.

So it should do it only once.
Ivan (StoneHeart)
Feb 10 2016 at 15:46
131 príspevkov
I think, hi wanted to realize Trailing Stop at distance (ATR-0.0005)
IXBONE
Feb 13 2016 at 09:56
97 príspevkov
you should separate your conditions from ordermodify command!
DoubleTrap (ForexSeeker)
Feb 14 2016 at 07:47
814 príspevkov
You need add the StopLoss Condition.

double stoplossBuy;
if(stoplossBuy < Bid- Close[1]- atr ) stoplossBuy = Bid- - Close[1]- atr ;

// This ensure your stopLossBuy will only move up
Information is Gold when come to organised.
Ak chcete komentovať, prihláste sa .