Nur nach M1 OHLC - Openkurs traden lassen - Seite 2

Einloggen oder registrieren, um einen Kommentar zu schreiben
Otto Pauser
1823
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
126
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
8648
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
1823
Otto Pauser  

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

Carl Schreiber
Moderator
8648
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
126
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
1823
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.

Christian
2835
Christian  
Tobse24:

Hallo zusammen,


ich habe mein System im Tester mit mit dem "1 Minute OHLC"-Chart entwickelt, getestet und optimiert, da der über längere Zeiträume von >1Jahr deutlich schneller durchläuft. Leider verhält sich das System in echt bzw. auf Tick-Ebene dann ganz und gar nicht so wie in den Tests.

Ich habe deshalb hinter die OnTick() folgende Bedigung geschaltet:


mit


Das heisst, der EA soll auch im Echtbetrieb nur einmal pro Minute bzw. bei einem neu eröffneten Minutenbar durchlaufen werden und dann Handelsentscheidungen treffen, so wie in den Tests, wo er mangels Daten ja nicht anderes machen konnte.

Das tut er jetzt auch, nur weichen die Testergebnisse auf echter Tickbasis mit dieser Funktion jetzt immer noch von den Testergebnissen auf M1-Basis ohne diese Funktion  ab.


Hat damit jemand Erfahrung? Woran könnte das liegen?

Frage:   Wie werden die Positionen eröffnet und geschlossen ?

            Eröffnung Market zum 1M CLOSE ?

            Schließen per TP/SL oder Market zum 1M CLOSE ?

Zeig doch mal ein Beispiel.

Gruß

12
Einloggen oder registrieren, um einen Kommentar zu schreiben