Übergang von Positionen nach 0:00, wenn die Bank in Betrieb ist. Wie kann man sie identifizieren? Ich brauche Hilfe aus dem Saal. - Seite 7

 
Oldman_Evgeny:

Nun, niemand hat mich irgendwo angestupst.

Ich musste sie selbst erfinden.

Also.

Um 23:50 Uhr, wenn mein Expert Advisor nach Open oder Close arbeitet, schalte ich auf die Verarbeitung jedes Ticks um.

Wenn der Experte nach Zecken arbeitet, muss ich nirgendwo hingehen).

Beim ersten Tick nach 23:50 Uhr schließe ich die Position zwangsweise.

(Ich habe versucht, nicht um 23:50 zu schließen, sondern später, aber lief in eine Situation, wenn ich das Schließen für 23:56 gesetzt, und von 23:56 bis 00:00 hat nicht einen einzigen Tick kommen.

Der Überschlag setzte ein und alles ging in die Hose...! (Vorsichtshalber nahm ich 23:50 mit Reserve - in 10 Minuten würde sicher mindestens eine Zecke kommen!)

Ich erinnere mich an alle Parameter einer Position - war es eine Kauf- oder Verkaufsposition, Stoploss, Takeprofit, etc.....

Bis 00:00:00 verbiete ich die Eröffnung von Positionen.

Nach 00:00 Uhr eröffne ich beim ersten vorbeiziehenden Tick zwangsweise eine Position in derselben Richtung wie zuvor, mit allen Attributen einer um 23:00 Uhr geschlossenen Position.

So umgehe ich den Rollover.

In der Regel verliere ich mehr als beim Rollover, aber zumindest habe ich eine normale Positionsfortsetzung.

Mir fällt kein anderer ein....

Das einzige Problem am Freitag ist, dass der Markt am Montag um 01:00 Uhr öffnet.

Ich habe mich jedoch entschieden, die Position am Montagabend nicht zu eröffnen, da oft verschiedene "Katastrophen" auftreten - Gaps, Umkehrungen und andere Dinge.

Ich schließe meine Position einfach am Freitag und das ist alles. Das mache ich auch im Urlaub.


PS. Ich denke, dass die fehlende Übertragung von Positionsdaten beim Rollover eine Täuschung ist. Ich werde mich über die AFD darum kümmern. Wenn überhaupt, dann können wir uns bei der Zentralbank beschweren.

Mit den dortigen Devisenhändlern haben sie nicht viel Mitleid.

Wird beim Rollover nicht die Positions-ID (nicht das Ticket) gespeichert?
 
Nur die Richtung und die Losgröße werden gespeichert. Es gibt nichts anderes.
 
Oldman_Evgeny:
Nur die Richtung und die Losgröße werden gespeichert. Sonst nichts.
PositionGetInteger(POSITION_IDENTIFIER)

was gibt sie zurück?

 

PositionGetInteger(POSITION_IDENTIFIER) gibt, wie es sich gehört, die Ticketnummer zurück.

Die neue Nummer des Tickets, die das Ergebnis des Rollover ist, nicht die Position, die vor dem Rollover war....

Aber nach dem Rollover, an der neuen Position, stellt sich heraus, dass m_position.Magic()=0 ist. Dementsprechend funktioniert nichts im Expert Advisor....

Wahrscheinlich kann man Magic per Modifikation irgendwie in die neue Position pferchen und dort alles andere von der alten Position einpferchen.

Aber ich habe getan, was ich oben geschrieben habe. Aber ich werde noch etwas darüber nachdenken.

Es ist ärgerlich, dass PSB auf diese Weise mit ihrer Plattform schummelt.

Und soweit ich weiß, sind sie nicht die einzigen...

Überrascht über das Schweigen der Händler! Handelt jeder nur intraday oder mit Pips?

Nun, gehen Sie nicht in irgendeiner Küche wie Alparey handeln, wenn es lizenzierte russische Makler gibt....
 

Versucht, ein Konstrukt in OnTick einzufügen

if(m_position.Magic() == 0) m_trade.SetExpertMagicNumber( EA_Magic );

Das Konstrukt funktioniert nicht.

Es sieht so aus, als gäbe es keine Möglichkeit, Magic in einer offenen Position zu ändern....

Das, was ich oben beschrieben habe, scheint also die einzige Möglichkeit zu sein.

 
Oldman_Evgeny:

Versucht, ein Konstrukt in OnTick einzufügen

if(m_position.Magic() == 0) m_trade.SetExpertMagicNumber( EA_Magic );

Das Konstrukt funktioniert nicht.

Es sieht so aus, als gäbe es keine Möglichkeit, Magic in einer offenen Position zu ändern....

Das, was ich oben beschrieben habe, scheint also die einzige Möglichkeit zu sein.

Was tragen Sie alle mit dem Magier herum? Verpacken Sie jede Position in eine Klasse, und suchen Sie beim Ticken nicht nach ihr, sondern behalten Sie sie einfach im Auge. Wenn sie plötzlich geschlossen wurde, analysieren Sie den Grund für die Schließung. Wenn der Grund ein Rollover ist, dann suchen Sie nach einem neuen und ändern Sie die Klassenfelder in die aktuellen. Um den Neustart nach Fehlern zu organisieren, schreiben wir alle notwendigen Informationen in eine separate Datei (ich mag keine globalen Variablen im Terminal).
 
Vladimir Simakov:
Um einen Neustart nach Fehlern zu organisieren, schreiben wir alle notwendigen Informationen in eine separate Datei (nun, ich mag keine globalen Variablen im Terminal).

Und wenn der Expert Advisor auf verschiedenen Rechnern ausgeführt wird, müssen wir die Datei dann mitnehmen?

 
Ihor Herasko:

Und wenn der Expert Advisor auf verschiedenen Rechnern ausgeführt wird, müssen Sie die Datei dann mit sich führen?

Ftp, Cloud sind Optionen.
Wenn nur Daten zwischen den Robotern ausgetauscht werden sollen, dann sind pipe und ws.
 
Vladimir Simakov:
Ftp, Cloud - als Option.
Wenn nur Daten zwischen den Robotern ausgetauscht werden müssen, sind Pipe und Ws zu verwenden.

Warum sollte man sich all diese Mühe machen, wenn man Magic hat? In den meisten Fällen ist das gut genug. Zumindest habe ich es geschafft, es zu benutzen:

  1. Zeitpunkt des Auftretens des Signals, bei dem der Auftrag/die Position eröffnet wird
  2. Der Index des Rasters (wenn eine Strategie ein Raster ist), zu dem der Auftrag gehört
  3. Der Index des Auftrags im Raster
  4. Die Expert Advisor ID selbst
All dies hat natürlich gewisse Grenzen. Die Einschränkungen sind jedoch durchaus sinnvoll. Über sie hinauszugehen ist ein seltenes Ereignis.

 
Ihor Herasko:

Warum sollte man sich all diese Mühe machen, wenn man Magic hat? In den meisten Fällen ist das gut genug für das Auge. Wenigstens konnte ich es benutzen:

  1. Zeitpunkt des Auftretens des Signals, bei dem der Auftrag/die Position eröffnet wird
  2. Der Index des Rasters (wenn eine Strategie ein Raster ist), zu dem der Auftrag gehört
  3. Der Index des Auftrags im Raster
  4. Die Expert Advisor ID selbst
All dies hat natürlich gewisse Grenzen. Die Einschränkungen sind jedoch durchaus sinnvoll. Eine Überschreitung dieser Werte ist selten.

Sie haben also selbst geantwortet - mit Einschränkungen, und das ist genau das, worum es in diesem Thread geht. Vorteile des Wraps:

  1. Der Zeitpunkt des Auftretens des Signals ist derselbe.
  2. Der Gitterindex ist derselbe.
  3. Index einer Bestellung im Raster - es handelt sich also wieder um einen expliziten Index.
  4. Expert Advisor Kennung - na ja, Sie haben es erfasst.

Der Clou dabei ist, dass bei der Prüfung der Zustand der Marktpositionen überprüft wird und die Felder der Klasse korrigiert werden. Gleichzeitig gehen wir nicht durch die Positionen; der Trade Function Handler ist eine Methode der Klasse. Niemand verbietet die Verwendung von Magie für die Wiederherstellung von Fehlern - wir können einfach die gesamte Geschichte in eine Binärdatei packen, wir müssen nur ein Format entwickeln.

Was die Arbeit von Robotern mit geteilten Aufträgen an verschiedenen Arbeitsplätzen angeht - was soll das bringen? Abgesehen von den Synchronisationsproblemen fällt mir nichts anderes ein. Stellen Sie sich vor: Ein Roboter gibt auf einem Arbeitsplatz den Befehl, eine Position zu schließen, während er auf dem anderen Arbeitsplatz eine Handelsentscheidung trifft, die auf der Tatsache basiert, dass diese spezifische Position geöffnet ist - wie können wir das synchronisieren?