Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Dies wird im Journal während meiner for-Schleife gedruckt, wo im Falle einer ausstehenden Buy Stop Order, wenn die 60 EMA ist > als die OrderStopLoss, wird es die ausstehende Bestellung zu schließen, öffnen Sie eine neue mit neuen SL (die hinter der 60EMA ist), passen Sie den Take-Profit, um die 1:2 Belohnung zu unterhalten, und ändern Sie die Lose relativ zu den Stop in Punkten und mein Risikoprofil (sagen wir 2%).
Wenn dies alles geschieht, funktioniert die benutzerdefinierte Variable "Current Lots", die "LotSize" innerhalb von OrderSend ist, sie sendet eine Lotgröße, die für den Server nicht korrekt ist: "0.18215"? Könnte dies ein Problem sein, obwohl die Aufträge eigentlich trotzdem gesendet werden - diese Frage steht eher im Zusammenhang mit "könnte dies der Grund sein, warum ich "OrderType==OP_BUY" nicht aufrufen kann?
Sie sollten das beheben und die Losgröße auf dieselbe Weise validieren, wie Sie es bereits getan haben ... Sie könnten sogar eine separate Funktion dafür codieren, die auf dem Code basiert, den Sie bereits haben ... zum Beispiel:
Anstatt LotSize in OrderSend() zu verwenden, würden Sie ValidateLots(LotSize)
verwenden. Ich bezweifle allerdings, dass dies Ihr Problem verursacht...
Argh! Das ist so frustrierend - ich hänge jetzt schon zu lange an diesem Problem :(
Ich kann nicht erkennen, warum das ein Problem ist, und ich kann kein "OP_BUY" auswählen... Ich weiß, dass ich dieses Thema wahrscheinlich schon ausgeschöpft habe, aber jeder letzte Hinweis wäre sehr willkommen - vielen Dank auch für Ihre Hilfe!
Hmm - ja, ich habe gerade damit herumgespielt. Es scheint, dass die Bestellung einfach durchgeschickt wird, da der Server sowieso nur 0,00 (2 Dezimalstellen) zulässt. Die restlichen Ziffern sind also fast irrelevant.
Argh! Das ist so frustrierend - ich hänge jetzt schon zu lange an diesem Problem :(
Ich kann nicht erkennen, warum das ein Problem ist, und ich kann kein "OP_BUY" auswählen... Ich weiß, dass ich dieses Thema wahrscheinlich schon ausgeschöpft habe, aber jeder letzte Hinweis wäre sehr willkommen - vielen Dank auch für Ihre Hilfe!!!
Ich denke, Sie müssen Ihren gesamten Code zeigen. . .
Ich sehe hier einige Probleme:
-http://pastebin.com/eaY1wKbN
Tut mir leid wegen der Syntax - es ist etwas schwieriger, alles zu sehen, aber sie haben kein MQL4? Also setze es unter C++
Der ganze Code passt nicht hierher? Ich habe ihn aber auf pastebin hochgeladen?
-http://pastebin.com/eaY1wKbN
Tut mir leid wegen der Syntax - es ist etwas schwieriger, alles zu sehen, aber sie haben kein MQL4? Also stelle es unter C++
Kein Problem . . .
Wenn Sie dies tun...
Ihre OrderSelect() wird fehlschlagen, wenn Ihre OrderTicket() fehlschlägt, es sei denn, Sie haben bereits eine Order ausgewählt. Brauchen Sie diesen Code überhaupt? Später haben Sie eine Schleife, in der Sie die Orders auswählen und ihr Symbol, ihre Magic Number und ihren Typ überprüfen...
Auch das muss korrigiert werden....
. . einige geschweifte Klammern hinzufügen . . .
Ok - ich habe weitere Ausdrucke eingefügt, um ein wenig mehr Klarheit darüber zu bekommen, was getan wird und wozu. Ich habe sie unten eingefügt.
Die Zeile, in der es heißt "Order Select for closing:-..." ist das, was an der Stelle "Close OP_BUY Half Lots @ 1:1 Function" ausgewählt wird, die Sie oben genannt haben. Es scheint, dass die Ticketnummer an diesem Punkt der Auswahl anders ist? Ich hatte den Teil "...&& OrderType()==OP_BUY" herausgelöscht, da es den Rest zu drucken scheint, wenn dieser Teil nicht in der "if"-Anweisung enthalten ist... Bringt dies ein wenig mehr Klarheit?
"First Buy Order Placed:-" ist die erste OrderSend-Funktion, die am Anfang durchläuft
"Checking Buy Order:-" ist die Funktion innerhalb der for-Schleife, die die schwebende Order löscht und wieder öffnet, wenn der MA > OrderStopLoss() ist.
"NEW BUY ORDER:-" ist die neue Order, die innerhalb der for-Schleife platziert wird.
"Order Select for closing:-..." - wie oben bereits erwähnt, ist dies der Teil, der ausgewählt wird, um die Hälfte der Lots zu schließen.
Tut mir leid, wenn das verwirrend war, denn ich habe diese Teile gerade erst hinzugefügt - Sie werden sie in dem Pastebin-Link oben nicht sehen... nur einfache Druckfunktionen :)
Ok - ich habe weitere Ausdrucke eingefügt, um ein wenig mehr Klarheit darüber zu bekommen, was getan wird und wozu. Ich habe sie unten eingefügt.
Die Zeile, in der es heißt "Order Select for closing:-...", ist das, was an der Stelle "Close OP_BUY Half Lots @ 1:1 Function" ausgewählt wird, nach der Sie oben gefragt haben. Es scheint, dass die Ticketnummer an diesem Punkt der Auswahl anders ist? Ich hatte den Teil "...&& OrderType()==OP_BUY" herausgelöscht, da es den Rest zu drucken scheint, wenn dieser Teil nicht in der "if"-Anweisung enthalten ist... Verschafft dies ein wenig mehr Klarheit?
"First Buy Order Placed:-" ist die erste OrderSend-Funktion, die am Anfang durchläuft
"Checking Buy Order:-" ist die Funktion innerhalb der for-Schleife, die die schwebende Order löscht und wieder öffnet, wenn der MA > OrderStopLoss() ist.
"NEW BUY ORDER:-" ist die neue Order, die innerhalb der for-Schleife platziert wird.
"Order Select for closing:-..." - wie oben bereits erwähnt, ist dies der Teil, der ausgewählt wird, um die Hälfte der Lots zu schließen.
Tut mir leid, wenn das verwirrend war, denn ich habe diese Teile gerade erst hinzugefügt - Sie werden sie in dem Pastebin-Link oben nicht sehen... nur einfache Druckfunktionen :)
Versuchen Sie die angehängte ... es ist meine beste Vermutung zu dem, was Sie zu tun versuchen.
Großartig - danke. Das ist ein großer Schritt in die richtige Richtung. Ich denke, weil es innerhalb einer for-Schleife, es will zu schließen, die Hälfte und die Hälfte und die Hälfte @ den Preis ... Anstatt es nur einmal zu tun? Nicht nur das, aber es scheint nicht zu schließen, die Hälfte aus, sobald der Preis >= auf den Ausstiegspreis ich will, stattdessen geht es darüber hinaus, und dann, wenn der Preis schwingt wieder niedriger in den Ausstiegspreis ich will, schließt es dann - seltsam... Ich danke Ihnen für Ihre Geduld, mir zu helfen! Sehr dankbar für Ihre Zeit!!
UPDATE: Außerdem habe ich gerade herausgefunden, dass, wenn ich die Experten-Eigenschaften (extern int) vor dem Ausführen von Strategie-Tester, dann die schließen Hälfte funktioniert überhaupt nicht - Dinge, die Auswirkungen auf die schließen Hälfte ist "MA_PadAmount" dies ist, wie viele Punkte, die ich als ein Pad auf den Stop-Loss, die in Pips, und "OrderPrice_PadAmount", die mir erlaubt, um anzugeben, wie viele Pips kann ich als Pad auf den Einstiegspreis der Aufträge setzen...
Großartig - danke. Das ist ein großer Schritt in die richtige Richtung. Ich denke, weil es innerhalb einer for-Schleife, es will zu schließen, die Hälfte und die Hälfte und die Hälfte @ den Preis ... Anstatt es nur einmal zu tun? Nicht nur das, aber es scheint nicht zu schließen, die Hälfte aus, sobald der Preis >= auf den Ausstiegspreis ich will, stattdessen geht es darüber hinaus, und dann, wenn der Preis schwingt wieder niedriger in den Ausstiegspreis ich will, schließt es dann - seltsam... Ich danke Ihnen für Ihre Geduld, mir zu helfen! Sehr dankbar für Ihre Zeit!!
Ich bin mir nicht ganz sicher, wie ich das schreiben soll, aber ist das ungefähr der richtige Weg?