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: 3364
Beiträge: 34415
Benutzer: 5.354
Aktive Benutzer: 612
Links: 79
Wir begrüßen unseren neuesten Benutzer: thaiquocbao
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 16 Minuten
- thaiquocba...
vor 23 Minuten
- patte
vor 7 Stunden
- boomo
vor 18 Stunden
- swiftusa
vor 21 Stunden
- Heres

Onlineuser
'Wer ist online' anzeigen Benutzer: 4
Gäste: 48
Gesamt: 52
Team: 0
Team:  
Benutzer:  MA-EA, patte, thaiquocbao, UForex
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 20.09.16
Neues Mitglied
 
Registriert seit: Sep 2016
Beiträge: 11
Trading111 befindet sich auf einem aufstrebenden Ast
Standard Problemchen (Kreuzung MAs)

Hallo,
eine kurze Frage zu meinem programmierten EA. Es geht um die Kreuzung von e MAs. Der EA funtioniert und läuft - allerdings wirft die Kontrolle auf dem Diagramm Fragen auf. Manchmal wird richtig buy/sell gesetzt und manchmal nicht (siehe Bild). #13 wird buy geordert, obwohl sell geordert werden müsste. Und bei #11 ist es auch fehlerhaft.
Ich habe erst angefangen mit mql - vielleicht kann mir ja einer helfen.

Die Abfrage ist eigentlich korrekt:
// Buy Signal
if(MA_lang < MA_kurz && MA_lang_Vorperiode >=MA_kurz_Vorperiode)

Dennoch muss er ja irgendwie bei der Abfrage auf falsche Werte zugreifen. Ich weiß auch nicht wie man die Parameter aktuell anzeigen lassen kann - also wie in matlab z.B. - da konnte ich es immer kontrollieren.
Da komme ich derzeit einfach nicht weiter.
Falls einer antwortet - danke schonmal

VG
Sven
Angehängte Grafiken
Dateityp: jpg 3.jpg (171,8 KB, 11x aufgerufen)
Angehängte Dateien
Dateityp: mq4 Test 1.mq4 (6,0 KB, 2x aufgerufen)
Mit Zitat antworten
  #2 (permalink)  
Alt 20.09.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 411
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Trading111 Beitrag anzeigen
// Buy Signal
if(MA_lang < MA_kurz && MA_lang_Vorperiode >=MA_kurz_Vorperiode)
Versteh ich gerade nicht. Widerspricht sich das nicht?
Mit Zitat antworten
  #3 (permalink)  
Alt 20.09.16
Neues Mitglied
 
Registriert seit: Sep 2016
Beiträge: 11
Trading111 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Versteh ich gerade nicht. Widerspricht sich das nicht?
also Danke auf jeden Fall für die Antwort.....
Kaufsignal wenn: zur aktuellen Periode der Wert des langsamen MAs (MA(30) hier) kleiner ist als der des schnellen MAs (MA(8) hier) - und zusätzlich in der Periode davor der Wert vom MA(30) aber größer war als der vom MA(8)......

also gerade der Wechsel stattgefunden hat und der schnelle jetzt über dem langsamen liegt.............also für mich erscheint das noch als richtig oder wo siehst du da das Problem?.....der erste Teil in der Bedingung ist die aktuelle Periode und danch kommt die Periode davor......



P.S.:ich bin für jeden Einwurf dazu dankbar
Mit Zitat antworten
  #4 (permalink)  
Alt 20.09.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Da widerspricht sich gar nichts.

Wenn ich es richtig gelesen habe, willst Du die Kreuzung auf der aktuellen! Kerze ausnutzen. Da rate ich immer ab, weil es häufig falsch-positive Signale gibt, denn während des Kerzenaufbaus kommt es häufig wieder zur Revidierung der Kreuzung und das evtl. mehrmals innerhalb der aktuellen Kerze.

Prinzipiell löst man die Erkennung der Kreuzung genau über die Betrachtung der Indikatorwerte zu zwei verschiedenen Perioden.

Demnach für Buy:
if (MA0_Lang < MA0_Kurz && MA1_Lang >= MA1_Kurz)

bzw. für Sell:
if (MA0_Lang > MA0_Kurz && MA1_Lang <= MA1_Kurz)

So, nun musst Du nur noch die entsprechenden MA-Werte, ermittelt aus der iMA() oben einsetzen und gut ist.
Will man die Kreuzung auf der letzten geschlossenen Kerze betrachten, dann bedeutet die 0 (aktuelle Kerze) dann die 1 (letzte geschlossene Kerze) und die 1 wird zur 2 (vorletzte geschlossene Kerze).

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #5 (permalink)  
Alt 20.09.16
Neues Mitglied
 
Registriert seit: Sep 2016
Beiträge: 11
Trading111 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Da widerspricht sich gar nichts.

Wenn ich es richtig gelesen habe, willst Du die Kreuzung auf der aktuellen! Kerze ausnutzen. Da rate ich immer ab, weil es häufig falsch-positive Signale gibt, denn während des Kerzenaufbaus kommt es häufig wieder zur Revidierung der Kreuzung und das evtl. mehrmals innerhalb der aktuellen Kerze.

Prinzipiell löst man die Erkennung der Kreuzung genau über die Betrachtung der Indikatorwerte zu zwei verschiedenen Perioden.

Demnach für Buy:
if (MA0_Lang < MA0_Kurz && MA1_Lang >= MA1_Kurz)

bzw. für Sell:
if (MA0_Lang > MA0_Kurz && MA1_Lang <= MA1_Kurz)

