MQL5: last position open price function becomes slow - page 2

 
Vladimir Karputov:

How often do you call the function

?

i call it once on the OnTick function

 
Omega J Msigwa :

i call it once on the OnTick function

That is, you call this function at every tick ???

 
Vladimir Karputov: I cannot read your code, so I applied a styler (this way it is more convenient for me to see variables and loops)
m_trade.Buy(lotsize, Symbol(), ask, 0, ask + tp * _Point, "Simple Grid");

You buy at the Ask and sell at the Bid. Pending Buy Stop orders become market orders when hit and open at 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 to 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 (OANDA) shows average spread = 26 points, but average maximum spread = 134 (your broker will be similar).

 
Vladimir Karputov:

That is, you call this function at every tick ???

Thank u so much i get it, so where is the best place to call it ..Sir ?? i thought OnTick is the only place to call trading functions on the EA

 
Omega J Msigwa: i thought OnTick is the only place to call trading functions on the EA

It is, but you don't have to do it on each call, such as the start of a new bar.