[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 172

 
100yan:
Chiede un valore intero, ma un array può anche essere dichiarato come variabile?!

Sai cos'è una variabile? È una cella della memoria che può essere cambiata. int è un tipo di variabile.

https://book.mql4.com/ru/basics/vars

https://book.mql4.com/ru/basics/types

 
Per testare un sistema di trading in MT4 su dati storici, ho bisogno di caricare un archivio di quotazioni, selezionare la coppia di valute di interesse, selezionare tutti i timeframe, compreso quello al minuto, e caricarlo. Non ci sono discrepanze nei grafici durante i test, ma c'è un problema che influenza significativamente i risultati dei test e dell'ottimizzazione. Per esempio, nel grafico H1 dopo la candela del 7 maggio 2010 c'è una candela dell'8 luglio 2010, cioè un gap di 1 mese. Il download ripetuto dell'archivio delle citazioni non risolve la situazione. Ho più che sufficiente spazio libero sul mio disco rigido per scaricare le citazioni.

La domanda: come posso scaricare correttamente tutte le quotazioni senza gap temporali su MT4?
 
polsvv:

Potete dirmi qual è il significato di questo schifo nei registri? Come posso evitarlo? L'Expert Advisor fa trading con questo indicatore, dopo un errore il trade si blocca finché non si riavvia il terminale perché riavviando l'Expert Advisor potrebbe bloccarsi di nuovo.

22:39:53 +ZigZag_Levels CLJ1,M5: uninit reason 3
22:39:53 Zigzag CLJ1,M5: uninit reason 1

22:39:53 Zigzag CLJ1,M5: rimosso

Forse è perché sto usando il terminale su un server remoto e sul mio computer allo stesso tempo?

https://docs.mql4.com/ru/constants/uninit controlla i motivi della deinizializzazione, sembra che tu stia cambiando periodo/simbolo grafico con l'EA in esecuzione, da qui i crash.
 
wizmon:
Domanda: come scaricare correttamente tutte le quotazioni senza alcun intervallo di tempo in MT4?

+ prima del caricamento (se avete tali fori), è consigliabile cancellare la storia esistente

+ impostare la profondità della storia nelle impostazioni almeno per 10000000 barre

+ Dopo aver caricato la storia è necessario cliccare nuovamente sul pulsante "Load" e confermare il ricalcolo di tutti i TF.

 
polsvv:

L'esperto commercia usando questo indicatore, dopo un errore il commercio si ferma

Probabilmente un codice in loop.
 
polsvv:

Potete dirmi qual è il significato di questo schifo nei registri? Come posso evitarlo? L'Expert Advisor fa trading con questo indicatore, dopo un errore il trade si blocca finché non si riavvia il terminale perché riavviando l'Expert Advisor potrebbe bloccarsi di nuovo.

22:39:53 +ZigZag_Levels CLJ1,M5: uninit reason 3
22:39:53 Zigzag CLJ1,M5: uninit reason 1

22:39:53 Zigzag CLJ1,M5: rimosso

Forse è perché uso il terminale sul server remoto e sul mio PC allo stesso tempo?

Non credo che il codice sia in loop. Cosa significa comunque uninit reason 1 o 3? Avete una decodifica?

L'EA ha fatto trading normalmente per 2 giorni.

Ancora una volta vorrei ripetere la domanda sui terminali.

Se ho un terminale con EA su un server remoto ed eseguo lo stesso terminale sul mio PC, ci faccio i miei affari. Li ottimizzo e così via. Vorrei ricordare che l'EA non si trova nella finestra di uno strumento di trading nel terminale domestico perché è in esecuzione localmente sul mio computer (remoto) e non sul server del broker.

Quindi l'EA può fallire se è in esecuzione in un terminale, che è in esecuzione 2 volte allo stesso tempo?

 
polsvv:

Non credo che il codice sia in loop. Cosa significa uninit ragione 1 o 3? C'è una decodifica?

leggi la mia risposta sopra
 
polsvv:

Non credo che il codice sia in loop. Cosa significa uninit ragione 1 o 3? Qualche decodifica?


RAGIONE_REMOVE1Il programma viene rimosso dal grafico
MOTIVO_CAMBIAMENTO GRAFICO3Il simbolo del grafico o il periodo è stato cambiato
 
alsu:
https://docs.mql4.com/ru/constants/uninit controlla i motivi della deinizializzazione, sembra che tu stia cambiando il grafico periodo/simbolo con l'EA in esecuzione, da qui i crash.
Sì, a quanto pare questo è il motivo. Grazie per il suggerimento!
 

Salve.

Smontando e modificando l'indicatore Laguerre, non funziona molto bene. Per favore aiutatemi con il codice.

Alla fine Laguerre ha iniziato il suo codice.

i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
for(int a=0; a<Bars; a++ )
{if(LRSI[i]>0.45)
   LastLag++;
  
  }
 

Da quanto ho capito, la linea dell'indicatore stesso si chiama LRSI.

Quindi non posso assegnargli un valore di contatore. Per esempio, quando la linea attraversa 0,45 verso l'alto, LastLag viene aggiunto di uno.

Finora, l'unico problema è l'assegnazione del valore del contatore. Posso scrivere l'intera idea più tardi. Grazie.

File:
laguerre.mq4  4 kb