Einzelnen Beitrag anzeigen
  #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