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

 
lil_lil:

Ich möchte, dass der Indikator an das Online-Diagramm angehängt wird, nachdem der EA an dieses angehängt wurde. Ist das möglich?

Ich habe es nicht ausprobiert. Theoretisch ist es unwahrscheinlich, dass es funktioniert. Vielleicht ist das der Grund, warum ich es noch nicht ausprobiert habe. Das sieht dann so aus: Jedes Mal, wenn der EA geladen wird, wird die Vorlage angewendet, woraufhin der EA erneut gestartet wird. Und alles wiederholt sich, die Vorlage wird angewendet, eine neue Kopie des EA wird gestartet und so weiter.

Wenn Sie es so sehr wollen, dass Ihnen die Zähne weh tun, ist es vielleicht besser, ein Skript zu erstellen, das die Vorlage mit dem EA und den Indikatoren anwendet.

 
Ich danke Ihnen allen für Ihre Teilnahme. Ich werde versuchen, ChartApplyTemplate() im globalen Terminal aufzurufen und einen Variablenwert zuzuweisen, aber bevor ich ChartApplyTemplate() aufrufe, werde ich den Wert überprüfen.
 

Hallo,

Wie kann ich Balken mit 30 Ticks pro PERIOD_M1 erstellen?

Ich möchte ein neues Zeichen für meine Analyse erstellen.

 
Hallo! Bitte helfen Sie mir, ein Problem zu lösen, ich habe Schwierigkeiten. Ich muss im Code des EA, der auf dem aktiven Chart des Symbols 1 arbeitet, vorschreiben, horizontale Linien in einem anderen, NICHT aktiven Chart des Symbols 2 zu zeichnen. Das bedeutet, dass der Chart von Symbol 2 auf dem Bildschirm geöffnet ist. Für das zweite SUI30-Symbol habe ich zum Beispiel Folgendes getan:
double SUop0 = iOpen("SUI30",PERIOD_H1,0);
double lp = SUop0-67;
double hp = SUop0+67; 

   Fun_New_Bar();
      if(New_Bar)      
         {
   ObjectCreate("SUI30","lineForBuy",OBJ_HLINE,0,0,lp);
   ObjectCreate("SUI30","lineForSell",OBJ_HLINE,0,0,hp);
         }
aber der Meta-Editor meldet eine implizite Umwandlung von "String" in "Zahl". Was mache ich falsch, und wie löse ich das Problem? Ich danke Ihnen.

 
novichok2018:
Hallo! Bitte helfen Sie mir, ein Problem zu lösen, ich kann es nicht tun. Im Code des Expert Advisors, der auf dem aktiven Chart des Symbols 1 arbeitet, muss ich das Zeichnen von horizontalen Linien in einem anderen, NICHT aktiven Chart des Symbols 2 vorschreiben. Das bedeutet, dass der Chart von Symbol 2 auf dem Bildschirm geöffnet ist. Für das zweite SUI30-Symbol habe ich beispielsweise Folgendes getan: Der Meta-Editor meldet jedoch eine implizite Umwandlung von "String" in "Zahl". Was mache ich falsch, und wie löse ich das Problem? Ich danke Ihnen.

Wir müssen eine weitere Funktionsüberladung verwenden

bool  ObjectCreate( 
   long          chart_id,      // идентификатор графика 
   string        object_name,   // имя объекта 
   ENUM_OBJECT   object_type,   // тип объекта 
   int           sub_window,    // индекс окна 
   datetime      time1,         // время первой точки привязки 
   double        price1,        // цена первой точки привязки 
   ... 
   datetime      timeN=0,       // время N-точки привязки 
   double        priceN=0       // цена N-точки привязки 
   );

Und dieser Diagramm-Identifikator sollte gefunden werden, indem man versucht, die Diagramme von ChartFirst() aufzuzählen;

long  ChartNext( 
   long  chart_id      // идентификатор графика
   );

Beispiel aus der Dokumentation

//--- переменные для идентификаторов графиков 
   long currChart,prevChart=ChartFirst(); 
   int i=0,limit=100; 
   Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart); 
   while(i<limit)// у нас наверняка не больше 100 открытых графиков 
     { 
      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график 
      if(currChart<0) break;          // достигли конца списка графиков 
      Print(i,ChartSymbol(currChart)," ID =",currChart); 
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext() 
      i++;// не забудем увеличить счетчик 
     }
 
Alexey Viktorov:

Wir müssen eine andere Funktionsüberladung verwenden

Danke, ich versuche, es herauszufinden.

 
Alexey Viktorov:

Wir müssen eine weitere Funktionsüberladung verwenden

Und dieser Diagramm-Identifikator sollte gefunden werden, indem man versucht, die Diagramme von ChartFirst() aufzuzählen;

Ein Beispiel aus der Dokumentation

Leider haben meine Versuche, es herauszufinden, zu nichts geführt. Ich habe einfach Fehler im Zusammenhang mitChartNext() zu den vorhandenen Meldungen hinzugefügt. Ich verstehe nicht, was das soll.

 
novichok2018:

Leider hat mich der Versuch, das herauszufinden, zu nichts geführt. Es wurden gerade Fehler im Zusammenhang mit der Anwendung ChartNext() zu den bestehenden Meldungen hinzugefügt. Ich verstehe nicht, was das soll.

Sie können zur Vereinfachung eine konstante Diagramm-ID verwenden. Ein Skript schreiben

Print(ChartID());

Führen Sie es auf dem Diagramm aus, auf dem Sie diese Linien zeichnen möchten. Dann schreiben Sie diesen Wert als Diagramm-ID in die Funktion.

Und auf der guten Seite, das Beispiel aus der Dokumentation, es ist nicht eine vorgefertigte Funktion, wie nehmen Sie es und verwenden Sie es. Es ist notwendig, das Symbol und die Periode in der Schleife zu überprüfen. Wenn der richtige gefunden wird, wird die Schleife verlassen und der erhaltene Bezeichner verwendet.

 

es gibt eine Konstante in der OPENCL cl_ inline und sie ist gleich #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 Die Überprüfung des Zweiergrades in 1024 ergab. 2^1024 = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 Und darunter steht die Anzahl der pi

nach

#define CL_M_PI 3.141592653589893115998

3.141592653589793238462643383279502884197169

erklären, warum ????

 
Alexey Viktorov:

Sie können eine konstante Diagramm-ID verwenden, um die Aufgabe zu erleichtern. Ein Skript schreiben

Führen Sie es auf dem Diagramm aus, auf dem Sie diese Linien zeichnen möchten. Dann schreiben Sie diesen Wert als Diagramm-ID in die Funktion.

Und das Gute daran ist, dass das Beispiel aus der Dokumentation keine vorgefertigte Funktion ist, die Sie einfach übernehmen und verwenden können. In der Schleife ist es notwendig, das Symbol und den Punkt zu überprüfen. Wenn der richtige gefunden wird, wird die Schleife verlassen und der erhaltene Bezeichner verwendet.

Ich danke Ihnen. Alles hat mit dem Drehbuch funktioniert, es zeichnet die Linien.

Grund der Beschwerde: