Inhalte aufrufen

  • Über WindowsLive anmelden Log In with Google Anmelden
  • Mitglied werden
Profilbild

Global Variable Löschen mit OrderClose

- - - - -

  • Du kannst leider keine neuen Themen eröffnen
  • Please log in to reply
11 Antworten zu diesem Thema

  #1
OFFLINE   Deejoy

Hi,

 

ich hab in meine Close Funktion noch einen fehler und kann ihn nicht sehen.

 

Jede Order die eröffnet wird bekommt von mir eine GlobaleVariable (0) mit. Die Globalvariable hat als Namen die jeweilige Ticketnummer.

Es werden zwar alle Orders geschlossen aber immer nur von der ersten Order auch die GlobalVariable gelöscht. Auch bekomme ich ich beim Close öfters einen 138 Requotes Fehler scheitn aber trotzdem die Orders alle zu schließen.

 

Die Funktion rufe ich bei einem Signal so auf wenn alle Sell Positionen geschlossen werden sollen

Please Login or Register to see this Hidden Content

Und das hier ist dann die Funktion

Please Login or Register to see this Hidden Content



  #2
OFFLINE   fxdaytrader

GlobalVariableGet - Du mußt den Namen abfragen, nicht den Inhalt ...

s. auch

Please Login or Register to see this Hidden Content


Kommst' heut' nicht, kommst' morgen oder gar nicht ...
Krank im Kopf, aber sonst ganz nett :troll:

meet the Fabrik-Mods | ForexFabrik ForenSuche | alter mql4 compiler (hier

  #3
OFFLINE   Deejoy

Die Ticketnummer ist der Name der Inhalt wäre dann 0 oder 1.



  #4
OFFLINE   fxdaytrader

ups, jau.

 

Beim orderclose würde ich die slippage hochsetzen. Die 3 ist im Grunde genommen auch Quark weil pip/point-Anpassung nicht stattfindet, müsste man also nachbessern oder gleich die Slippage hochsetzen. Man will die Order ja unbedingt JETZT schließen, ich setze die slippage bei sowas immer auf 99999, weiß nicht ob es hilft, müsste man ausprobieren.

 

Da ich nicht so häufig mit diesen globals arbeite müsste ich da jetzt selbst herumprobieren, möglicherweise liegt es daran daß der globalvariablename ein string sein muß, der inhalt ein double.

Oderticket() ist aber ein Integer, möglich daß es da zu Fehlern kommt. Vielleicht hilft es das OrderTicket() in einen String umzuwandeln, den Inhalt (0 oder 1) in ein double?


Kommst' heut' nicht, kommst' morgen oder gar nicht ...
Krank im Kopf, aber sonst ganz nett :troll:

meet the Fabrik-Mods | ForexFabrik ForenSuche | alter mql4 compiler (hier

  #5
OFFLINE   Deejoy

hmm ok danke werde ich mal probieren ob es hilft



  #6
OFFLINE   fxdaytrader

Ich habe leider keine Zeit, sonst würde ich mitbasteln. Habe aber Hunger und habe mich spontan entschieden den grill anzuwerfen.


  • Deejoy gefällt das
Kommst' heut' nicht, kommst' morgen oder gar nicht ...
Krank im Kopf, aber sonst ganz nett :troll:

meet the Fabrik-Mods | ForexFabrik ForenSuche | alter mql4 compiler (hier

  #7
OFFLINE   Deejoy

Hab es mal abgeändert nun löscht er zwar die Globalvariable aber mehr als er sollte und dabei hat sich nun auch das Problem des Requotes gezeigt.

Scheinbar wird nicht beachtet ob es sich um Buy oder Sell Positionen handelt. Er will beides immer schließen. Setze ich die Slipage auf 999 schließt er auch beides was er aber natürlich nicht machen soll. 

 

Zusammengefasst siehst jetzt so aus.

 

fk_OrderClose("BUY");  Soll nur Buy Positionen schließen. Aufgrund der Slipage von 3 tut er das auch will aber trotzdem auch Sell Positionen schließen. Dabei löscht er nun auch die GlobalVariable der Sell Positionen. Soll aber aber nicht. Setze ich die Slipage auf 999 Schließt er alles und löscht alles soll aber nur Buy schließen.

Please Login or Register to see this Hidden Content


Viel Spaß beim Grillen und guten Hunger ;)

macht ja auch sinn bei dem Wetter :D



  #8
OFFLINE   traderdoc

So auf Anhieb sehe ich da keinen Fehler! Mal abgesehen davon das hoffentlich die Variable ticket als bool deklariert ist, würde ich ad hoc probieren:

 

pr_RefreshRates();

int tn = OrderTicket();

ticket= OrderClose(OrderTicket(), OrderLots(), gs_dBid, 3, White);

GlobalVariableDel (tn);

 

D.h. vor dem Close die Ticketnumber abspeichern.

 

Ansonsten ist der Name der GV immer ein String. Auf jeden Fall wird eine Integervariable intern in eine String umgewandelt und der Wert der GV muß keiner vom Typ double sein, das kann auch int sein.

 

traderdoc


Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #9
OFFLINE   Deejoy

Ok dann schein ich ja doch ein bischen was gelernt zu haben :D ....

 

Ja ticket ist als bool deklariert. Ich werde das mal so probieren eventuell ist es auch mal wieder ein Fehler vom Tester der scheint trotz kompilierung manchmal änderungen nicht zu übernehmen. Erst wenn man es unter einem Neuen Namen speichert funktionierts dann auf einmal wieder



  #10
OFFLINE   Deejoy

Ok ich glaub ich hab den Fehler gefunden. Zu mindestens macht er es jetzt so wie er soll.

 

Ich habe im Code noch die geschweiften Klammern 10 und 11 gesetzt daran hast wohl gelegen.

Please Login or Register to see this Hidden Content



  #11
OFFLINE   traderdoc

Ja, der Tester will immer mit Samthandschuhen angefaßt werden.

Änderungen von externen Variablen im Metaeditor werden tatsächlich nicht immer übernommen.

Das hatte mich auch schon an den Rand der Verzweiflung gebracht. Ich wollte schon bei Scusi auf die Pritsche

springen, konnten mich aber immer wieder daran erinnern, die Variable auch in den Eigenschaften beim Tester zu ändern.

 

traderdoc


  • Deejoy gefällt das
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #12
OFFLINE   fxdaytrader

tester:

Nach Änderungen kurz mit der Maus runterscrollen auf den nächsten ea, dann zurück auf den gewünschten, optionen öffnen, reset klicken ,fertig. Umständlich, aber funzt :)


  • Naddmr und Deejoy gefällt das
Kommst' heut' nicht, kommst' morgen oder gar nicht ...
Krank im Kopf, aber sonst ganz nett :troll:

meet the Fabrik-Mods | ForexFabrik ForenSuche | alter mql4 compiler (hier



Similar Topics

  Thema Eröffnet von Statistik Letzter Beitrag




0 Benutzer lesen gerade dieses Thema

0 Mitglieder, 0 Gäste, 0 anonyme Nutzer