|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Wenn ich Zeit finde, werd ich helfen.
Bin allerdings momentan auch viel "verbucht"... @Gondiego Ich werd die nächsten Tage mal schauen und dann evtl. helfen. Vielleicht kommt hier ja noch jemand anderes zu Wort... |
|
|||
So,
Es soll also einfach eine BUY-Order gesetzt werden, wenn der Indikator einen grünen Pfeil (Signal buy) setzt, eine SELL-Order, wenn ein roter (Signal sell) gesetzt wird. Und das dann natürlich immer bei der neuesten Kerze prüfen, nicht so wie du in deinem Code (gehst in der For-Schleife ALLE Kerzen durch und setzt "ÜBERALL" eine Order!). Im Indikator sind ein paar Dinge schecht / fehlerhaft. Zum Beispiel die Zeitabfrage (Berechnung fehlerhaft / unlogisch), die leere Funktion und die Formatierung (bei einem else z.B. geht die Zeile nach dem "*" in einer neuen Zeile weiter...). Außerdem würde ich für die Benachrichtigungen (Alert / Email) noch Bedingungen setzen. So wie in deinem Code wäre es bischen spammy. Alles in allem brauchst du in deinem Ea nicht viel, schon garnicht eine "Kopie" des Indikators. Der EA ruft einfach den Indikator auf und arbeitet mit den Werten. Wenn du im Chart auch die Signale, also die Pfeile eingezeichnet haben willst, so kannst du den Indikator ja parallel nutzen. |
|
|||
Code:
Es soll also einfach eine BUY-Order gesetzt werden, wenn der Indikator einen grünen Pfeil (Signal buy) setzt, eine SELL-Order, wenn ein roter (Signal sell) gesetzt wird. Code:
if(iCustom(NULL,0,"UrsprungsIndikator",0.004,0,0)) { AktuelleRichtung = 1; } else if(iCustom(NULL,0,"UrsprungsIndikator",0.004,1,0)) { AktuelleRichtung = 2; } if(AktuelleRichtung == 1){Handelssignal="kauf";} if(AktuelleRichtung == 2){Handelssignal="verkauf";} return(Handelssignal); Wie kann ich das jetzt am besten bewerkstelligen, dass er auch die richtige "Richtung" annimmt? Gondiego |
|
|||
Du solltest erstmal verstehen, was "iCustom" liefert. Dann wirst du auch verstehen, warum du immer nur in den ersten Block kommst.
Denn so wie du das abfragst, hast du eine falsche Vorstellung, was iCustom macht und liefert... |
|
|||
Dann erläutere es mir doch bitte...
|
|
|||
iCustom
Code:
double iCustom( string symbol, // symbol int timeframe, // timeframe string name, // path/name of the custom indicator compiled program ... // custom indicator input parameters (if necessary) int mode, // line index int shift // shift ); Die letzten beiden Parameter geben den entsprechenden Buffer und den entsprechenden Index (Kerze) im Buffer, dessen Wert abgefragt wird an. Davor kommen aber noch alle Parameter, mit denen der Indikator initialisiert werden soll. Dabei geht es um die Eingabeparameter des Indikators! In deinem Fall Code:
iCustom(NULL,0,"UrsprungsIndikator",0.004,0,0) Hoffe du verstehst jetzt, warum eine If-Abfrage wie du sie hast, sinnlos ist. |
|
|||
Hmm, das heißt ich muss wohl mit diesem Wert weiter arbeiten.
Aber wie, da bin ich mit meinem Latein am Ende, sorry. |
|
|||
Da gibt es doch zahlreiche Beispiel im Netz. Die Grundfunktionalität ist auch in den Dokumentationen des MQ4 enthalten, MQ5 sogar in Deutsch.
Ich schreibe auch permanent, dass der Lernerfolg um so größer ist, je mehr man sich Code bestehender Programme anschaut, Zeile für Zeile analysiert um dann viel experimentiert und v.a. nicht vergessen, mittels Print(), Meldungen ausgeben, wo der EA Langläufe und welche Werte bestimmte Variablen besitzen. Daran kann man viele nützliche Informationen gewinnen, die das Vorankommen stark beschleunigen. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ist vielen aber anscheinend zu langwierig, ohne schnelle Erfolge. Schade...
|
|
|||
Weiss nicht, ob du mittlerweile was gemacht hast...
Hab grad mal bischen was gemacht. Kannst es so nutzen, oder einfach verändern. Soll auch eher als "Vorlage" dienen, welche du dann mit deinen Vorstellungen anpassen kannst. Habe es allerdings jetzt schnell geschrieben und nicht getestet (Ist am frühen Sonntag auch bischen schlecht). Der EA fragt die Werte der beiden Buffer des Indikators bei jedem Tick ab, sofern Autotrade auf true steht und beim aktuellen Signal noch keine Order plaziert wurde. Die Order wird mit dem SL, TK und der Positionsgröße eingegangen, welche über die Eingabeparameter eingestellt wurden. Die Sache mit dem Alert habe ich (auch im Indikator) erstmal ignoriert (ausgeklammert), da dafür keine logisch sinnvollen Bedingungen definiert wurden. Außerdem verarbeitet der Indikator alle Kerzen jetzt nur einmal, und danach immer nur die neueste. Es ist sinnlos, ALLE KERZEN bei jedem Tick erneut zu verarbeiten. |
Lesezeichen |
Stichworte |
keine order, keine trades, mql4, order, programmierung, programmierung metatrader, programmierung mql4, trades |
|
|