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

 
Roman Sharanov:

nichts, leer

Fragen Siehier.

 
Artyom Trishkin:

Fragen Siehier.

Wenn es hilft, sollte es Pfeile zeichnen, auf den Euro, auf den Euro-Yen, den Aussie, auf die anderen tut es nicht

Dateien:
Hydra.mq4  9 kb
 
Roman Sharanov:

Wenn es hilft, sollte es Pfeile zeichnen, auf den Euro, auf den Euro-Yen, den Aussie, auf andere tut es nicht

Nur eine Vermutung.

Die Einstellungen haben einen solchen Wert:

input int so_slowma = 233;//Медленная МА

Und dann in OnInit():

   //---- установка номера бара, начиная с которого будет отрисовываться индикатор 
   SetIndexDrawBegin(0,so_slowma);
   SetIndexDrawBegin(1,so_slowma);

Ich sehe, dass für die Berechnung tägliche Balkenwerte verwendet werden:

if(so > so_minsize && fto > fto_minsize && fo[1] < 0 && fo[0] > 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_1[i+1] = Low[i+1] - 10 * Point;  
if(so < -so_minsize && fto < -fto_minsize && fo[1] > 0 && fo[0] < 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_2[i+1] = High[i+1] + 10 * Point; 

Sind Sie sicher, dass auf den Symbolen, die nicht gezeichnet werden, genügend Balken vorhanden sind? Setzen Sie einen kleineren Wert in die Variable so_slowma - mindestens 100. Wenn es ein Rendering geben wird, dann haben Sie nicht genug historische Daten.

Das ist nur eine Vermutung, die mir beim ersten Blick auf den Code in den Sinn kam. Und das kann falsch sein. Aber Sie sollten es erst einmal überprüfen.

 

Wie kann ich ein Rechteck https://docs.mql4.com/ru/constants/objectconstants/enum_object/obj_rectangle über ein anderes Rechteck legen, ohne die Farben zu vermischen?

Hier wird zum Beispiel eine spätere horizontale Linie auf eine frühere horizontale Linie gezeichnet, ohne dass sich ihre Farben vermischen, aber ich sehe nicht, worin der Unterschied zu Rechtecken besteht.

Danke.

OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Следующий скрипт создает и перемещает на графике прямоугольник. Для создания и изменения свойств графического объекта написаны специальные функции, которые вы можете использовать "как есть" в своих собственных программах. //| Cоздает прямоугольник по заданным координатам                    |               time1=0,           ...
 
Artyom Trishkin:

Nur eine Vermutung.

Die Einstellungen haben einen solchen Wert:

und dann in OnInit():

Ich sehe, dass für die Berechnung tägliche Balkenwerte verwendet werden:

Sind Sie sicher, dass es genügend Balken auf Symbolen gibt, die nicht gerendert werden? Setzen Sie einen kleineren Wert in die Variable so_slowma - mindestens 100. Wenn es ein Rendering geben wird, dann haben Sie nicht genug historische Daten.

Das ist nur eine Vermutung, die mir beim ersten Blick auf den Code in den Sinn kam. Und das kann falsch sein. Aber Sie müssen es erst einmal überprüfen.

Das heißt, weil ich irgendwo im Code Daten aus einem Tagesdiagramm nehme, wird der Indikator nicht die ersten 233 Tage zeichnen?
 
Roman Sharanov:
Das heißt, weil ich Daten aus den täglichen Daten einmal in den Code zu nehmen, wird der Indikator nicht zeichnen die ersten 233 Tage?

Nein, das ist es nicht. Dieser Wert gibt an, ab welcher Taktnummer der Indikator auf dem Diagramm zu zeichnen beginnt. Diese Anzahl von Balken wird jedoch zur Berechnung des gleitenden Durchschnitts verwendet. Sind weniger Balken im Diagramm vorhanden, wird der MA nicht berechnet. Um diese Situation zu vermeiden, enthält der Code in Zeile 73 einen Rücksprung von OnCalculate() für den Fall, dass keine Balken für die Berechnung vorhanden sind:

if (Bars <= so_slowma) return (0);

Nun, was die täglichen Daten betrifft - sie sind vielleicht nicht vorhanden, aber es ist eher eine "Fortsetzung der Geschichte"...

 
Artyom Trishkin:

Nein, das ist es nicht. Dieser Wert gibt an, ab welcher Taktnummer der Indikator auf dem Diagramm zu zeichnen beginnt. Diese Anzahl von Balken wird jedoch zur Berechnung des gleitenden Durchschnitts verwendet. Sind weniger Balken im Diagramm vorhanden, wird der MA nicht berechnet. Um diese Situation zu vermeiden, haben wir in Zeile 73 des Codes Return von OnCalculate() geschrieben, falls keine Balken für die Berechnung vorhanden sind:

Nun, was die täglichen Daten angeht, so sind sie vielleicht auch nicht da, aber es ist eher eine "Fortsetzung der Geschichte"...

Das Pfund, zum Beispiel, hat mehr als 1000 Balken auf dem täglichen und auf m15, aber es zeichnet nicht...

 
Roman Sharanov:

Nun das Pfund zum Beispiel, sowohl auf der täglichen und m15 ist über 1000 Bars, aber es ist nicht Zeichnung...

Sie haben den Quellcode. Drucken Sie die Werte aller Variablen im Protokoll aus und sehen Sie nach, was sie ergeben.

 
Artyom Trishkin:

Sie haben den Quellcode. Drucken Sie die Werte aller Variablen im Protokoll aus und sehen Sie nach, was sie ergeben.

Woher kommt das?


 
Roman Sharanov:

Woher kommt das?


Müll in den Puffern. Zuerst müssen Sie in alle Puffer, die Sie zeichnen, einen leeren Wert eingeben (wenn es sich um Pfeilpuffer handelt), und erst dann die Berechnung des Indikators durchführen. Ich kann den Code von meinem Handy aus nicht sehen, daher kann ich es nicht genau sagen.
Grund der Beschwerde: