stoploss modification problem

 

Hi

When I want to get PositionOpenPrice for stoploss modification using CTrade , I have to write while(PositionSelect(symbol) == false); before  

PositionGetDouble(POSITION_PRICE_OPEN);    otherwise EA can't get PositionOpenPriceand  and so the Buy key on panel is only able to buy once not more

Please help

 while(PositionSelect(symbol) == false);
        
         double  PosOpenPrice = PositionGetDouble(POSITION_PRICE_OPEN);
         PosOpenPrice = NormalizeDouble(PosOpenPrice,_Digits);

 double    Btkp = NormalizeDouble(PosOpenPrice + (takeProfit*_Point),_Digits); // Take profit
 double   Bstl = NormalizeDouble(PosOpenPrice - (stopLoss*_Point),_Digits);

 ulong ticket = PositionGetTicket(0);

   m_Trade.PositionModify(ticket,Bstl,Btkp);
 

Please don't post randomly in any section. Your question is not related to the section you posted.

Your thread has been moved to Expert Advisors and Automated Trading

 
 double    Btkp = NormalizeDouble(PosOpenPrice + (takeProfit*_Point),_Digits); // Take profit
 double   Bstl = NormalizeDouble(PosOpenPrice - (stopLoss*_Point),_Digits);

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)

Reason: