Bedingungen übergangen - Seite 2

 
Christian:

Blöde Frage:

Woher weißt du denn das er bei 1:39 einen BUY Trade geöffnet wird ?

Wenn der Debugger in der Zeile steht IST die Bedingung in der if Zeile noch gar nicht geprüft.

Erst, wenn er in der Klammer steht. Kannst du die Bedingung mit dem Debugger gegenprüfen.

fix aus der Pause: das sehe ich im ST, da erscheint dann die Position, siehst Du im Video oben drin.

Ja, BP in die Klammer macht Sinn, teste ich heute abend.

Die Prints lese ich in der Tat nicht mehr.. Log war mir immer egal, lösche ich eh ständig, aber die kommen dennoch raus, tragen der Übersicht ja auch nicht bei.

Danke!

 
Christian Linden:

fix aus der Pause: das sehe ich im ST, da erscheint dann die Position, siehst Du im Video oben drin.

Nun sehe ich es auch.

Aber Du kannst trotzdem keine Aussage Treffen ob der Buy-Trade korrekt ist.

Du müsstest in der anderen IF-Anweisung stoppen.

Denke aber das hast Du selbst erkannt.

 

So, habe gerade noch einige Durchläufe gemacht.. was frisst der ST eigentlich für eine Performance dass mein MacBook-Pro (Win VM) hier Heli spielt.. Hölle!!
.. aber das ist ein anderes Thema.

Sieh hier: http://linden-it-net.de/share/st-kills.webm

Bei 9:18:30, TickCounter 22708, gibt es eine saubere, den Bedingungen entsprechende Ausführung einer sell order mit RetCode 10009, alles gut.

Bei 9:18:41, TickCounter 25, wird unnachvollziehbar eine Buy Order generiert. Für mich Laien unnachvollziehbar springt der Code nicht mal weiter in die { }, in denen der ordersend steht.

Wie, wo und wieso wird diese Buy Order erzeugt?!

RetCode 3.. der steht nicht in der Tabelle: https://www.mql5.com/en/docs/constants/errorswarnings/enum_trade_return_codes
Der steht aber bereits vor dem Geistertrade da.

 
Christian Linden:

So, habe gerade noch einige Durchläufe gemacht.. was frisst der ST eigentlich für eine Performance dass mein MacBook-Pro (Win VM) hier Heli spielt.. Hölle!!
.. aber das ist ein anderes Thema.

Sieh hier: http://linden-it-net.de/share/st-kills.webm

Bei 9:18:30, TickCounter 22708, gibt es eine saubere, den Bedingungen entsprechende Ausführung einer sell order mit RetCode 10009, alles gut.

Bei 9:18:41, TickCounter 25, wird unnachvollziehbar eine Buy Order generiert. Für mich Laien unnachvollziehbar springt der Code nicht mal weiter in die { }, in denen der ordersend steht.

Wie, wo und wieso wird diese Buy Order erzeugt?!

RetCode 3.. der steht nicht in der Tabelle: https://www.mql5.com/en/docs/constants/errorswarnings/enum_trade_return_codes

Hmm langsam machst du mir Sorgen.....


Du willst wissen, warum eine BUY Order ausgelöst wird?

Setze 2 Breakpoints NACH OrderSend()

Je einen in der BUY und Sell  IF-Anweisung


Ich sehe immer nur einen kleinen Ausschnitt vom Debugger ,wobei locker beide raufpassen gleichzeitig. Wem nützt das ? Sowas machen eigentlich nur Trolle..... 😤

 
So muss das aussehen....
 
Christian:
So muss das aussehen....

aber so siehst Du nicht im ST, dass die Order ausgeführt wird.. außerdem beobachte ich im Chart, wann ich an den MA komme.. wenn er denn angezeigt wird..

Ich habe da was via Schritt für Schritt Pfeil gefunden: http://linden-it-net.de/share/onestepfurther.webm

Da ist noch was Code drin, der mir nicht bewußt war.. aber heute verstehe ich gar nichts mehr.. das ist ein ungesundes Hobby, zu einem IT-Job.. 

 
Christian Linden:

