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.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43259
Benutzer: 7.222
Aktive Benutzer: 75
Links: 84
Wir begrüßen unseren neuesten Benutzer: AlbertZiz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Woche
- AlbertZiz
vor einer Woche
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982
vor 2 Wochen
- Thomas75

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

Empfehlungen

Like Tree2Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 25.07.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard Funktion gesucht die Farbwechsel der Kerzen zurückgibt

Hallo,

ich will (mal wieder) zu Übungszwecken einen kleinen EA programmieren. Er soll diesmal diese Funktion haben:


Wenn kurz vor Ablauf einer Periode die Kerze eine andere Farbe hat als die Vorgängerkerze, öffne einen Trade.


Oder, anders ausgedrückt:


Öffne immer einen Trade, wenn es einen Farbwechsel gibt. (Oder es kurz vor Ablauf der Periode so aussieht, als würde es gleich einen Farbwechsel geben.)



Dazu brauche ich eine Funktion, die einen Farbwechsel erkennt.


Die Idee des EA in Pseudocode ausgedrückt:

Code:
* globale Variable

int Periode = 15 Minuten
char Farbe_vorige_Kerze
char Farbe_aktuelle_Kerze

* Funktion

if (Periode ist fast abgelaufen)
      {if (Farbe_vorige_Kerze != Farbe_aktuelle_Kerze)
           EröffneTrade()
      }

Was mir jetzt halt fehlt, ist die Funktion die die Farbe einer Kerze abfragt. Hier würde ich mich über einen Tipp freuen.

Besten Dank und Grüße,
LQK
  #2 (permalink)  
Alt 25.07.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von LQK Beitrag anzeigen
Hallo,

Öffne immer einen Trade, wenn es einen Farbwechsel gibt. (Oder es kurz vor Ablauf der Periode so aussieht, als würde es gleich einen Farbwechsel geben.)
Die Angaben sind ein "bißchen" zu ungenau - was ist kurz vor Ablauf?

2 Variablen:
Code:
// Kerzenrichtung: 1=long=grün, -1=short=rot
int PrevDir=CurDir=0; 

// ob ein gleicher Wert als grün oder rot gilt, mußt Du noch entscheiden
// wenn openVorigeKerze<=closeVorigeKerze PrevDir=1
// sonst PrevDir=-1
// dasselbe später für jetzigeKerze
Vor Ablauf könntest Du als Prozent der Kerzenzeit angeben
Code:
int Perc90=(int)MathRound(PeriodSeconds()*0.9); //90% Kerzenzeit
// und dann wenn die 90% der Zeit rum sind
// iTime(NULL,0,0)+Perc90 die aktuelle Kerzenrichtung abfragen
// auswerten und evtl. ordern
wären meine Schritte. AVT
  #3 (permalink)  
Alt 25.07.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Da wären wir doch irgendwie bei Bar0. Das gibt doch Repainting.

Um welchen Indikator gehts?
  #4 (permalink)  
Alt 25.07.20
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 240
RetepM befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von LQK Beitrag anzeigen

Dazu brauche ich eine Funktion, die einen Farbwechsel erkennt.

LQK
Siehe (unter anderem) hier:

https://en.wikipedia.org/wiki/Candlestick_pattern

Im ersten Absatz findest Du:
Candlesticks are graphical representations of price movements for a given period of time. They are commonly formed by the opening, high, low, and closing prices of a financial instrument.[3]
If the opening price is above the closing price then a filled (normally red or black) candlestick is drawn.
If the closing price is above the opening price, then normally a green or a hollow candlestick (white with black outline) is shown.

Schon weisst Du, wie es geht, aber wie schon geschrieben, bevor du mit dem Programmieren beginnst, macht es sicher Sinn, die Grundlagen des Tradings zu lernen!!!

Grüße
  #5 (permalink)  
Alt 25.07.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Da wären wir doch irgendwie bei Bar0. Das gibt doch Repainting.
Repainting bedeutet, daß Indikator-Werte für ältere, also schon beendete Bars im Nachhinein dauernd wieder verändert (also geschönt) werden; das heißt, wenn Du Dir in der Vergangenheit den Kurs ansiehst und wie "angeblich toll" der Indikator immer den richtigen Zeitpunkt zum Ein- und Ausstieg gezeigt hätte, dann kann man vermuten, das der Indikator seine Vergangenheitswerte maninpuliert hat. Der bekannteste Repainter ist wohl SolarWind.

Wir sind hier bei Bar0, aber alles was wir hier machen wollen, ist nur zu sehen, wann die Bar0 fast beendet wäre und wie dann (zu dem Zeitpunkt, wo sie fast zuende ist) die Kerzenfarbe ist. Das heißt nicht, das sich die Situation nicht doch noch ändern kann, es ist mehr oder weniger ein Spiel mit der Wahrscheinlichkeit: also wenn die vorige Bar schon grün war und kurz vor Ende die jetzige Bar auch noch grün ist, dann ist die Wahrscheinlichkeit, daß sie in den letzten Sekunden (oder was auch immer) plötzlich noch rot wird, relativ gering - so jedenfalls die Annahme, die Realität kann anders aussehen.

