Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1893

 

Können Sie mir einen Tipp geben?

In mql4 gab es einen Indikator, der auf MA auf dem Eröffnungskurs basierte, er erlaubte es, ein erneutes Zeichnen auf dem aktuellen Bar zu vermeiden. durch int start() funktionierte es gut. Sie zeigte alles deutlich.

In mql5 funktioniert der gleiche Indikator nicht über int start, sondern über int OnCalculate. Es wird immer wieder neu berechnet und gezeichnet, für eine Sekunde verschwindet das Bild und kann aufgrund der Grenzsituation mit dem Schnittpunkt zweier MAs unterschiedliche Werte haben, obwohl der Abstand zwischen zwei MAs eingestellt ist, hilft das nicht. Ich dachte, ich würde nicht den 0. Wert, sondern den 1. aus dem MA-Puffer nehmen, aber es hat nicht funktioniert, und ich dachte auch, ich würde diese Funktion überspringen, bevor ein neuer Balken eintrifft, und es hat auch nicht funktioniert (ich habe sogar versucht, nichts mehr anzuzeigen). Wie kann diese Situation überwunden werden?

Wenn das Diagramm von rechts nach links gespiegelt wird, flackert auch der Indikator mit ständiger Neuberechnung

 
Sergey Dymov #:

Können Sie mir einen Tipp geben?

In mql4 gab es einen Indikator, der auf MA auf dem Eröffnungskurs basierte, er erlaubte es, ein erneutes Zeichnen auf dem aktuellen Bar zu vermeiden. durch int start() funktionierte es gut. Sie zeigte alles deutlich.

In mql5 funktioniert der gleiche Indikator nicht über int start, sondern über int OnCalculate. Es hält neu zu berechnen und neu zu zeichnen, für eine Sekunde das Bild verschwindet und kann unterschiedliche Werte wegen der Grenze mit zwei MA Kreuzung der Situation haben, auch wenn ich Abstand zwischen zwei MA gesetzt haben, funktioniert es nicht. Ich dachte, ich würde nicht den 0. Wert, sondern den 1. aus dem MA-Puffer nehmen, aber es hat nicht funktioniert, und ich dachte auch, ich würde diese Funktion überspringen, bevor ein neuer Balken eintrifft, und es hat auch nicht funktioniert (ich habe sogar versucht, nichts mehr anzuzeigen). Wie kann diese Situation überwunden werden?

Beim Umdrehen des Diagramms von rechts nach links flackert auch die Anzeige mit ständiger Neuberechnung

Stellen Sie die Frage hier - man wird Ihnen bestimmt helfen.

 
Sergey Dymov #:

Können Sie mir einen Tipp geben?

In mql4 gab es einen Indikator, der auf MA auf dem Eröffnungskurs basierte, er erlaubte es, ein erneutes Zeichnen auf dem aktuellen Bar zu vermeiden. durch int start() funktionierte es gut. Sie zeigte alles deutlich.

In mql5 funktioniert der gleiche Indikator nicht über int start, sondern über int OnCalculate. Es wird immer wieder neu berechnet und gezeichnet, für eine Sekunde verschwindet das Bild und kann aufgrund der Grenzsituation mit dem Schnittpunkt zweier MAs unterschiedliche Werte haben, obwohl der Abstand zwischen zwei MAs eingestellt ist, hilft das nicht. Ich dachte, ich würde nicht den 0. Wert, sondern den 1. aus dem MA-Puffer nehmen, aber es hat nicht funktioniert, und ich dachte auch, ich würde diese Funktion überspringen, bevor ein neuer Balken eintrifft, und es hat auch nicht funktioniert (ich habe sogar versucht, nichts mehr anzuzeigen). Wie kann diese Situation überwunden werden?

Wenn das Diagramm von rechts nach links gespiegelt wird, flackert auch der Indikator mit ständiger Neuberechnung

Senden Sie den Code
 

So etwas gibt es in der Grafik

Wenn ich mich nicht irre, habe ich das schon in jeder Farbe gesehen.

Wie?

 
Vitaly Muzichenko #:

So etwas gibt es in der Grafik

Wenn ich mich nicht irre, habe ich das schon in jeder Farbe gesehen.

Wie?

F8 und.


Aber das ist auch die Farbe des Gitters, also deaktivieren Sie die Option


 
Artyom Trishkin #:

F8 und

Aber das ist auch die Farbe des Gitters, also deaktivieren Sie die Option

Verstanden, danke!

Das Netz wird gebraucht, schade, dass es nicht getrennt ist.

P.S. Wie verschiebt man programmatisch 15 Takte vom rechten Rand?
 
Vitaly Muzichenko #:

Verstanden, danke!

Das Netz wird gebraucht, schade, dass es nicht geteilt ist.

P.S. Wie verschiebt man programmatisch 15 Takte vom rechten Rand?

Wie wäre es damit?

//+------------------------------------------------------------------+
//| Функция включает/выключает режим отображения ценового графика с  |
//| отступом от правого края.                                        |
//+------------------------------------------------------------------+
bool ChartShiftSet(const bool value,const long chart_ID=0)
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- установим значение свойства
   if(!ChartSetInteger(chart_ID,CHART_SHIFT,0,value))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты"
      Print(__FUNCTION__+", Error Code = ",GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
Примеры работы с графиком - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov #:

Wie wäre es damit?

Ja, aber das bedeutet, den Knopf wegzudrücken.

Wenn man den Marker mit den Händen zieht, bleibt er vor dem Erreichen des rechten Randes ein ganzes Stück stehen - das ist eine grundlegend falsche Einschränkung des Terminals!

Wenn Sie die Taste drücken, klebt der äußerste Balken fast am rechten Rand, so dass der Informationswert des Diagramms verloren geht.

Sie sollten die Taste drücken, ohne 15-20 Balken erreicht zu haben, und diesen Vorgang nicht jedes Mal durchführen, wenn ein neuer Balken erscheint. Nur einmal komprimieren.

P.S. Warum eine solche Einschränkung und so viel leerer Raum?


 
Vitaly Muzichenko #:

Ja, aber es drückt den Knopf weg.

Wenn man den Marker mit den Händen zieht, bleibt er vor dem Erreichen des rechten Randes ein ganzes Stück stehen - das ist eine grundlegend falsche Einschränkung des Terminals!

Wenn Sie die Taste drücken, klebt der äußerste Balken fast am rechten Rand, so dass der Informationswert des Diagramms verloren geht.

Sie sollten die Taste drücken, ohne 15-20 Balken erreicht zu haben, und diesen Vorgang nicht jedes Mal durchführen, wenn ein neuer Balken erscheint. Nur einmal komprimieren.

Prozentsatz

//+------------------------------------------------------------------+ 
//| Функция устанавливает размер отступа нулевого бара от правого    | 
//| края графика в процентах (от 10% до 50%). Для включения режима   | 
//| отступа, нужно установить значение свойства CHART_SHIFT равным   | 
//| true.                                                            | 
//+------------------------------------------------------------------+ 
bool ChartShiftSizeSet(const double value,const long chart_ID=0) 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- установим значение свойства 
   if(!ChartSetDouble(chart_ID,CHART_SHIFT_SIZE,value)) 
     { 
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError()); 
      return(false); 
     } 
//--- успешное выполнение 
   return(true); 
  }
 
Alekseu Fedotov #:

Prozentsatz

Funktioniert, aber das Minimum ist eine Einrückung, die von Hand eingestellt werden kann und mindestens

Optisch gesehen sind es etwa 10 % Minimum. Warum funktionieren 5% nicht?

Grund der Beschwerde: