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

 
ruslan:

es gibt eine Konstante in der OPENCL cl_ inline und sie ist gleich #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0, indem man den Grad von zwei in 1024 überprüft. 2^1024 = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 Und darunter steht die Anzahl der pi

nach

#define CL_M_PI 3.141592653589893115998

3.141592653589793238462643383279502884197169

erklären, warum ????

https://ru.wikipedia.org/wiki/Число_двойной_точности

Число двойной точности — Википедия
  • ru.wikipedia.org
Числа с плавающей запятой (двойной/одинарной/четверной точности) поддерживаются сопроцессором (до 80486SX, включительно, выполнен как отдельный модуль-0х87/0х287/0х387/0х487, начиная с 80486DX является встроенным в главный процессор. Сопроцессор, хотя он сейчас и является частью главного процессора, принято называть FPU — Floating Point Unit...
 
Ist es möglich, den Saldowert der vorherigen Balken in mcl4 zu erhalten? Wie schreibe ich das in den Code?
 
Meine Anzeige hat eine Verzögerung von +/- 1 Sekunde nach dem Drücken der Taste. MQL5

Ich habe diese Event-Handler für den Betrieb und die Aktualisierung des Panels hinzugefügt:
- OnChartEvent zur Behandlung von Schaltflächenklicks
- OnTimer für die Aktualisierung von Paneldaten

Der gesamte Code umfasst 750+ Zeilen, es gibt nur mehrere Schleifen, eine für die Aktualisierung des Indikatorfensters, die anderen drei haben eine geringe Anzahl von Durchläufen (max 10 * 4)

Dieser Teil des Codes nach OnChartEvent if(id == CHARTEVENT_OBJECT_CLICK) ist merklich langsam
if(go == "E")
     {
      if(ObjectGetInteger(ChartID(),no,OBJPROP_STATE) == true)
        {
         ObjectSetInteger(ChartID(),no,OBJPROP_COLOR,cpanel);
         ObjectSetInteger(ChartID(),no,OBJPROP_BGCOLOR,ctext);
        }
      else
        {
         ObjectSetInteger(ChartID(),no,OBJPROP_COLOR,ctext);
         ObjectSetInteger(ChartID(),no,OBJPROP_BGCOLOR,cpanel);
        };
      for(int i = 0; i < limit_x; i++)
        {
         vname = i + 1;
         if("MCC B№"+(string)vname != no)
           {
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_STATE,false);
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_COLOR,ctext);
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_BGCOLOR,cpanel);
           };
        };
     };
 
Alexandr Sokolov:
Meine Anzeige hat eine Verzögerung von +/- 1 Sekunde nach dem Drücken der Taste. MQL5

Ich habe diese Event-Handler für den Betrieb und die Aktualisierung des Panels hinzugefügt:
- OnChartEvent zur Behandlung von Schaltflächenklicks
- OnTimer für die Aktualisierung von Paneldaten

Der gesamte Code umfasst 750+ Zeilen, es gibt nur mehrere Schleifen, eine für die Aktualisierung des Indikatorfensters, die anderen drei haben eine geringe Anzahl von Durchläufen (max 10 * 4)

Dieser Teil des Codes nach OnChartEvent if(id == CHARTEVENT_OBJECT_CLICK) ist merklich langsam

ChartRedraw() wird benötigt, nachdem alle Änderungen an allen Objekten vorgenommen wurden, deren Eigenschaften durch die Schaltflächenaktion geändert werden.

 
Artyom Trishkin:

ChartRedraw() wird benötigt, nachdem alle Änderungen an allen Objekten vorgenommen wurden, deren Eigenschaften mit der Schaltflächenaktion geändert wurden.

In der Tat! Daran hatte ich nicht gedacht. Herzlichen Dank!


Ich habe Warnungen inOnChartEvent if(id ==CHARTEVENT_OBJECT_CLICK) eingegeben - es gab Warnungen, aber keine Aktualisierungen. Und deshalb konnte ich nicht verstehen, warum

 
novichok2018:
Ist es möglich, den Saldowert der vorherigen Balken in mcl4 zu erhalten? Wie schreibe ich das in den Code?

Hallo, Experten! Weiß das denn niemand?! Ich kann es nicht glauben.

 
novichok2018:

Hallo, Experten! Weiß das denn niemand?! Ich kann es nicht glauben.

Hier ist der Preis für eine Zecke

SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE ) * Volumen

Multiplizieren Sie dann mit der Differenz in Ticks zwischen dem Eröffnungskurs des Auftrags und dem Schlusskurs (oder einem anderen Kurs) des gewünschten Balkens. Berücksichtigen Sie aber, dass Sie mit den Standardmethoden nicht wissen können, wie hoch die Spanne zu diesem Zeitpunkt war.

 
novichok2018:

Hallo, Experten! Weiß das denn niemand?! Ich kann es nicht glauben.

der Saldo hängt von der Schließung von Positionen ab - wenn nichts geschlossen wurde, dann hat sich der Saldo nicht verändert

 
Ich habe die Frage wohl nicht richtig formuliert, da die Antworten nicht zum Thema gehören. Es ist mir egal, ob die Positionen geschlossen wurden oder nicht, und der Wert des Ticks interessiert mich schon gar nicht. Ich muss wissen, wie hoch derKontostand zum Zeitpunkt der Schließung von 1, 2 oder 3 Balken eines bestimmten Symbols war, um einen Vergleich zu haben. Positionen auf diesen Stäben wurden geöffnet und geschlossen, einschließlich Positionen auf anderen Symbolen: in einigen Fällen wurden Positionen im positiven Bereich geschlossen, in anderen Fällen - im negativen Bereich, in anderen Fällen - noch nicht geschlossen, das bedeutet, dass sich der Saldo geändert hat. Ich muss die spezifischen Werte kennen. Ich danke Ihnen.
 
novichok2018:
Ich habe die Frage wohl nicht richtig formuliert, da die Antworten nicht zum Thema gehören. Es ist mir egal, ob die Positionen geschlossen wurden oder nicht, und die Kosten für den Tick interessieren mich nicht. Ich muss wissen, wie hoch der Kontostand zum Zeitpunkt der Schließung von 1, 2, 3 Bars war, um einen Vergleich zu haben. An diesen Stäben wurden Positionen eröffnet und geschlossen, so dass sich der Saldo veränderte. Wir müssen den spezifischen Wert kennen. Ich danke Ihnen.

- Wir schauen auf den Zeitpunkt des letzten Taktes
- alles zusammenzählen, was in dieser Bar geschlossen wurde
- vom aktuellen Saldo subtrahieren

und so alle Balken der Reihe nach