Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 17

 
Kombinator:
Err warum, wenn es sowieso nicht sichtbar ist?

Diese Parameter können weggelassen werden, wenn keine Notwendigkeit für die Anzeige eines Indikators besteht.

Und die Kompatibilität mit dem alten Code wird nicht beeinträchtigt. Während der Prüfung wird der Indikator immer angezeigt.

 
Slawa:

Denn es ist nicht möglich, die Anzeigeeigenschaften (Zeichnungsteil) über den Indikatorgriff (Berechnungsteil) einzustellen. Ein Fehler liegt vor, wenn etwas auf eine bestimmte Weise geschrieben ist, aber auf eine andere Weise funktioniert.

Hier ist ein anderer Ansatz erforderlich. Zugriff auf den Indikator über den Kurznamen, wie in der Funktionsgruppe ChartIndicatorXXX. Etwas wie ChartIndicatorSetInteger(chart_id,sub_window,indicator_name,PROP_COLOR,mod,value)

Wir haben bereits darüber nachgedacht, sind aber noch nicht dazu gekommen.

Wenn es für programmatisch gesetzte Indikatoren gedacht ist, wäre es dann nicht besser, das hervorgehobene Symbol durch den Indikatorgriff zu ersetzen?
 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Eigenheiten der Sprache mql5, Tipps und Tricks

fxsaber, 2017.02.25 16:02

  static bool HistoryDealSelect( MqlTradeResult &Result )
  {
    if ((Result.deal == 0) && (Result.order != 0))
    {
      if (::HistorySelectByPosition(::HistoryOrderGetInteger(Result.order, ORDER_POSITION_ID)))
        for (int i = ::HistoryDealsTotal() - 1; i >= 0; i--)
        {
          const ulong DealTicket = ::HistoryDealGetTicket(i);

          if (Result.order == ::HistoryDealGetInteger(DealTicket, DEAL_ORDER))
          {
            Result.deal = DealTicket;

            break;
          }
        }
    }

    return(::HistoryDealSelect(Result.deal));
  }
  // Учтены MT5-нюансы: Result.deal == 0
  static bool OrderSendSync( const MqlTradeRequest &Request, MqlTradeResult &Result )
Die Synchronizität ist nicht mehr relevant. Nur der Teil, der für die Korrektur von Result.deal verantwortlich ist, wird hervorgehoben.
 
fxsaber:
Die Synchronisierung ist nicht mehr relevant. Nur der Teil, der für die Korrektur von Result.deal verantwortlich ist, wird hervorgehoben.
Was ist die "Result.deal-Korrektur"?
 
Alexey Viktorov:
Wenn dies für programmatisch gesetzte Indikatoren gedacht ist, ist es dann nicht besser, das hervorgehobene Element durch den Indikator-Handle zu ersetzen?
Nicht besser. Denn ohne Änderungen an der Architektur ist dies nicht möglich. Ich habe ausführlich beschrieben, warum.
 
Artyom Trishkin:
Was ist die "Result.deal-Korrektur"?

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

fxsaber, 2017.02.23 15:34

Vom BSB.

Der Abschluss des daraus resultierenden Tauschtickets ist nicht garantiert. Ob er gefüllt wird, hängt vom Ausführungsmodus des Instruments und den Einstellungen des jeweiligen Servers ab.

Wer sich für ein Nicht-Null-Ergebnis entschieden hat, muss handeln.

 
Roffild:

Diese Parameter können weggelassen werden, wenn keine Notwendigkeit besteht, den Indikator anzuzeigen.

Wenn Sie sie anzeigen möchten, können Sie diese Einstellungen in den Parametern vornehmen.
 
fxsaber:

Nun ... Ich sehe, dass Sie sich nicht auf ein Ergebnis ungleich Null verlassen können.deal. Was steht dann in dieser Zeile?

// Учтены MT5-нюансы: Result.deal == 0

Wo werden sie verbucht?

 
Artyom Trishkin:

Nun ... Ich sehe, dass Sie sich nicht auf ein Ergebnis ungleich Null verlassen können.deal. Was steht dann in dieser Zeile?

Wo werden sie verbucht?


In OrderSendSync wird die überladene (siehe oben) HistoryDealSelect aufgerufen.
 

fxsaber:

static bool OrderSendSync( const MqlTradeRequest &Request, MqlTradeResult &Result )

Die Synchronisierung ist nicht mehr relevant. Nur der Teil, der für die Korrektur von Result.deal verantwortlich ist, wird hervorgehoben.

Und darf ich fragen, warum statisch?