|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
EA beenden, Orders schliessen und neu starten
Hey Leute,
weiss wer, wie man folgende Fragestellung lösen kann. Der EA soll eine bestimmte Zeit laufen (z.B. von 7.00-17.00Uhr), dann stoppen, alle Orders (Positionen) löschen bzw. schliessen (Idealerweise sollte er die alte Position mit einem Trailingstop versehen) und dann wieder neu starten. (in dem Fall handelt er halt immer von 7-17). Vielen Dank, ich lass euch auch dann wissen was bei meiner Maschine rauskommt :-). |
|
||||
Hi,
Code:
if(isTradeTime("07:00","17:00") == false) { // ab hier OrderClose()-/TP-Routine return(0); } // ab hier normale Handelsroutine, da wir innerhalb des Zeitfensters sind /** * Checks if we are in the given timeframe * e.g. string timebegin = "08:00" * return(true) if localtime = 8:00 */ bool isTradeTime(string begin, string end) { if(begin == "" || end == "") return(false); // TODO testen ob int reicht datetime time0 = StrToTime(begin); datetime time1 = StrToTime(end); if(time1 > time0) return(false); // saturday if(TimeDayOfWeek(TimeLocal()) == 6) return(false); // sunday 23:00 begin if(TimeDayOfWeek(TimeLocal()) == 0 && TimeLocal() < StrToTime("23:00")) return(false); if(TimeLocal() >= time0 && TimeLocal() <= time1) return(true); return(false); } Gruss sandmann
__________________
es muss nicht immer Forex sein: Handelssysteme auf Eurex Daten MyFxBook - Performance - T4Y |
|
||||
isTradeTime ist eine Funktion, die muss ausserhalb von start() stehen
wenn man viele Funktionen hat, dann lagert man die in eine mqh aus und included diese. Code:
if(isTradeTime("07:00","17:00") == false) { // ab hier OrderClose()-/TP-Routine return(0); } // ab hier normale Handelsroutine, da wir innerhalb des Zeitfensters sind
__________________
es muss nicht immer Forex sein: Handelssysteme auf Eurex Daten MyFxBook - Performance - T4Y |
|
|||
Hallo Sandmann,
vorerst mal vielen Dank für Deine Bemühungen. Ich pfusch hier etwas herum komme aber auf kein vernünftiges Resultat. Ich versuche einen Martingale Ansatz, ABER mit gewissen Verfeinerungen (zB mit SL, Mindestabstand wo der EA erst dazunehmen darf, Filter etc). Die weitere Idee war das Ding einfach einmal am Tag abschalten und wieder neu starten, bei einer hohen Trefferwahrscheinlichkeit sollten die Verluste die beim Schliessen zu einer vordefninierten Zeit enstehen durch die Trades am Tag kompensiert werden. Den Vorteil sehe ich darin, das das Risiko das Konto zu plätten doch deutlich sinken sollte. Hätte einen Deal für Dich, würdest Du mir das Feature einbauen? Falls dann was rauskommt kannst den EA gerne verwenden :-). Deal or no Deal gg ? FX4me |
|
||||
Hallo,
ich halte nichts davon, im Verlust nachzukaufen bzw weil man verloren hat seine Positionsgrösse zu erhöhen/verdoppeln. Nachkaufen im Gewinn bei neuem Signal ist IMHO sinnvoller. Eine Ausnahme ist es, wenn man sein System kennt und das Verhalten des Marktes, dann kann man durchaus nach X Verlusten mal die Positionsgrösse erhöhen. Ansonsten lasse ich meine Systeme eher bewerten, wie stark das Signal ist, und dann dürften die in Grenzen ihre Positionsgrösse anpassen. Ausserdem kenne ich mich, wenn du mir deinen Code schickst, dann werde ich nicht nur das Feature einbauen. Dann wird der komplette EA sicher gemacht. (die wenigsten haben ein sicheres OrderManagement in ihrem Code. Ist nur eine Frage der Zeit, bis die Situation eintritt, das der EA sich verselbständigt und ungewollt 50 Orders eröffnet.) Ich kann halt nichts aus der Hand geben, das ich nicht selber auch nutzen würde. Also wohl no deal, ausser du willst es mir als Auftragsarbeit geben. Dein timeframe Problem sollte mit den Codesnipplets von mir lösbar sein. Gruss sandmann
__________________
es muss nicht immer Forex sein: Handelssysteme auf Eurex Daten MyFxBook - Performance - T4Y |
Lesezeichen |
Stichworte |
ea beenden, mql4, orders schliessen und neu starten, programmierung, programmierung metatrader |
|
|