Zur Berechnung hab ich Dir ein Test-Skript angehängt, mit allen genauen Erklärungen drin, warum ich was wie mache. Ich hoffe, es hilft Dir zu verstehen, wieso ich auf diese Werte komme. AVT
Angehängte Dateien
Dateityp: mq4 xProzentBarZeitVorbei.mq4 (3,3 KB, 2x aufgerufen)
  #6 (permalink)  
Alt 25.07.20
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Da wären wir doch irgendwie bei Bar0. Das gibt doch Repainting.
Mir fehlen jetzt echt die Worte...……………………………
  #7 (permalink)  
Alt 25.07.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Indikator-Trading Beitrag anzeigen
Mir fehlen jetzt echt die Worte...……………………………
Jetzt erst?

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #8 (permalink)  
Alt 28.07.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Ich nehme mal, dass sein Rot-Grün Gerät mehrere Kerzen braucht, um berechnet zu werden. Wenn dabei auch Bar0 ist...
  #9 (permalink)  
Alt 28.07.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AVT Beitrag anzeigen
Die Angaben sind ein "bißchen" zu ungenau - was ist kurz vor Ablauf?
Darüber habe ich mir noch keine Gedanken gemacht. So klein wie möglich (dass die Wahrscheinlichkeit, dass sich die Farbe doch noch ändert, möglichst klein ist), aber groß genug, dass die Eröffnung eines Trades ggf. nicht an Serverauslastung, Verbindungsschwierigkeiten usw. scheitert.

Sagen wir mal 30 Sekunden vor Ende der Periode soll die Farbe geprüft werden und ggf. ein Trade eröffnet werden.


Zitat:

2 Variablen:
Code:
// Kerzenrichtung: 1=long=grün, -1=short=rot
int PrevDir=CurDir=0; 

// ob ein gleicher Wert als grün oder rot gilt, mußt Du noch entscheiden
// wenn openVorigeKerze<=closeVorigeKerze PrevDir=1
// sonst PrevDir=-1
// dasselbe später für jetzigeKerze
Gue Idee, einfach den Schlusskurz der beiden Kerzen zu vergleichen.

Aber mit welcher Funktion erhalte ich den Schlusskurs der früheren Kerze? Und was die aktuelle Kerze anbelangt: Da habe ich ja noch nicht den Schlusskurs, wäre als der aktuelle Kurs, z.B. 30 Sec. vor Ablauf der Periode, mit welcher Funktion komme ich an diesen Wert?


Zitat:
Vor Ablauf könntest Du als Prozent der Kerzenzeit angeben
Code:
int Perc90=(int)MathRound(PeriodSeconds()*0.9); //90% Kerzenzeit
// und dann wenn die 90% der Zeit rum sind
// iTime(NULL,0,0)+Perc90 die aktuelle Kerzenrichtung abfragen
// auswerten und evtl. ordern
wären meine Schritte. AVT
iTime gibt, wenn ich die Syntax Command Reference richtig verstehe, die "Restzeit" einer Asset-Klasse für eine vorzugebende Periodizität zurück?

Das mit Prozenten ist auch eine gute Idee, ich werde es aber vielleicht erstmal mit eine fixen Wert versuchen.


Okay, ich versuche mich noch mal mit einem kleinen Pseudocode (für die rot markierten Funktionen, weiß ich noch nicht, mit welchen Funktionen ich diese aus MQL umsetzen kann, hier wäre ich für einen Tipp dankbar).

Allerdings reicht es m.E. nicht aus, nur die beiden Schlusskurse (bzw. den Schlusskurs und den vermuteten Schlusskurs) miteinander zu vergleichen, da das kein hinreichendes Kriterium für einen Farbwechsel ist. Es müssen auch z.B. der Eröffnungskurs der früheren Kerze und der (vermutete) Schlusskurs der aktuellen KErze verglichen werde. Ich berücksichtige das somit so auch in meinem Pseudocode (weiß nicht, ob ich es in Deinem Code vielleicht übersehen habe?)

Code:
* Globale Konstante

int Frist = 30 s


* Variablendeklaration

int Schlusskurs_alte_Kerze;
int Kurs_aktuelle_Kerze;
int Eröffnungskurs_aktuelle_Kerze;
int Eröffnungskurs_alte_Kerze;



* Funktion

IF Frist = 30 THEN {
     IF (Schlusskurs_alte_Kerze() < Kurs_aktuelle_Kerze()} 
          AND (Eröffnungskurs_alte_Kerze() > Eröffnungskurs_aktuelle_Kerze())
    THEN BUY();


     IF (Schlusskurs_alte_Kerze() > Kurs_aktuelle_Kerze()} 
          AND (Eröffnungskurs_alte_Kerze() < Eröffnungskurs_aktuelle_Kerze())
    THEN SELL();

Besten Dank noch mal für jeden konstruktiven Hinweis und Grüße!
LQK
  #10 (permalink)  
Alt 28.07.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Da wären wir doch irgendwie bei Bar0. Das gibt doch Repainting.

Um welchen Indikator gehts?
Besten Dank für Deine Hinweise. Repaint & Co sagt mir in dem Fall noch nichts, ich muss das irgendwann mal nachlesen.
Thema geschlossen

Lesezeichen

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 +2. Es ist jetzt 19:26 Uhr.





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