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: 36910
Benutzer: 6.076
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: Spitzmaus
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 2 Stunden
- Spitzmaus
vor 5 Stunden
- juleslesqu...
vor einem Tag
- hmf44
vor einem Tag
- Crossa
vor einem Tag
- snatshit

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 34
Gesamt: 36
Team: 0
Team:  
Benutzer:  Mogli, Stier
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 23.04.13
Mitglied
 
Registriert seit: Apr 2013
Beiträge: 45
Tycoon befindet sich auf einem aufstrebenden Ast
Standard Kleines MQL4 Problem!!

Hallo an alle!
Mein erster Beitrag startet gleich mit einer Frage an euch!?
Ich bin gerade dabei MQL4 zu lernen.Das Programieren klappt auch schon ganz gut.Bisher habe ich mich bei allen Fehlern die ich begangen habe selber durchgefuchst,aber jetzt komme ich nicht weiter.
Meine Frage: Ich habe ein Trade offen.Dieser wird unglücklich ausgestoppt.Nun besteht ja das Signal noch und sofort wird wieder ein trade eröffnet!Wenn ich crossover trade möchte ich ja auch nur das kreuzen traden und nicht schon die bestehende kreuzung vor langer Zeit!!!
Könnt ihr mir vielleicht ne Erklärung liefern???
Vielen Dank im voraus!
  #2 (permalink)  
Alt 23.04.13
Mitglied
 
Registriert seit: Apr 2011
Ort: Osnabrück
Beiträge: 103
Racki befindet sich auf einem aufstrebenden Ast
Standard

Helas, du kannst mit den Balken arbeiten, oder dir sonst irgendeinen Schalter einbauen um zu verhindern ältere Signale zu verarbeiten.
Je nachdem wie du deine Strategie umgesetzt hast, findet sich bestimmt ein entsprechendes Mittel. Die bereits erwähnten Bars, Hour(), DayOfYear() usw.
Zusätzlich einen temporären Schalter, der durch eine X-beliebige Methode umgeschaltet wird.

s.l.
Racki
  #3 (permalink)  
Alt 23.04.13
Mitglied
 
Registriert seit: Mar 2012
Ort: Wien
Beiträge: 191
Deepack befindet sich auf einem aufstrebenden Ast
Deepack eine Nachricht über Skype™ schicken
Standard

versuche auf die periode davor zu überprüfen ob dort das gegensignal läuft
dann hast du geben genau die kreuzung und der EA dürfte danach nicht sofort wieder einsteigen
es sei denn du hast den stop so eng gesetzt dass in der eröffnungsperiode schon ausgestoppt wirst dann ists klar dass noch eine position eröffnet wird
  #4 (permalink)  
Alt 24.04.13
Mitglied
 
Registriert seit: Apr 2013
Beiträge: 45
Tycoon befindet sich auf einem aufstrebenden Ast
Talking

Zitat:
Zitat von Deepack Beitrag anzeigen
versuche auf die periode davor zu überprüfen ob dort das gegensignal läuft
dann hast du geben genau die kreuzung und der EA dürfte danach nicht sofort wieder einsteigen
es sei denn du hast den stop so eng gesetzt dass in der eröffnungsperiode schon ausgestoppt wirst dann ists klar dass noch eine position eröffnet wird
Also wenn bsp. die 10er ema die 30er kreuzen soll, dass ich das so deklariere das min.
vorher iclose (..3) über der 10 er waren?
  #5 (permalink)  
Alt 24.04.13
Mitglied
 
Registriert seit: Apr 2013
Beiträge: 45
Tycoon befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Racki Beitrag anzeigen
Helas, du kannst mit den Balken arbeiten, oder dir sonst irgendeinen Schalter einbauen um zu verhindern ältere Signale zu verarbeiten.
Je nachdem wie du deine Strategie umgesetzt hast, findet sich bestimmt ein entsprechendes Mittel. Die bereits erwähnten Bars, Hour(), DayOfYear() usw.
Zusätzlich einen temporären Schalter, der durch eine X-beliebige Methode umgeschaltet wird.

