Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 05.08.17
next user next user ist offline
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Du kannst iPos_H doch nicht NACH jedem Schleifendurchlauf verringern und gleichzeitig im Schleifenkörper jedesmal erhöhen.
Außerdem ist dein Array unnötig groß. Beim ersten Durchlauf ist er so groß wie OrderHistoryTotal() und bei jedem weiteren +1.
Alle vorherigen Plätze im Array (also 0 - OrdersHistoryTotal()-1) sind bei dir leer.

Das ist echte Verschwendung.

Dein Code würde so "richtiger" sein.
Code:
int ArOrdersHistory[], arr_count = 0;         
         
for (int iPos_H=OrdersHistoryTotal()-1; iPos_H > OrdersHistoryTotal() - 6; iPos_H--)
{
   if (OrderSelect(iPos_H, SELECT_BY_POS, MODE_HISTORY))
   {
      arr_count++;
      ArrayResize(ArOrdersHistory, arr_count);
      ArOrdersHistory[arr_count-1] = OrderOpenPrice();
   }
}