Nur nach M1 OHLC - Openkurs traden lassen - Seite 2

Einloggen oder registrieren, um einen Kommentar zu schreiben
Otto Pauser
1681
Otto Pauser  
Tobse24:
Aber das wäre dann ja wieder eine Simulation auf Tick-Basis, da er ja dann jeden Tick analysieren müsste um an das jeweils letzte High oder Low zukommen... oder etwa nicht?
Vermutlich kommt er intern über MqlRates(...) zu diesen Daten. Es wird ja bei jedem Timeframe nachgeladen bzw. aktualisiert.
Tobse24
125
Tobse24  
Otto Pauser:
Vermutlich kommt er intern über MqlRates(...) zu diesen Daten. Es wird ja bei jedem Timeframe nachgeladen bzw. aktualisiert.


dann bleibt aber immer noch die Frage:


"Du könntest OHLC der aktuellen, noch nicht fertigen Bar verwenden, dann "sieht" der EA auch die High/Low-Ticks, die er nicht bekopmmen oder die er ignoriert hat (um immer mit dem letzten Tick zu arbeiten)."


wie soll das gehen...was Carl da vorschlägt ist ja nicht anderes wie eine onOHLC()-Funktion; MQL5 hat aber nur die onTick()....oder etwa nicht?

Carl Schreiber
Moderator
8501
Carl Schreiber  
Tobse24:


dann bleibt aber immer noch die Frage:


"Du könntest OHLC der aktuellen, noch nicht fertigen Bar verwenden, dann "sieht" der EA auch die High/Low-Ticks, die er nicht bekopmmen oder die er ignoriert hat (um immer mit dem letzten Tick zu arbeiten)."


wie soll das gehen...was Carl da vorschlägt ist ja nicht anderes wie eine onOHLC()-Funktion; MQL5 hat aber nur die onTick()....oder etwa nicht?

Dafür gibt es CopyRates().

Otto Pauser
1681
Otto Pauser  

Mit CopyRates() erhälts du keinen realen Spread. Das ist wahrscheinlich ein gemittelter Wert der einzelnen Ticks.

Carl Schreiber
Moderator
8501
Carl Schreiber  
Otto Pauser:

Mit CopyRates() erhälts du keinen realen Spread. Das ist wahrscheinlich ein gemittelter Wert der einzelnen Ticks.

??

Ich denke nicht! OHLC waren jeweils einzelne Ticks, allerdings auch mit denen, die das eigene Terminal unterschlagen bzw. übergangen hat.

Tobse24
125
Tobse24  
Carl Schreiber:

Dafür gibt es CopyRates().


Ich sehe nicht wie mir ein Array mit haistorischen Daten helfen soll einen kompletten OHLC-Bar der noch gar nicht vollendet ist zu gewinnen...ich kann damit höchstens einen erstellen nachdem die Minute schon abgelaufen ist - mein Handelssystem wird dann aber trozdem zu dem Tick ein- oder aussteigen, der gerade aktuell ist, und nicht zu dem bereits vergangenen jeweiligen High oder Low des abgelaufenen Bar, welcher ideal gewesen wäre...


Darüber hinaus: Wie soll man das denn progarmmiertechnisch umsetzen bzw. wie soll das ausshen? Über die isNewBar-Funktion? die kann ja nur zu einem konkreten Zeitpunkt springen - und an dem gibt es nunmal kein High und kein Low sondern nur einen Kurs, z.b eben der Eröffnungskurs eines neuen Bars

Es müsste wie gesagt eine Funkton sein, die wie die onTick() arbeitet aber statt einzelnen Ticks eben minütlich und in die Zukunft projizieren vier Kurse gleichzeitig liefert (OHLC)

Aber wenn es dafür ein Beisielcode gibt, wo finde ich den?

Otto Pauser
1681
Otto Pauser  
Carl Schreiber:

??

Ich denke nicht! OHLC waren jeweils einzelne Ticks, allerdings auch mit denen, die das eigene Terminal unterschlagen bzw. übergangen hat.

Nachdem mich hier offensichtlich niemand versteht und auch niemand die Unterschiede wirklich kennt, ein simpler TestEA der die Unterschiede im Spread zeigt.

MqlRates rates[1];
long     spread;
string   comment;

void OnTick()
{
   CopyRates(_Symbol,_Period,0,1,rates);
   spread=SymbolInfoInteger(_Symbol,SYMBOL_SPREAD);
   comment=StringFormat("Spread of bar: %i \n Spread of tick: %i",rates[0].spread,spread);
   Comment(comment);
}

Lasst das im Tester im visuellen Mode sowohl im 1Min OHLC und im EveryTick... laufen und ihr werdet die Unterschiede sehen.

12
Einloggen oder registrieren, um einen Kommentar zu schreiben