aber so siehst Du nicht im ST, dass die Order ausgeführt wird.. außerdem beobachte ich im Chart, wann ich an den MA komme.. wenn er denn angezeigt wird..

Ich habe da was via Schritt für Schritt Pfeil gefunden: http://linden-it-net.de/share/onestepfurther.webm

Da ist noch was Code drin, der mir nicht bewußt war.. aber heute verstehe ich gar nichts mehr.. das ist ein ungesundes Hobby, zu einem IT-Job.. 

Brauchst Du doch nicht. Der Return Code vom MqlTradeResult sagt alles aus :-)

so Feierabend für heute, hast Recht

 
Christian:

Brauchst Du doch nicht. Der Return Code vom MqlTradeResult sagt alles aus :-)

so Feierabend für heute, hast Recht

Das ist wohl wahr. Aber wenn ich den Zeitpunkt/Tick noch nicht kenne, an dem meine Conditions greifen, ist es hilfreich, sich zunächst via des Charts ranzutasten;
aber wenn man das hat, ist's wie von Dir sicherlich besser.

Ich komme heute nicht weiter, brauch' ne Pause. Hast Du eigentlich für Dich herausgefunden, wie es zu diesem BuyTrade kommt?

Schönes WE & VG!

 
Christian Linden:


Klar hab ich das. Die Sache ist so....

Du musst woanders suchen. Nicht Dein OrderSend() macht den Buy auf, sondern Dein trade.Close() !



Dabei sehe ich das Du eine geänderte trade.mqh nutzt. Sowie OrderSend() als Funktion zur Trade Eröffnung.

Diese Kombination produziert auf Dauer Fehler.


Tipps:


Nutze ausschließlich die original Trade.mqh von MetaQuotes. Später, wenn Du sicherer bist, kannst Du anfangen und selbst Änderungen machen.

https://www.mql5.com/de/docs/standardlibrary/tradeclasses/ctrade

Fange an Dein Code in  Funktionen zu separieren.

Kurze OnTick() ! = Debugging leichter

Struktur reinbringen.

Beispiel:

https://www.mql5.com/de/code/download/20762/martingale.mq5



Fazit:

Die Bedingung wurde nicht übersprungen (Computer macht kein Fehler 😁)

Solche Probleme lassen sich nur mit dem kompletten code finden.

Videos machen da keinen Sinn mehr

 
Christian:

Klar hab ich das. Die Sache ist so....

Du musst woanders suchen. Nicht Dein OrderSend() macht den Buy auf, sondern Dein trade.Close() !



Dabei sehe ich das Du eine geänderte trade.mqh nutzt. Sowie OrderSend() als Funktion zur Trade Eröffnung.

Diese Kombination produziert auf Dauer Fehler.


Tipps:


Nutze ausschließlich die original Trade.mqh von MetaQuotes. Später, wenn Du sicherer bist, kannst Du anfangen und selbst Änderungen machen.

https://www.mql5.com/de/docs/standardlibrary/tradeclasses/ctrade

Fange an Dein Code in  Funktionen zu separieren.

Kurze OnTick() ! = Debugging leichter

Struktur reinbringen.

Beispiel:

https://www.mql5.com/de/code/download/20762/martingale.mq5



Fazit:

Die Bedingung wurde nicht übersprungen (Computer macht kein Fehler 😁)

Solche Probleme lassen sich nur mit dem kompletten code finden.

Videos machen da keinen Sinn mehr

Danke! Ja, auch ich fand es gestern Nacht heraus, nachdem ich via F11 (obwohl ich den Unterschied zu F10 noch nicht verstanden habe..) step by step durch bin.

Jetzt muss ich die Sache mit dem Hedging/non-hedging account verstehen.. offenbar habe ich einen Hedging Account, sonst könnten nicht beide Positionen offen sein.

Ich will nie mit mehr als einer offenen Position arbeiten, also ist diese Hedge-Closen mittels Eröffnung eines Trades in die Gegenrichtung für mich nicht die Lösung;

ich will einfach nur das Ding schließen und dann auf das nächste Signal warten. Das geht doch anhand des Tickets, richtig? 

Ansonsten hat mein Code ja funktioniert wie gewünscht, ich habs nur nicht kapiert =)

Grund der Beschwerde: