Indikator startet neu wenn Interentverbindung kurzzeitig unterbrochen

 

Hallo,

ich habe ein Problem mit meinem EA wenn die Internetverbindung unterbrochen wird bzw. die Verbindung wieder aufgebaut wird:

Ausgangssituation:

Im EA ist ein Indikator implementiert. Das entscheidende dabei ist, dass die Indikatorwerte mit dem aktuellen Kontostand berechnet und dann geplottet werden.

Problem:

Wenn nach einem Verlust der Internetverbindung  wieder verbunden wird werden nicht einfach die neuen Indikatorwerte weiterberechnet, sondern es werden alle Indikatorwerte seit Start des EAs (in der Vergangenheit) neu berechnet. Diese sind natürlich dann falsch bzw. anders, weil der Kontostand mit einfließt und dieser sich geändert hat.


Frage:

Wass passiert genau mit dem EA und dem Indikator bei einer Neuverbindung? Was wird da zurückgesetzt?

Wie kann ich verhindern, dass die Indikator-Werte alle neu berechnet werden?

 

Also ich würde da nicht darauf vertrauen, dass ein aktuelles Verhalten sich nicht ändert nach einem update - irgedwannn!

Ich würde es so programmieren, dass das immer zu richtigen Werten führt.

Beispiel ist dass die aller meisten EA nach start() oder OnTick() jedes Mal neu zB. abfragen und 'nachschauen' ob es eine offene Position gibt - sicher ist sicher!

 
mtsTrader:

Hallo,

ich habe ein Problem mit meinem EA wenn die Internetverbindung unterbrochen wird bzw. die Verbindung wieder aufgebaut wird:

Ausgangssituation:

Im EA ist ein Indikator implementiert. Das entscheidende dabei ist, dass die Indikatorwerte mit dem aktuellen Kontostand berechnet und dann geplottet werden.

Problem:

Wenn nach einem Verlust der Internetverbindung  wieder verbunden wird werden nicht einfach die neuen Indikatorwerte weiterberechnet, sondern es werden alle Indikatorwerte seit Start des EAs (in der Vergangenheit) neu berechnet. Diese sind natürlich dann falsch bzw. anders, weil der Kontostand mit einfließt und dieser sich geändert hat.


Frage:

Wass passiert genau mit dem EA und dem Indikator bei einer Neuverbindung? Was wird da zurückgesetzt?

Wie kann ich verhindern, dass die Indikator-Werte alle neu berechnet werden?

 

Konto aus der Berechnung raus nehmen. So hast du doch immer "Andere" Werte im Indikator. 

Welchen Sinn hat es denn den Kontostand mit in den Indikator zu nehmen ?

Gruß 

 
Du kannst Daten mit globalvariablen speichern und darauf wieder zurückrufen bei einem Neustart. Ich mache das so bei Tradeverwaltungen.
 
Jeder Indikator wird auch bei einem Wechsel der Periode (zB M5->M15) neu aufgebaut.

Da wird diese Indi ja wohl auch scheitern.

Globalvariable sind dafür nicht geeignet, es handelt sich um etwa 30.000 Daten (siehe rates_total in OnCalculate())

Wenn der Kontostand wirklich wichtig ist hilft nur speichern der Werte in einer Datei, am besten binär,
das ist schneller und die Datei wird wesentlich kleiner, allerdings nicht direkt als Text lesbar.

Grüße Otto

 
Schade das es oft eine einseitige Diskussion ist. Fragesteller ignoriert die Antworten einfach ...naja ...Kopf hoch ...:-)
 

Sorry, war lange Zeit nicht mehr anwesend. Ich versuche das Thema mal wieder aufzugreifen.

Mein Problem rührt daher, dass ich einen Indikator umgebaut habe und in diesem Indikator der StopLoss eingebunden ist. Und dieser berechnet sich aus dem Kontostand. Ich bin gerade dabei den EA umzubauen und nehme die Berechnung des SL aus dem Indikator herraus.

Jetzt nochmal konkret zu dem was ich vorhabe. Ich berechne mir zu jedem Bar einen StopLoss (SL). Dieser SL soll im Chart angezeigt werden. Wenn die Internetverbindung abbricht und wieder neu verbindet sollen alle SL noch angezeigt werden (oder wieder neu eingelesen werden) und die Berechnung der SL-Werte für die Bars, die offline entstanden sind, soll nachgeholt werden.

Ist dafür eine Auslagerung der SL-Werte in ein externe Datei notwendig oder geht das auch einfacher? Wenn das nicht ohne Auslagerung geht, denke ich, ist die Lösung von Otto am sinnvollsten. Wie kann ich denn die SL-Werte einem Bar zuordnen und diese dann in einer Datei wegspeichern und wieder einlesen?

Grund der Beschwerde: