Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 93

 
seny:

Bitte um Hilfe, hier ein Beispiel

Das funktioniert so...

aber nicht auf diese Weise...

Wie schreibe ich über die Variable k in den Puffer?

double k=0;
 
Alekseu Fedotov:
double k=0;

Das hilft nicht! Nicht im Codekörper, nicht in der Initialisierung, nicht am Anfang...

 
seny:

es funktioniert so... und nicht so...

Um zu verstehen, muss man vereinfachen. Vergleich zweier Ausdrücke: 100/10/10 = 1 und k=10/10 100/k = 100, aber wenn k=10*10, dann ist es richtig

 
Grüße. Könnten Sie mir bitte sagen, wie ich die Zeitleiste in die Zukunft verlängern kann, wenn der Zeitleistenversatz aktiviert ist?
 
Andrey Sokolov:
Grüße. Könnten Sie mir bitte sagen, wie ich die Zeitachse für die Zukunft verlängern kann, wenn der Diagrammversatz aktiviert ist?

Das können Sie nicht. Sie können nur die vertikalen Linien selbst zeichnen - sie zeigen die Zeit am unteren Rand an.

 

Hallo. Können Sie mir sagen, wie ich eine Bedingung schreiben kann, bei der: wenn ein offener Auftrag bei TakeProfit geschlossen wird - alle verbleibenden Marktaufträge gelöscht werden; wenn nicht (bei Stop Loss geschlossen) - der exakt gleiche Auftrag (mit dem gleichen Stop Loss und Take Profit) als schwebende Order platziert wird.

 
6737998:

Hallo. Können Sie mir sagen, wie ich eine Bedingung schreiben kann, bei der: wenn ein offener Auftrag mit einem Take-Profit geschlossen wird - alle verbleibenden Marktaufträge gelöscht werden; wenn nicht (mit Stop-Loss geschlossen) - der exakt gleiche Auftrag (mit dem gleichen Stop-Loss und Take-Profit) als schwebender Auftrag erteilt wird.


Ich habe Ihnen in einem anderen Thread gesagt: Arbeiten Sie mit der Geschichte und schreiben Sie die Operatoren, die Sie dazu brauchen.

 

Oder Sie könnten einen Artikel über ein Devisenphänomen in der Rubrik "Artikel" schreiben,
und am Ende des Artikels eine Werbung für einen kostenpflichtigen Indikator vom Markt, einen Indikator, mit dem dieses Phänomen untersucht werden kann. ?

 

Hallo zusammen, bin auf ein Problem gestoßen...

Die Aufgabe besteht darin, einen EA in einem Diagramm interaktiv zu verändern. Eine Option mit mehreren Charts und mehreren EAs kommt für mich nicht in Frage.

Ich weiß, wie man ChartApplyTemplate verwendet, und es funktioniert, aber manchmal gibt es eine falsche Antwort zurück, weil es keinen Befehl in die Warteschlange stellen kann.

Was ist diese Warteschlange, wo kann ich darüber lesen oder wie kann ich diese Warteschlange löschen, da meine Aufgabe vor allen anderen Vorrang haben muss?

Vielen Dank im Voraus.

PS: Dies geschieht nicht bei manueller Änderung der Vorlage. Vielleicht dann über winAPI versuchen... Ich muss nachforschen, ich habe noch nicht damit gearbeitet.

ChartApplyTemplate - Chart Operations - MQL4 Reference
ChartApplyTemplate - Chart Operations - MQL4 Reference
  • docs.mql4.com
ChartApplyTemplate - Chart Operations - MQL4 Reference
 
Vasili Taucci:

Hallo zusammen, bin auf ein Problem gestoßen...

Die Aufgabe besteht darin, einen EA in einem Diagramm interaktiv zu verändern. Eine Option mit mehreren Charts und mehreren EAs kommt für mich nicht in Frage.

Ich weiß, wie man ChartApplyTemplate verwendet, und es funktioniert, aber manchmal gibt es eine falsche Antwort zurück, weil es keinen Befehl in die Warteschlange stellen kann.

Was ist diese Warteschlange, wo kann ich darüber lesen oder wie kann ich diese Warteschlange löschen, da meine Aufgabe vor allen anderen Vorrang haben muss?

Vielen Dank im Voraus.

PS: Dies geschieht nicht bei manueller Änderung der Vorlage. Vielleicht dann über winAPI versuchen... Ich muss nachforschen, ich habe noch nicht damit gearbeitet.

Schauen Sie sich das an. Es ist für MT5, aber das Prinzip ist ganz ähnlich für MT4. Bei der Verwendung von ChartApplyTemplate ist eine obligatorische Synchronisierung erforderlich, die ich im Ticket wie folgt durchführe

  static bool TemplateApply( const long Chart_ID, const string &Str, const bool Sync = true )
  {
    string TmpStr = Str;

    const bool SyncFlag = (Sync && Chart_ID && (Chart_ID != ::ChartID()) && !::IsStopped());

    if (SyncFlag)
    {
      const color ColorStopLevel = (color)::ChartGetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL);

      if ((bool)(ColorStopLevel >> 24))
        ::ChartSetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL, ColorStopLevel & 0xFFFFFF);

      const int NewColorStopLevel = (int)EXPERT::StringBetween(TmpStr, EXPERT_STOPLEVEL, STRING_END) | (0x01 << 24);

      TmpStr = Str;
      EXPERT::StringReplace(TmpStr, EXPERT_STOPLEVEL, STRING_END, EXPERT_STOPLEVEL + (string)NewColorStopLevel + STRING_END);
    }

    short Data[];
    const bool Res = ::StringToShortArray(TmpStr, Data, 0, ::StringLen(TmpStr)) &&
                     ::FileSave(FILENAME, Data) && ::ChartApplyTemplate((ulong)Chart_ID, FILENAME);

    if (Res && SyncFlag)
    {
      long Value;

      while ((!::IsStopped() && ::ChartGetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL, 0, Value) && (!(bool)((int)Value >> 24))))
        ::Sleep(0);

      ::ChartSetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL, (int)Value & 0xFFFFFF);
    }

    return(Res);
  }
Expert
Expert
  • Stimmen: 12
  • 2017.08.28
  • fxsaber
  • www.mql5.com
Библиотека чтения/записи параметров произвольных советников.