|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Orderverwaltung, macht ein Array Sinn?
Hallo,
erst mal ein freundliches Hallo, das wird meine erste Frage in diesem Forum. Dann mal zu Sache: Ich habe in meinem EA in der Regel immer eine Hauptorder, an die ein bis drei Orders angelehnt werden. Nachkäufe oder Teilverkäufe also. Für ein so ein Orderset, so nenne ich es mal, kommen dann immer bis zu insg. 4 Orders zusammen. Abhängig von den Signalen, können dann auch schon mal 2 oder 3 Ordersets aktiv sein. Das bedeutet 4*3 = 12 aktive Orders, die verwaltet werden wollen. Das erste was mir in den Sinn kam, sind natürlich Arrays. Für Kleinkram funktionieren die auch in MQL ganz passabel, aber möchte man spezifische Werte aus einem Array holen, bin ich über diesen Satz in der MQL-Doku gestolpert: Die Funktion, um ein Array zu durchsuchen - arraybsearch()
Jetzt stehe ich auf dem Schlauch. Bevor ich jetzt alles mit for und while Schleifen zupflastere um die Orders annähernd sinnvoll zu verwalten, wollte ich fragen, wie Ihr solche Orderverwaltungen löst. Über Arrays? Und wenn ja, worauf sollte ich achten, oder wo gibts im Internet Lesestoff. Oder klassisch über gestaffelte while und for Scheifen, die die OrdersTotal() solange abfragt, bis man bei der entsprechenden Order geladent ist? Über Anregungen oder Codebeispiele wäre ich sehr dankbar. In diesem Sinne noch mal ein freundliches Hallo in die Runde, ich bin der Neue Snow |
|
|||
""The function returns index of a found element. If the wanted value isn't found, the function returns the index of an element nearest in value."
Wenn die Funktion den gesuchten Wert nicht findet, nimmt sie einfach den nächsten?! Hä? Das macht überhaupt keinen Sinn." Nein, da steht nearest in value - also der am nächsten gelegene Wert des zu Suchenden - also nicht der nächste Wert in dem sortierten Array. D.h. unter Benutzung von ArrayBsearch(): 1. das Array muss sortiert sein 2. die Suche wird nur in der ersten Dimension stattfinden 3. findet die Suche nicht genau diesen Wert, dann wird der Index ausgegeben, dessen Wert dem zu Suchenden am nächsten kommt. D.h. es gibt jetzt zwei Möglichkeiten zu suchen: 1. mittels ArrayBsearch() in der 1. Dimension, dann müsste der Wert des zurückgegebenen Index nochmals verglichen werden mit dem zu Suchenden 2. es wird nicht ArrayBsearch() benutzt, sondern man sucht über schrittweise Vergleiche des zu suchenden Wertes mit allen Elementen des Arrays. Das geht dann auch über alle Dimensionen. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ah ok danke. Das RetunValue nochmals gegenprüfen ist eine Option, darauf bin ich nicht gekommen.
Kennst Du gute Quellen, wo das Arbeiten mit Mehrdimensonalen Arrays anschaulich erklärt wird? Löschen, verschieben, Daten ändern, etc. |
|
|||
Zitat:
So viele Arrayfunktionen sind das hier nicht. Und entweder kann man die Funktion über alle Dimensionen benutzen oder nur über die erste. Das steht dann in dem jeweiligen Hilfetext des MetaEditors. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
ich würde an Deiner Stelle je Orderset einen eindimensionalen Array definieren, diese dann mit den OrderTicket-Nummern befüllen (oder mit Magic-Numbers, falls Du diese bevorzugst) und die Array dann ganz normal mit for-Schleifen auslesen. |
Lesezeichen |
Stichworte |
array, arrays, mql4, orderverwaltung, orderverwaltung array, programmierung, programmierung metatrader, programmierung mql4 |
|
|