|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
EA nach TakeProfit abschalten
Hallo,
möchte meinen EA nach dem Erreichen des TP abschalten, damit er keine weitere Positionen eröffnet. verwende dafür den Befehl: keybd_event(17,0,0,0); keybd_event(69,0,0,0); nur weis ich jetzt nicht, wo dieser Befehl eingesetzt werden muß. LG Dieter |
|
|||
Wo hast Du denn diese Funktionen gesehen bzw. wo sind die her?
Das sind definitiv keine MQL-Funktionen. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
hab das Problem vor ca. 2 Jahren schon mal gehabt. Die Befehle hatte ich von dir, habe nur vergessen, wo sie eingesetzt werden.
|
|
|||
Da kann ich mich nicht dran erinnern, aber von der Struktur des Funktionsnamens und der Anzahl der Parameter würde ich fast behaupten,
die sind definitiv nicht von mir. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
finde den threat nicht mehr, aber egal hast du eine Lösung für mein Problem?
|
|
|||
z.B.
if (TP_erreicht) EA_working = false; und direkt hinter void OnTick() { ... if (!EA_working) return; traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
Zusätzlich habe ich noch eine Bedingung, wenn Traden verboten ist, den EA zu entfernen mit ExpertRemove() und in DeInit eine Sicherheitsabfrage, ob auch alles aufgeräumt ist, d.h. bei mir keine laufenden Orders (sollten sowieso nicht mehr sein) und alle pending Orders auch raus. Das könntest Du mit einem Check machen, ob TP erreicht ist, wenn Du die Trade History prüfst. AVT |
|
|||
wie müßte die Abfrage aussehen, ob der TakeProfit ausgelöst wurde.
|
|
|||
Auf die Schnelle aus einem meiner EAs:
Code:
int CurDay=TimeDayOfYear(TimeCurrent()); EATrades=0; // number of todays trades EABalance=0; // amount of todays win/loss for(n=0; n<OrdersHistoryTotal(); n++) { if( OrderSelect(n,SELECT_BY_POS,MODE_HISTORY) // order history && TimeDayOfYear(OrderCloseTime())==CurDay ) // of today { if( OrderComment()==EAName // pos closed || OrderComment()==EAName+"[sl]" // sl reached || OrderComment()==EAName+"[tp]" // tp reached ) { EATrades++; // increase trade counter EABalance=EABalance+OrderProfit(); // in/decrease our balance } } } if (EABalance<=DayLoss) DayStop=true; // enough lost else if(EABalance>=DayProfit) DayStop=true; // enough won else DayStop=false; |
|
|||
Hallo,
es wäre besser den String von OrderComment() einzulesen und in dem String dann "[tp" suchen, da es auch sein kann, dass [tp/gap] da drinn steht, oder sonstige abweichungen zu EAName+"[tp]" auftreten. https://docs.mql4.com/strings/stringfind ---Leopold--- |
Lesezeichen |
|
|