s.l.
Racki
Mit der Timefunktion ist mir auch schon durch den Kopf gewandert.Habe gelesen
das die Hour () Funktion mir die Stundenanzahl erst ab Programmstart ausgibt??
0, 1, 2, 3, 4.....24 ??
if (Hour ()> 8) Dann müsste das Programm von mir um 0:00 UHR gestartet werden?
Habe ich das Richtig gelesen? Wäre ja auch blöd! !!
  #6 (permalink)  
Alt 24.04.13
Mitglied
 
Registriert seit: Mar 2012
Ort: Wien
Beiträge: 191
Deepack befindet sich auf einem aufstrebenden Ast
Deepack eine Nachricht über Skype™ schicken
Standard

hallo

ich habe dir kurz ein stück code geschrieben
hab ich zwar jetzt nicht getestet aber es sollte so die logik stimmen
und er sollte jetzt genau den schnittpunkt nehmen und eben dann die meldung ausgeben
bist du eine periode weiter wird nichts mehr ausgegeben
weil die bedingung nicht erfüllt ist

Code:
double MA10_1 = iMA(Symbol(),Period(), 10, 0, MODE_SMA,PRICE_CLOSE,1);
double MA10_2 = iMA(Symbol(),Period(), 10, 0, MODE_SMA,PRICE_CLOSE,2);

double MA30_1 = iMA(Symbol(),Period(), 30, 0, MODE_SMA,PRICE_CLOSE,1);
double MA30_2 = iMA(Symbol(),Period(), 30, 0, MODE_SMA,PRICE_CLOSE,2);

if(MA30_2 > MA10_2 && MA30_1 < MA10_1) Alert ("kauf");
hoffe du kannst damit was anfangen
  #7 (permalink)  
Alt 24.04.13
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Aber wenn nun, das Open und das Close auf einer Kerze passiert, wird auch in Deinem Codefall eine weitere Order geöffnet.

Man kann das Problem so lösen, indem man nur bei jedem Kerzenwechsel die Kreuzung der Indikatorwerte der letzten und vorletzten geschlossenen Kerze abfragt und bei entsprechender Signalgebung die Order einmalig! öffnet.

Code:
if (timeold != Time(0)) {
   timeold = Time(0);
   // Code zum Eruieren des Signals
   if (Kreuzung) {
      //OrderSend
   }
}
Man nimmt die beiden letzten geschlossenen Kerzen, um nur tatsächlich stattgefundene Kreuzungen zu traden.

Viel Erfolg!

traderdoc
  #8 (permalink)  
Alt 24.04.13
Mitglied
 
Registriert seit: Mar 2012
Ort: Wien
Beiträge: 191
Deepack befindet sich auf einem aufstrebenden Ast
Deepack eine Nachricht über Skype™ schicken
Standard

oh aja stimmt hab ich vergessen
danke fürs ergänzen
  #9 (permalink)  
Alt 24.04.13
Mitglied
 
Registriert seit: Apr 2013
Beiträge: 45
Tycoon befindet sich auf einem aufstrebenden Ast
Standard

Danke euch erstmal!!!
Die iTime()Funktion gibt mir die Zeit des jeweiligen Balken zurück??
Also iTime(NULL,0,1) wäre die Zeit des letzten Balkens???
  #10 (permalink)  
Alt 24.04.13
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

In meinem Code müßtest Du bei Time(0) statt den runden die eckigen Klammern benutzen. Dieser Ausdruck steht für die OpenTime der aktuellen Kerzen des jeweiligen Charts.
Die iTime()-Funktion wird genommen, wenn man im selben Währungspaar aber in einem anderen TimeFrame die Zeit Abfragen will, oder wenn man von einem anderen Währungspaar etwas über die Zeit wissen will.

traderdoc
Thema geschlossen

Lesezeichen

Stichworte
metatrader programmierung, mql4 lernen, 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 23:32 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.
-----------------------------------------------------------------------------------------------------------------------------