Errori, bug, domande - pagina 245

 

La storia rimbalza per caso?

È sempre solo su un simbolo o anche su GBPUSD?

Quale costruzione? Quale server?

 

La storia che rimbalza ha uno slancio,

No su tutte le coppie di valute sia su simbol1 che su simbol2,

Bild 370, conto demo (alpari-demo)


Vorrei notare che ho solo un trader (dallo screenshot sopra) l'overshoot è

Vorrei notare che se lascio un indicatore (nello screenshot qui sopra), il ridisegno non è così evidente,

può ridisegnare più volte.

Ho pensato che il computer potesse essere lento, ma è lo stesso su un computer a 2 core e il grafico non scorre

Probabilmente, sta aspettando il tempo di inattività o qualcos'altro?

La sera sui sei nuclei si metterà alla prova!

Voglio anche sottolineare che non è successo nulla con altri tacchini simili.

Non può essere a causa di calcoli complicati! E il giradischi è semplice

e funziona a prezzi aperti.

 
alexluek:

Aiuto! L'indicatore funziona bene, visualizza e calcola tutto, ma

quando arriva un nuovo tick, si resetta e le linee vengono ricalcolate.

Mi capita regolarmente durante le perdite di comunicazione. Dopo la riconnessione il terminale ricalcola i valori degli indicatori, il ricalcolo richiede tempo. Da Riferimento:

La relazione tra il valore restituito da OnCalculate() e il secondo parametro di input prev_calculated dovrebbe essere notato. Il parametro prev_calculated quando la funzione viene chiamata contiene il valore restituito da OnCalculate() nella chiamata precedente. Questo permette algoritmi economici per il calcolo dell 'indicatore personalizzato al fine di evitare calcoli ripetuti per quelle barre che non sono cambiate dalla precedente chiamata di questa funzione.

Per questo, di solito è sufficiente restituire il valore del parametro rates_total, che contiene il numero di barre nella chiamata di funzione corrente. Se dall'ultima chiamata di OnCalculate() i dati dei prezzi sono cambiati (è stata caricata una storia più profonda o sono stati riempiti gli spazi vuoti della storia), allora il valore del parametro di input prev_calculate sarà impostato a zero dal terminale.

Non so quale sia esattamente la vostra situazione, ma per quanto mi riguarda spiego tale comportamento come "riempimento di vuoti nella storia". O forse il vostro indicatore funziona in modo inefficiente, ricalcolando l'intera gamma di valori ad ogni arrivo di un tick?

 

Non c'è stata nessuna perdita di comunicazione, un'eccessiva estrazione di zecche, e più grande è il TF più raro.

E il metodo di calcolo dalla data iniziale alla data finale (ho scoperto che ce ne sono 3) senza

Probabilmente succede (ricalcola tutte le barre), ma non è ancora preciso e non so come controllarlo.

ma è solo un'idea - controlliamo...

Forse c'è un altro approccio per liberarsene...

 
alexluek:

Non c'è stata nessuna perdita di connettività, sovraccarico di zecche, e più grande è il TF più è raro.

E il metodo di calcolo dalla data iniziale alla data finale (ho scoperto che ce ne sono 3) senza

Probabilmente succede (ricalcola tutte le barre), ma non è ancora preciso e non so come controllarlo.

ma è solo un'idea - controlliamo...

Forse c'è un altro approccio per liberarsene...

Naturalmente, c'è un approccio. Se(prev_calculated==0), eseguiamo il calcolo iniziale per tutte le barre. Successivamente, per ogni nuovo tick (se 0 < prev_calcolato < tassi_totale) facciamo calcoli come for(int i=prev_calcolato-1;i< tassi_totale;i++) solo per le ultime barre apparse.
 
Yedelkin:
Naturalmente, c'è un approccio. Se(prev_calculated==0), eseguiamo il calcolo iniziale per tutte le barre. In seguito, per ogni nuovo tick (se 0 < prev_calculated < rates_total) eseguiamo calcoli del tipo for(int i=prev_calculated-1;i<rates_total;i++) solo per le ultime barre apparse.
Buona idea - proviamo e rispondiamo! Grazie!
 

Voglio ottenere il valore del timeframe del grafico corrente come una stringa. Lo scrivo così:

ENUM_TIMEFRAMES period1=Period();
string periodStr;
periodStr=PeriodStr(period1);

Il compilatore mi dice che 'PeriodStr' - la funzione non è definita...

Qual è il punto? Colleghi, per favore aiutatemi :-)

C'è una tale funzione nella Guida:

PeriodStr

Converte il valore dell'enumerazione ENUM_TIMEFRAMES in una stringa.

stringaPeriodStr(
int val// valore
)

Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - Документация по MQL5
 

Cari sviluppatori, per favore ditemi cos'è la chiamata ambigua a una funzione sovraccaricata (questo è ciò che il compilatore sta giurando):

'set' - chiamata ambigua a una funzione sovraccarica

class CA
  {
public:
   void set(int i,int j,long n){Print("перегрузка long");};
   void set(int i,int j,int n){Print("перегрузка int");};
  };

void OnStart()
  {
//---
   CA a;
   int Int=3;
   long Long=4;
   a.set(1,2,Int);
   a.set(1,2,Long);
  }

HH ho capito che se si sostituiscono le costanti nel primo e nel secondo parametro alla variabile di tipo int, allora le imprecazioni si fermano.

Ma non capisco la logica del compilatore, i primi due parametri sono gli stessi in tutti gli overload, nessun parametro predefinito.

Allora perché il compilatore giura, qual è l'ambiguità della chiamata?

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Типы char, short, int и long - Документация по MQL5
 
denkir:

Voglio ottenere il valore del timeframe del grafico corrente come una stringa. Lo scrivo così:

Il compilatore mi dice che 'PeriodStr' - la funzione non è definita...

Cosa c'è? Colleghi, per favore aiutatemi :-)

Vedete, il file di aiuto ha questa funzione:

PeriodStr

Converte il valore di enumerazione di ENUM_TIMEFRAMES in stringa.

stringaPeriodStr(
int val// valore
)

Strano, non ho trovato una tale funzione - PeriodStr - nel manuale
 
denkir:

Voglio ottenere il valore del timeframe del grafico corrente come una stringa. Lo scrivo così:

Il compilatore mi dice che 'PeriodStr' - la funzione non è definita...

Qual è il problema? Colleghi, per favore aiutatemi :-)

C'è una tale funzione nella Guida:

PeriodStr

Converte il valore dell'enumerazione ENUM_TIMEFRAMES in una stringa.

stringaPeriodStr(
int val// valore
)

Questo è un metodo di classe

https://www.mql5.com/ru/docs/standardlibrary/technicalindicators/cindicator

#include<IndicatoriIndicatori.mqh>