Der große und schreckliche MT4 für immer (oder wie man einen Übergang strategisch plant) - Seite 30

 
in mt4 kann ich nicht komprimieren das Diagramm vertikal Ebenen der Fibonacci nicht sehen, der Graph ist begrenzt auf 8000 pips))), wie es zu lösen?
 

Das ist eine seltsame Sache, die man bei Forts macht. Dies ist der wichtigste Teil des Positionsabschlusses.

  if(Trade.PositionClose(mSymbol))
  {
     // --- Введем задержку пока не получим номер сделки, но не более 2-х секунд
    int cnt = 0;
    ulong deal = 0;
    while(((deal = Trade.ResultDeal()) == 0) && cnt < 20) {Sleep(100); ++cnt;}
    
    if(deal == 0)
    {
      ulong ttOrder = Trade.ResultOrder();
      if(HistoryOrderSelect(ttOrder))
      {
        ENUM_ORDER_STATE state = ENUM_ORDER_STATE(HistoryOrderGetInteger(ttOrder, ORDER_STATE));
        LOG("После закрытия позиции № сделки=0, Order=" + string(ttOrder) + " state=" + EnumToString(state));
      }
      return false;
    }
  }

Hier ist ein Auszug aus dem Log des Expert Advisors, d.h. er ist nach 20 Iterationen der ResultDeal()-Prüfung an den Abschnitt gelangt, an dem das Deal-Ticket Null ist:


JL    0    10:08:04.462    e-MultiPattern-0.15 (RTS-9.21,M5)    cStoploss::sortSL12 Дистанция контртренд=0 BID=172690.0, закроем Short
JM   0    10:08:06.695    e-MultiPattern-0.15 (RTS-9.21,M5)     ** 333-cMyTrade::ClosePosition. После закрытия позиции № сделки=0, Order=16868286 state=ORDER_STATE_FILLED

Hier ist ein Auszug aus dem Terminalprotokoll:

IG 0 10:08:04.465 Trades '733618': exchange buy 2 RTS-9.21 at market
KN 0 10:08:04.480 Trades '733618': accepted exchange buy 2 RTS-9.21 at market
OQ 0 10:08:04.481 Trades '733618': exchange buy 2 RTS-9.21 at market placed for execution

FG 0 10:08:04.517 Trades '733618': Order #16868286 buy 2 / 2 RTS-9.21 at market done in 52.326 ms
JN 0 10:08:04.517 Trades '733618': deal #3413752 buy 2 RTS-9.21 at 172780 done (based on order #16868286)

Wer kennt sich mit SB und MT5-Handelslogik gut aus? Im Protokoll des Terminals sind die Auftragserteilung und die Erstellung des Geschäfts in einem Moment - 04,517 Sekunden - erfolgt.

Aber der EA in der while-Schleife hat nie ein Handelsticket gesehen und wurde nach 20 Iterationen bei 06,695 Sekunden beendet. Warum hat die Struktur ein Auftragsticket, aber kein Geschäftsticket?

Wie wird garantiert, dass Sie einen Tauschschein erhalten, insbesondere wenn Sie einen Teilabschluss verwenden?

 
Vasiliy Pushkaryov Sie einen Transaktionsschein erhalten, insbesondere wenn Sie einen Teilabschluss verwenden?

Es ist nicht leicht zu erklären, da es viele Fallstricke gibt. Erarbeitung einer Lösung, die es den Benutzern ermöglicht, ohne Probleme zu arbeiten. Das Parsen der internen Implementierung ist jedoch nur etwas für Kenner.

 
Machen Sie einen richtigen Tester für mt4 und in ein paar Jahren wird mt5 vergessen sein
 
Dmitry Fedoseev #:

Und mal ganz im Ernst...?

Der "Humor"-Thread hier

Die Kompatibilität von unten nach oben ist eine der Grundvoraussetzungen für Software. Der Code einer Vorgängerversion muss von der Nachfolgerversion adäquat wahrgenommen werden. Andernfalls verwirft der Entwickler einfach die bisherige Entwicklung und führt eine neue ein. Der Weg ins Nirgendwo.

Ich stimme absolut zu, dass es (vor allem für Entwickler) notwendig ist, MQL4-Code in MQL5-Code zu kompilieren.

 
Vladimir Baskakov #:
Machen Sie einen richtigen Tester für mt4 und in ein paar Jahren wird mt5 von allen vergessen sein

Baskakov, und die Tochter benutzt MT5, das berüchtigte...

 
Ich habe ihr vor sechs Monaten einen Indikator versprochen, den sie nie erhalten hat.
 
fxsaber #:

Wenn ResultDeal gleich Null ist, wird es auch nach einer Million Iterationen in der Schleife noch Null sein, da es sich um einen unveränderlichen Parameter handelt.

Denn der erteilte Marktauftrag ist das Ergebnis von OrderSend.

Das ist nicht ganz klar. In der Hilfe zur MqlTradeResult-Struktur heißt es

Wenn der Abschluss ein Orderticket zurückgegeben hat, aber kein Orderticket vorhanden ist, handelt es sich dann um die Vorgangsart TRADE_ACTION_PENDING?

Oder TRADE_ACTION_DEAL und das Trade Ticket ist möglicherweise "spät" und nicht in der Struktur enthalten?

D.h. ist es besser, über die HistorySelect-Funktionen nach einem Geschäft nach Auftrag zu suchen?

 

Und außerdem, tut mir leid, ist das ein wunder Punkt. Für Entwickler: hören Sie auf, unsinnige und ungerechtfertigte Ausgaben für die Wartung von MT4 zu verschwenden, Sie haben bereits die Hälfte Ihrer hochkarätigen Fachleute damit beschäftigt.

Bauen Sie den MQL4-MQL5-Compiler einmal und konzentrieren Sie sich auf die wichtigen Dinge. Erreichen Sie in der Endversion einen stabilen ersten Platz unter Ihren Mitbewerbern.

 
Vasiliy Pushkaryov #:

Das ist nicht ganz klar. In der Hilfe zur MqlTradeResult-Struktur heißt es

Wenn bei der Schließung ein Auftragsticket zurückgegeben wird, aber kein Handelsticket vorhanden ist - handelt es sich dann um einen Vorgang vom Typ TRADE_ACTION_PENDING?

Oder TRADE_ACTION_DEAL und das Trade Ticket ist möglicherweise "spät" und nicht in der Struktur enthalten?

D.h., ist es besser, das Geschäft über die HistorySelect-Funktionen nach der Reihenfolge zu suchen?

Die Methode PositionClose(Symbol) in SB weist jedoch die Geschäftsart TRADE_ACTION_DEAL zu.

Es hat sich herausgestellt, dass es einen Fahrschein für den Handel geben sollte, der aber oft nicht vorhanden ist.