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: 4499
Beiträge: 40861
Benutzer: 6.885
Aktive Benutzer: 242
Links: 80
Wir begrüßen unseren neuesten Benutzer: mann013
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 3 Stunden
- mann013
vor 23 Stunden
- schlafmuet...
vor 4 Tagen
- BodoM
vor 6 Tagen
- tisas
vor 6 Tagen
- slaw4ik

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 121
Gesamt: 123
Team: 0
Team:  
Benutzer:  Indikator-Trading, LQK
Freunde anzeigen

Empfehlungen

Like Tree1Likes
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor einer Woche
LQK LQK ist gerade online
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 65
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
Mit Zitat antworten
  #2 (permalink)  
Alt vor einer Woche
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 390
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
Mit Zitat antworten
  #3 (permalink)  
Alt vor einer Woche
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 969
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?
Mit Zitat antworten
  #4 (permalink)  
Alt vor einer Woche
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 199
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
Mit Zitat antworten
  #5 (permalink)  
Alt vor einer Woche
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 390
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)
Mit Zitat antworten
  #6 (permalink)  
Alt vor einer Woche
Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 58
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...……………………………
Mit Zitat antworten
  #7 (permalink)  
Alt vor einer Woche
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.386
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.
Mit Zitat antworten
  #8 (permalink)  
Alt vor 6 Tagen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 969
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...
Mit Zitat antworten
  #9 (permalink)  
Alt vor 6 Tagen
LQK LQK ist gerade online
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 65
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
Mit Zitat antworten
  #10 (permalink)  
Alt vor 6 Tagen
LQK LQK ist gerade online
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 65
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.
Mit Zitat antworten
Antwort

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 22:16 Uhr.





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