trade.OrderModify() error

 
why does this not modify the stop loss
globalTicket = PositionGetTicket(0);
double priceOpen = PositionGetDouble(POSITION_PRICE_OPEN);
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double newStopLoss = priceOpen - 10* tickSize;
trade.OrderModify(globalTicket, 0, priceOpen, newStopLoss, 0, CLR_NONE);     
 
juandavid8a:
why does this not modify the stop loss

before you do anything you should select the position:

if(PositionSelectByTicket(PositionGetTicket(i)))
{
  //do whatever read/write to position
}
 
Yashar Seyyedin #:

before you do anything you should select the position:

Nope. PositionGetTicket() already select the position.
 
juandavid8a:
why does this not modify the stop loss

You need to check you can place your stoploss at only 10 ticks of the open price at that time.

Check freeze level, stops level...

There are hundreds of similar topics on this forum, please search before posting.

 
Alain Verleyen #:
Nope. PositionGetTicket() already select the position.

Yes. Thanks

 
double newStopLoss = priceOpen - 10* tickSize;
  1. You buy at the Ask and sell at the Bid. Pending Buy Stop orders become market orders when hit by the Ask.

    1. Your buy order's TP/SL (or Sell Stop's/Sell Limit's entry) are triggered when the Bid / OrderClosePrice reaches it. Using Ask±n, makes your SL shorter and your TP longer, by the spread. Don't you want the specified amount used in either direction?

    2. Your sell order's TP/SL (or Buy Stop's/Buy Limit's entry) will be triggered when the Ask / OrderClosePrice reaches it. To trigger close at a specific Bid price, add the average spread.
                MODE_SPREAD (Paul) - MQL4 programming forum - Page 3 #25

    3. The charts show Bid prices only. Turn on the Ask line to see how big the spread is (Tools → Options (control+O) → charts → Show ask line.)

      Most brokers with variable spreads widen considerably at end of day (5 PM ET) ± 30 minutes.
      My GBPJPY shows average spread = 26 points, average maximum spread = 134.
      My EURCHF shows average spread = 18 points, average maximum spread = 106.
      (your broker will be similar).
                Is it reasonable to have such a huge spreads (20 PIP spreads) in EURCHF? - General - MQL5 programming forum (2022)

  2. You can't move stops (or pending prices) closer to the market than the minimum: MODE_STOPLEVEL * _Point or SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL).
              Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial

    On some ECN type brokers, the value might be zero (the broker doesn't know). Use a minimum of two (2) PIPs.

    The checks a trading robot must pass before publication in the Market - MQL5 Articles (2016)

Reason: