|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Max-/Min-Werte im dynamischen Array
Hallo,
ich erweitere momentan meine Erfahrungen in der MQL4-Programmierung. Mit nachfolgendem Code will ich den Max-Preis (OderOpenPrice() aller offenen Long-Positionen (und später auch den Min-Wert aller Short-Positionen...) ermitteln und später weiterverwenden. Das Array soll dynamisch sein, weil Orders dazukommen oder geschlossen werden. Gleichwohl: es funktioniert einfach nicht. Die Sortierfunktionen gelten alle nur für statische Arrays, im Web gefundene Vergleiche der einzelnen Elemente bringen auch nichts. Hier der Code (ich krieg ihn nicht anders rein...): double ArrayName[]; int iPos = OrdersTotal(); ArrayResize(ArrayName,iPos+1); ArrayInitialize(ArrayName,0); for(iPos=0; iPos<=OrdersTotal(); iPos++) { if (OrderSelect(iPos, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == MagicNumber) { if (OrderMagicNumber() == MagicNumber && OrderType() == OP_BUY) { ArrayName [iPos]=OrderOpenPrice(); } Danke für eure Hilfe!! |
|
|||
Über den Button # bekommst Du diesen Code (nach Korrekturen! und Bereinigung):
Code:
double ArrayName[]; int iPos = OrdersTotal(); ArrayResize(ArrayName, iPos); ArrayInitialize(ArrayName, 0); for (iPos = 0; iPos < OrdersTotal(); iPos++) { if (OrderSelect(iPos, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_BUY) { ArrayName[iPos] = OrderOpenPrice(); } } } } Code:
double ArrayName_Buy[]; double ArrayName_Sell[]; int cnt_buy = 0, cnt_sell = 0; double max_price = 0, min_price = 0; for (int iPos = 0; iPos < OrdersTotal(); iPos++) { if (OrderSelect(iPos, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_BUY) { ArrayResize(ArrayName_Buy, cnt_buy+1); ArrayName_Buy[cnt_buy] = OrderOpenPrice(); cnt_buy++; } if (OrderType() == OP_SELL) { ArrayResize(ArrayName_Sell, cnt_sell+1); ArrayName_Sell[cnt_sell] = OrderOpenPrice(); cnt_sell++; } } } } if (cnt_buy > 0) { int max_value_idx = ArrayMaximum(ArrayName_Buy, WHOLE_ARRAY, 0); max_price = ArrayName_Buy[max_value_idx]; } if (cnt_sell > 0) { int min_value_idx = ArrayMinimum(ArrayName_Sell, WHOLE_ARRAY, 0); min_price = ArrayName_Sell[min_value_idx]; }
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
dynamische arrays, höchster preis, kerze, max preis, maximalwert, mql4, oderopenprice, preis, programmierung, programmierung metatrader, programmierung mql4 |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|