Errori, bug, domande - pagina 984

 

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Bug, bug, domande

tol64, 2013.05.05 19:21

L'ho capito, ma non ho risolto il mio problema. Non l'ho ancora risolto. Si verifica raramente e nei fine settimana (quando i tick non arrivano) quando si cambia timeframes/simboli. La serie dell'indicatore a volte non viene visualizzata nel navigatore della finestra dei dati o sul grafico, ma è possibile ottenere i dati programmaticamente. Sembra così:

...

//---

Ho pensato prima che se la sottofinestra non appare e anche nel navigatore della finestra dei dati, significa che i buffer sono vuoti(empty_value) e controllando può chiamare OnCalculate() per aggiornare. Ma non ha funzionato perché i meloni sono nei buffer.

È un bug?

Manualmente si risolve rapidamente cambiando i tempi. Naturalmente vorrei non doverlo spiegare agli utenti, ma risolverlo ordinatamente in modo programmatico. Qualcuno ha incontrato un tale problema?

Se non è un bug, allora abbiamo bisogno di un modo per determinare che le serie grafiche dell'indicatore non vengono visualizzate nella sottofinestra (e anche nella finestra Dati ). Come farlo non è chiaro, dato che è possibile ottenerli programmaticamente. Poi, dopo aver determinato che non c'è niente nella sottofinestra, chiamiamo OnCalculate() nel timer per ricalcolare azzerando la variabile prev_calculated.

Quanto segue è scritto nell'Aiuto:

Per fare 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 sui prezzi sono stati cambiati (è stata pompata 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.

Nota: se la funzioneOnCalculate restituisce zero, i valori dell'indicatore non vengono visualizzati nella DataWindow del terminale client.

Nel mio caso tutti i calcoli sono stati eseguiti (possono essere avviati solo dopo tutti i controlli) e OnCalculate() restituisce un valore non nullo, quindi i dati possono essere ottenuti programmaticamente. Ma questo non è coerente con ciò che è scritto nella Guida.


 
Domanda per la direzione. Avete un server demo per MT5, dove 1 lotto = 10 000 (non 100 000 USD), lotto minimo = 0,01, passo = 0,01? Vorrei ottimizzare il mio EA per i conti in centesimi. Su quei conti MT5 cent che ho trovato dai broker min. lot = 0.1, mentre io ne sto cercando uno con 0.01.
 

Nel codice sorgente della libreria standard ho trovato la seguente costruzione

//+------------------------------------------------------------------+
//| Costruttore |
//+------------------------------------------------------------------+
void CMoneyFixedLot::CMoneyFixedLot(void) : m_lots(0.1)
{

}

Che cos'è questo? :)

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
ns_k:

Nel codice sorgente della libreria standard ho trovato la seguente costruzione

//+------------------------------------------------------------------+
//| Costruttore |
//+------------------------------------------------------------------+
void CMoneyFixedLot::CMoneyFixedLot(void) : m_lots(0.1)
{

}

Che cos'è questo? :)

Cosa vuoi dire?
 
uncleVic:
Cosa vuoi dire?
Quello che fa, lo capisco. Piuttosto, voglio dire dove nel documento si dice di usare questo tipo di sintassi, come si chiama, per esempio
 
ns_k:
Quello che fa, lo capisco. Piuttosto, voglio dire dove nel documento si dice di usare questo tipo di sintassi, come si chiama, per esempio
è
 
uncleVic:
ci
trovato, grazie!
 

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Bug, bug, domande

tol64, 2013.05.06 02:38

...

Nel mio caso, tutti i calcoli sono stati fatti (è possibile farli solo dopo tutti i controlli) e OnCalculate() restituisce un valore non zero, quindi i dati possono essere ottenuti programmaticamente. Ma questo non è d'accordo con ciò che è scritto nella Guida.

Applicazione #740856.

Quindi, c'è qualche altra ragione per cui i valori dell'indicatore potrebbero non essere visualizzati, anche se i buffer sono stati riempiti e OnCalculate ha restituito un valore non nullo.


 
Scoperto accidentalmente. Se fai doppio clic su uno spazio vuoto nella finestra dell'ordine, il grafico in tick viene nascosto. È un bug o una caratteristica? )
 
ns_k:
Scoperto accidentalmente. Se fai doppio clic su uno spazio vuoto nella finestra dell'ordine, il grafico in tick viene nascosto. È un bug o una caratteristica? )
Un bug. Naturalmente, sarebbe meglio avere un pulsante per trovare questa funzione non per caso.