searching for a take profit in History

 

Hi all, I wrote this code to check if there is at least a trade with take profit reached in History.

I only leave current day trades in History. 

for(cnt=0;cnt<OrdersHistoryTotal();cnt++) 
    {
    if (OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY))
          {         
         
          if(OrderType()==OP_BUY)  
            { 
            if (OrderClosePrice()>=OrderTakeProfit())
               { 
               ...
               }  
            } 
          
          if(OrderType()==OP_SELL)  
             { 
            if (OrderClosePrice()<=OrderTakeProfit())
               { 
               ...
               }  
            } 
          }                       
    }

Is this a good way to proceed or could you suggest a better method?

Thank you!

 
  1. OCP can be above or below OTP due to slippage. Improve your tests.

    1. Do not assume history has only closed orders.
                OrderType() == 6, 7 in the history pool? - MQL4 programming forum 2017.11.30

    2. Do not assume history is ordered by date, it's not.
                Could EA Really Live By Order_History Alone? (ubzen) - MQL4 programming forum 2012.04.21
                Taking the last profit and storing it in a variable | MQL4 - MQL4 programming forum #3 2020.06.08

    3. Total Profit is OrderProfit() + OrderSwap() + OrderCommission(). Some brokers don't use the Commission/Swap fields. Instead, they add balance entries. (Maybe related to Government required accounting/tax laws.)
                "balance" orders in account history - Day Trading Techniques - MQL4 programming forum

      Broker History
      FXCM
      Commission - <TICKET>
      Rollover - <TICKET>

      >R/O - 1,000 EUR/USD @0.52

      #<ticket>  N/A
      OANDA
      Balance update
      Financing (Swap: One entry for all open orders.)