Entwickler! Testen Sie überhaupt, was Sie schaffen? - Seite 9

 
Mikalas:

C-4 Meiner Meinung nach ist es viel wichtiger, operative Informationen zu erhalten

interessanter als Geschichte. Wir müssen zwei Dinge über das Instrument wissen:

1. Haftbefehle.

2. Position

Es scheint mir, dass es viel wichtiger ist, die Trades zu analysieren, weil sie auf der niedrigsten Ebene sind und man die Aufträge und Positionen durch sie erkennen kann, aber das Gegenteil ist nicht der Fall. Aber das Gegenteil ist nicht der Fall.

In Ihrem Fall wird OnInit() einmal zu Beginn des Programms ausgeführt. Es sollte jedoch nur einen Block von Kontrollen geben. Er synchronisiert den Zustand des EA mit der aktuellen Situation. Dabei spielt es keine Rolle, woher die neuen Daten stammen: aus der Auftragshistorie zum Zeitpunkt der Initialisierung, aus der Historie zum Zeitpunkt der Ausführung oder aus dem Ereignis OnTradeTransaction. Das Ergebnis muss identisch sein, weil es auch nur einen Block gibt, der dafür verantwortlich ist.

 

Vasiliy - dies ist ein "primitives" Stück Code.

Es ist ganz einfach: Sie nehmen eine Bestellung auf und arbeiten dann mit....

my_order = temp_order;

Eine Zeile!

 
papaklass:

Ist das OnTradeTransaction-Ereignis in seiner jetzigen Form überhaupt erforderlich?

Es stellt sich heraus, dass das nicht der Fall ist, denn wir müssen immer noch Informationen aus der Geschichte nehmen.
 

Mikalas:

Ich habe gerade festgestellt, dass das Produkt getestet werden MUSS (ich teste es auf MEINE Kosten)!

Ich nehme an, dass das vom Thema abweicht.

Also, geben Sie mir das Magazin und den Code?

Ich bin in der Stimmung, hier zu helfen.

 
C-4:
Es stellt sich heraus, dass das nicht der Fall ist, denn wir müssen immer noch Informationen aus der Geschichte nehmen.

Oh, mein Gott! Ist sie in der Geschichte gültig?

papaklass meinte wahrscheinlich, dass OnTradeTransaction Fehler zurückgibt?

 

sergeev ->Ich bin in der Stimmung, hier zu helfen.

Tut mir leid, aber ich brauche keine Hilfe.

 
Mikalas:

sergeev ->Ich bin in der Stimmung, hier zu helfen.

Tut mir leid, aber ich brauche keine Hilfe.

Warum müssen Sie 9 Seiten lang sabbern?
 
Mikalas:

Vasiliy - dies ist ein "primitives" Stück Code.

Es ist ganz einfach: Sie nehmen eine Bestellung auf und arbeiten dann mit....

Eine Zeile!

Es ist keine Frage von einer oder hundert Zeilen. Es geht um die Herangehensweise. A.k. Hier ist der Code als Beispiel, um zu sehen, was ich meine. Es wird garantiert, dass neue Aufträge mit oder ohne TradeTransaction-Ereignis erfasst werden, unabhängig davon, ob es sich um eine Initialisierung oder einen neuen Auftrag handelt:

/*Какое бы событие не наступило, оно будет обработано OnRefresh()*/

OnInit()
{
    OnRefresh();
}

void OnTimer(void)
{
    OnRefresh();
}

void  OnTradeTransaction(
      const MqlTradeTransaction&    trans,
      const MqlTradeRequest&        request,
      const MqlTradeResult&         result
   )
{
     OnRefresh();
}

///
/// Следит за поступлением новых трейдов и ордеров.
///

void OnRefresh()
{
    HistorySelect(0, TimeCurrent());
    for(; ordersCountNow < HistoryOrdersTotal(); ordersCountNow++)
    {  
       printf(HistoryOrderGetTicket(dealsCountNow));
    }
}

///
/// Текущее количество ордеров.
///
int ordersCountNow;
 
papaklass:

Das ist es, wovon ich spreche.

Warum ist dieses OnTradeTransaction nicht in separate Ereignisse aufgeteilt?

- OnOrderCreate //eine Bestellung ausgeben;

- OnOrderModify // Änderung eines aktiven Auftrags;

- OnOrderDelete //Löschen der Bestellung;

- OnPositionOpen //Position öffnen;

- OnPositionModify //Einbau/Änderung von Anschlägen/Änderung des Positionsvolumens;

- OnPositionClosed // Schließung einer Position mit Hilfe einer Stop-Loss- oder Market-Order;

und so weiter.

Bei diesem Ansatz wird der Händler die Ereignisse, die ihn interessieren, abonnieren und bearbeiten.

Ich bekomme alle Veranstaltungen, die mich interessieren, da gibt es eine Aufteilung!
 

C-4, wird natürlich verarbeitet, aber warum wird OnRefresh() benötigt?

Alles wird in OnTradeTransaction() geteilt. An Informationen mangelt es mir nicht.