So, nun musst Du nur noch die entsprechenden MA-Werte, ermittelt aus der iMA() oben einsetzen und gut ist.
Will man die Kreuzung auf der letzten geschlossenen Kerze betrachten, dann bedeutet die 0 (aktuelle Kerze) dann die 1 (letzte geschlossene Kerze) und die 1 wird zur 2 (vorletzte geschlossene Kerze).

traderdoc

Danke für die ANtwort traderdoc. Im festsetzen der iMAs habe ich das aber glaube schon so beachtet wie du das meintest......

// Marktdaten ermitteln
double MA_lang = iMA(NULL,0,MA_lang,0,0,0,1);
double MA_lang_Vorperiode = iMA(NULL,0,MA_lang,0,1,0,2);
double MA_kurz = iMA(NULL,0,MA_kurz,0,0,0,1);
double MA_kurz_Vorperiode = iMA(NULL,0,MA_kurz,0,1,0,2);


1 für die vorherige und die 2 für die davor......ich glaube es muss an etwas anderem liegen...
Mit Zitat antworten
  #6 (permalink)  
Alt 20.09.16
Mitglied
 
Registriert seit: Mar 2016
Beiträge: 39
SusanneH befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Trading111 Beitrag anzeigen
Danke für die ANtwort traderdoc. Im festsetzen der iMAs habe ich das aber glaube schon so beachtet wie du das meintest......

// Marktdaten ermitteln
double MA_lang = iMA(NULL,0,MA_lang,0,0,0,1);
double MA_lang_Vorperiode = iMA(NULL,0,MA_lang,0,1,0,2);
double MA_kurz = iMA(NULL,0,MA_kurz,0,0,0,1);
double MA_kurz_Vorperiode = iMA(NULL,0,MA_kurz,0,1,0,2);


1 für die vorherige und die 2 für die davor......ich glaube es muss an etwas anderem liegen...
Ist das nur ein Codebeispiel oder ist das Echtcode aus deinem EA?
Denn du verwendest die Variable MA_lang / MA_kurz für 2 unterschiedliche Dinge.
double MA_lang = iMA(NULL,0,MA_lang,0,0,0,1);
Mit Zitat antworten
  #7 (permalink)  
Alt 20.09.16
Neues Mitglied
 
Registriert seit: Sep 2016
Beiträge: 11
Trading111 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von SusanneH Beitrag anzeigen
Ist das nur ein Codebeispiel oder ist das Echtcode aus deinem EA?
Denn du verwendest die Variable MA_lang / MA_kurz für 2 unterschiedliche Dinge.
double MA_lang = iMA(NULL,0,MA_lang,0,0,0,1);
Hallo Susanne,

ja das ist aus dem Echtcode - ich glaube dafür kamen Warnhinweise (in gelben Dreiecken) aber keine richtigen Fehlermeldungen. Meinen Sie das es so richtig ist?......aber jetzt kommt immer noch ein gelbes Dreieck: 'declaration of 'MA_lang' hides global declaration' .......

// Marktdaten ermitteln
double MA_lang = iMA(NULL,0,int (MA_lang),0,0,0,1);
double MA_lang_Vorperiode = iMA(NULL,0,int (MA_lang),0,0,0,2);
double MA_kurz = iMA(NULL,0,int (MA_kurz),0,0,0,1);
double MA_kurz_Vorperiode = iMA(NULL,0,int (MA_kurz),0,0,0,2);

also die Fehlermeldung erscheint jetzt für die hier 1. und 3. Zeile.....das meinst du bestimmt in irgendeiner Form oder?
Mit Zitat antworten
  #8 (permalink)  
Alt 20.09.16
Neues Mitglied
 
Registriert seit: Sep 2016
Beiträge: 11
Trading111 befindet sich auf einem aufstrebenden Ast
Standard

achso entsprechend meiner Vorlage muss ich glaube vorne MAlang und MAkurz schreiben (also ohne Unterstrich)

und nach dem Gleichzeichen in der Fkt. iMA steht es mit Unterstrich also....MA_lang und MA_kurz...........

ja das könnte auch das Problem sein.....ich probiere es mal aus....
Mit Zitat antworten
  #9 (permalink)  
Alt 20.09.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 411
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Er soll also erst öffnen, wenn der Schnelle den langsamen gerade erst überholt hat. Dann wird es aber oft passieren, dass er nen Trend
verschläft oder erst zu spät einsteigt. Lass diese Regel raus.

An den Unterstrichen wirds nicht liegen.
Mit Zitat antworten
  #10 (permalink)  
Alt 20.09.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Er soll also erst öffnen, wenn der Schnelle den langsamen gerade erst überholt hat. Dann wird es aber oft passieren, dass er nen Trend
verschläft oder erst zu spät einsteigt. Lass diese Regel raus.

An den Unterstrichen wirds nicht liegen.
Schneller als auf der aktuellen Kerze die Kreuzung zu ermitteln, geht nicht. Jedoch das Problem der Kreuzung auf der aktuellen Kerze habe ich weiter unten beschrieben.

Ganz einfach, der Code muß wie folgt lauten:

Code:
double MA_lang            = iMA(NULL,0,MA_Periode_lang,0,0,0,1);
double MA_lang_Vorperiode = iMA(NULL,0,MA_Periode_lang,0,0,0,2);
double MA_kurz            = iMA(NULL,0,MA_Periode_kurz,0,0,0,1);
double MA_kurz_Vorperiode = iMA(NULL,0,MA_Periode_kurz,0,0,0,2);
Und in Deiner Angabe MA(80) wäre dann die MA_Periode eben 80.
D.h. Du benötigst eine MA_Periode_kurz und eine MA_Periode_lang. Fertig!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
kreuzung, kreuzung ma, kreuzung moving average, moving average, mql4, 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 21:14 Uhr.



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