Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36926
Benutzer: 6.074
Aktive Benutzer: 494
Links: 80
Wir begrüßen unseren neuesten Benutzer: hmf44
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 12 Stunden
- hmf44
vor 15 Stunden
- Crossa
vor 17 Stunden
- snatshit
vor einem Tag
- Roerich
vor einem Tag
- John_Liver...

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 83
Gesamt: 83
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Werbung

Like Tree1Likes
  • 1 Post By sandmann23
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 26.02.12
Neues Mitglied
 
Registriert seit: Feb 2012
Beiträge: 5
FX4me befindet sich auf einem aufstrebenden Ast
Standard 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 :-).
  #2 (permalink)  
Alt 26.02.12
Benutzerbild von sandmann23
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 67
sandmann23 befindet sich auf einem aufstrebenden Ast
sandmann23 eine Nachricht über Skype™ schicken
Standard

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);
	}
ungetestet und an eigene Bedürfnisse bitte anpassen.

Gruss
sandmann
hugo likes this.
__________________
es muss nicht immer Forex sein:
Handelssysteme auf Eurex Daten
MyFxBook - Performance - T4Y
facebook
  #3 (permalink)  
Alt 26.02.12
Benutzerbild von hugo
Elite Mitglied
 
Registriert seit: May 2011
Beiträge: 982
hugo befindet sich auf einem aufstrebenden Ast
hugo eine Nachricht über Skype™ schicken
Standard

Kann man das im Quelltext einfügen, wo man möchte, Sandmann?
  #4 (permalink)  
Alt 26.02.12
Benutzerbild von sandmann23
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 67
sandmann23 befindet sich auf einem aufstrebenden Ast
sandmann23 eine Nachricht über Skype™ schicken
Standard

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
muss ganz am Anfang der start() stehen, da durch das return(0) die start() vorzeitig beendet wird.
__________________
es muss nicht immer Forex sein:
Handelssysteme auf Eurex Daten
MyFxBook - Performance - T4Y
facebook
  #5 (permalink)  
Alt 26.02.12
Neues Mitglied
 
Registriert seit: Feb 2012
Beiträge: 5
FX4me befindet sich auf einem aufstrebenden Ast
Talking

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
  #6 (permalink)  
Alt 26.02.12
Benutzerbild von sandmann23
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 67
sandmann23 befindet sich auf einem aufstrebenden Ast
sandmann23 eine Nachricht über Skype™ schicken
Standard

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
facebook
Thema geschlossen

Lesezeichen

Stichworte
ea beenden, mql4, orders schliessen und neu starten, programmierung, programmierung metatrader


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------