Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 896

 
ruslan:

c'è una costante nell'inline cl_ di OPENCL ed è uguale a #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 controllando il grado di due in 1024 ottenuto. 2^1024 = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 E poi sotto c'è il numero di pi greco

dopo

#define CL_M_PI 3.141592653589893115998

3.141592653589793238462643383279502884197169

spiegare perché ????

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

Число двойной точности — Википедия
  • ru.wikipedia.org
Числа с плавающей запятой (двойной/одинарной/четверной точности) поддерживаются сопроцессором (до 80486SX, включительно, выполнен как отдельный модуль-0х87/0х287/0х387/0х487, начиная с 80486DX является встроенным в главный процессор. Сопроцессор, хотя он сейчас и является частью главного процессора, принято называть FPU — Floating Point Unit...
 
È possibile ottenere il valore di equilibrio su barre precedenti in mcl4? Come lo scrivo nel codice?
 
Il mio indicatore ha un ritardo di +/- 1 secondo dopo la pressione del pulsante. MQL5

Ho aggiunto questi gestori di eventi per il funzionamento e l'aggiornamento del pannello:
- OnChartEvent per gestire i clic dei pulsanti
- OnTimer per l'aggiornamento dei dati del pannello

L'intero codice è di 750+ linee, ci sono solo diversi cicli, uno per gli aggiornamenti nella finestra dell'indicatore, gli altri tre hanno un piccolo numero di passaggi (massimo 10 * 4)

Questa parte di codice dopo OnChartEvent if(id == CHARTEVENT_OBJECT_CLICK) è notevolmente lenta
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:
Il mio indicatore ha un ritardo di +/- 1 secondo dopo la pressione del pulsante. MQL5

Ho aggiunto questi gestori di eventi per il funzionamento e l'aggiornamento del pannello:
- OnChartEvent per gestire i clic dei pulsanti
- OnTimer per l'aggiornamento dei dati del pannello

L'intero codice è di 750+ linee, ci sono solo diversi cicli, uno per gli aggiornamenti nella finestra dell'indicatore, gli altri tre hanno un piccolo numero di passaggi (max 10 * 4)

Questa parte di codice dopo OnChartEvent if(id == CHARTEVENT_OBJECT_CLICK) è notevolmente lenta

ChartRedraw() è necessaria dopo che tutte le modifiche sono state fatte a tutti gli oggetti le cui proprietà sono cambiate dall'azione del pulsante.

 
Artyom Trishkin:

ChartRedraw() è necessaria dopo aver fatto tutte le modifiche in tutti gli oggetti le cui proprietà sono cambiate con l'azione del pulsante.

Certo! Non ci avevo pensato. Grazie mille!


Stavo mettendo avvisi inOnChartEvent if(id ==CHARTEVENT_OBJECT_CLICK) - c'erano avvisi, nessun aggiornamento. Ed è per questo che non riuscivo a capire perché

 
novichok2018:
È possibile ottenere il valore di equilibrio su barre precedenti in mcl4? Come lo scrivo nel codice?

Salve, esperti! Non lo sa nessuno?! Non ci credo.

 
novichok2018:

Salve, esperti! Non lo sa nessuno?! Non ci credo.

Ecco il prezzo di una zecca

SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE ) * volume

Poi moltiplica per la differenza in tick tra il prezzo di apertura dell'ordine e il prezzo di chiusura (o altro) della barra necessaria. Ma tieni conto che non puoi sapere con i metodi standard quale fosse lo spread in quel momento

 
novichok2018:

Salve, esperti! Non lo sa nessuno?! Non ci credo.

il saldo dipende dalla chiusura delle posizioni - se non è stato chiuso nulla, allora il saldo non è cambiato

 
Devo aver formulato male la domanda, visto che le risposte sono fuori tema. Non mi interessa se le posizioni si sono chiuse o meno, e certamente non mi interessa il valore del tick. Ho bisogno di sapere quale era ilsaldo del conto al momento della chiusura di 1, 2, 3 barre di un certo simbolo per il confronto. Le posizioni su queste barre sono state aperte e chiuse, comprese le posizioni su altri simboli: alcune posizioni sono state chiuse in positivo, altre in negativo, altre ancora non sono state chiuse, quindi il saldo è cambiato. Ho bisogno di sapere i valori specifici. Grazie.
 
novichok2018:
Devo aver formulato male la domanda, visto che le risposte sono fuori tema. Non mi interessa se le posizioni si sono chiuse o meno, e non mi interessa il costo del tick. Ho bisogno di sapere quale era il saldo del conto al momento della chiusura di 1, 2, 3 barre per il confronto. Le posizioni venivano aperte e chiuse su queste barre, e quindi l'equilibrio cambiava. Abbiamo bisogno di conoscere il valore specifico. Grazie.

- Guardiamo il tempo dell'ultima barra
- sommare tutto ciò che è stato chiuso su questo bar
- sottrarre dal saldo corrente

e così tutte le barre a loro volta