Fehler, Irrtümer, Fragen - Seite 1549

 
comp:

Verstanden, danke. Leider funktioniert diese Lösung nur im Expert Advisor (in dem die Berechnung unterbrochen werden sollte). Es wird nicht im Indikator funktionieren, weil der Aufruf des Indikators im Chart keine parallele Chart-Warteschlange erstellt, sondern in dieselbe Ereignis-Warteschlange eintritt, nicht einmal für einen bestimmten Chart, sondern für ALLE Charts dieses Symbols.

Wie kann man den Indikator als MQ5-Ressource anstelle der EX5-Ressource verschieben?

Das können Sie nicht. Außerdem können Sie nicht versuchen, den Code (Programmtext) von einem anderen Programm aus zu bearbeiten.
 

Leute! Wo liegt das Problem? Ich habe eine Bestellung aufgegeben

m_trade.SellLimit(1,Ask+40,_Symbol,0,0,ORDER_TIME_GTC,0,")

Es wird eingestellt. Und... in der gleichen Geschwindigkeit wird sie gelöscht. Es gibt nur eine (bereits) Zeile im EA! Diese hier! D.h. es ist nicht mein EA, der den Auftrag löscht. Was ist das Problem?

 
Karputov Vladimir:
Das können Sie nicht. Insbesondere können Sie nicht versuchen, den Code selbst (den Programmtext) von einem anderen Programm aus zu bearbeiten.

Kann EX5 als Array in den Code aufnehmen. Erstellen Sie eine EX5-Datei in der Sandbox und verbinden Sie sie als Ressource.

Aber warum dieser Aufwand, wenn es doch logischer wäre, dasselbe zu tun, wenn man die MQ5-Ressourcen auf einmal anschließen könnte.

 
comp:

Kann EX5 als Array in den Code aufnehmen. Erstellen Sie eine EX5-Datei in der Sandbox und verbinden Sie sie als Ressource.

Aber warum so ein Aufwand, wenn es doch logischer wäre, dasselbe zu tun, wenn man die MQ5-Ressourcen auf einmal anschließen könnte.

Nehmen Sie die bestehenden Regeln als selbstverständlich hin, anstatt die Umsetzung Ihrer eigenen Wünsche zu fordern.
 
Karputov Vladimir:
Nehmen Sie die bestehenden Regeln als selbstverständlich hin, anstatt die Umsetzung Ihrer eigenen Wünsche zu fordern.
Wo sehen Sie Forderungen?!
 

comp:

wenn es möglich wäre, die MQ5-Ressource auf einmal anzuschließen.

und was ist das Ziel, abgesehen vom akademischen Interesse?
 
o_O:
Und was ist das Ziel, abgesehen vom akademischen Interesse?

In der Tat haben die Entwickler ein Verbot für diese

comp:

Ich kann EX5 als Array in meinem Code verwenden. Erstellen Sie eine EX5-Datei in einer Sandbox und fügen Sie sie als Ressource ein.

Aber das ist natürlich nicht der Punkt. Ich möchte eine universelle IsChanged() machen und es durch #include verbinden.

Ich möchte die EX5-Datei mit dem Parallelitätsindikator nicht mitschleppen. Ich weiß nicht, was da alles hineingepackt werden kann. Wenn MQ5 ein Open Source ist, hat es eine andere Einstellung.

 
Wenn die Meldung "Indikator ist zu langsam" während der Ausführung des Indikators nie im Protokoll erscheint, kann man dann sagen, dass der Indikator nicht eingefroren ist?
 
comp:
Wenn die Meldung "Indikator ist zu langsam" während der Ausführung des Indikators nicht im Protokoll erscheint, können wir dann bestätigen, dass der Indikator nicht hängt?

Niemand kann irgendwo eine 100%ige Garantie geben :) Wenn der Indikator in der Nachrichtenwarteschlange zumindest etwas platziert, ist es sinnvoll, ihn auf dem schnellen Markt zu testen.

Hinzugefügt. Wenn der Indikator zumindest etwas in die Nachrichtenwarteschlange stellt, ist es sinnvoll, zusätzlich zum Test auf dem schnellen Markt mehrere Indikatoren im Terminal laufen zu lassen.

 
Karputov Vladimir:

Niemand kann irgendwo eine 100%ige Garantie geben :) Wenn der Indikator in der Nachrichtenwarteschlange zumindest etwas platziert, ist es sinnvoll, ihn auf dem schnellen Markt zu testen.

Hinzugefügt. Wenn der Indikator zumindest etwas in die Nachrichtenwarteschlange stellt, ist es sinnvoll, zusätzlich zum Test auf dem schnellen Markt mehrere Indikatoren im Terminal laufen zu lassen.

Der schnelle Markt kann durch einen Aufruf von FullOnCalculate() emuliert werden

#define  TIMESERIES(X)                                                  \
   ::ArraySetAsSeries(X, TRUE);                                        \
   Size = ::MathMin(Copy##X(::Symbol(), ::Period(), 0, bars, X), Size);  

int FullOnCalculate( const int Prev_Calculated = 0 )
{
  int Spread[];
  long RealVolume[];
  
  int Size = INT_MAX;
  
  #ifdef __MQL4__
    const int bars = ::Bars;
  #endif

  #ifdef __MQL5__
    const int bars = ::Bars(::Symbol(), ::Period());
  #endif

   TIMESERIES(Spread)
  TIMESERIES(RealVolume)
  
  #ifdef __MQL4__
    return(::OnCalculate(Size, Prev_Calculated, Time, Open, High, Low, Close, RealVolume, Volume, Spread));
  #endif
  
  #ifdef __MQL5__
    datetime Time[];
    double Open[];
    double High[];
    double Low[];
    double Close[];
    long TickVolume[];

    TIMESERIES(Time)
    TIMESERIES(Open)
    TIMESERIES(High)
    TIMESERIES(Low)
    TIMESERIES(Close)
    TIMESERIES(TickVolume)
  
    return(::OnCalculate(Size, Prev_Calculated, Time, Open, High, Low, Close, RealVolume, TickVolume, Spread));
  #endif
}

das Ereignismodell - in ähnlicher Weise. Die Frage bezog sich auf etwas anderes

comp:
Wenn während der Ausführung eines Indikators kein "Indikator ist zu langsam" in seinem Protokoll erscheint, kann man daraus schließen, dass der Indikator nicht eingefroren ist?

Die Vergangenheitsform im Russischunterricht.

Grund der Beschwerde: