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

 
Galim_V:

C'è una soluzione software semplice per il mio problema?

C'è!


 
Yevhenii Levchenko:

Sì!


Grazie per aver risposto. Sì, conosciamo il valore attuale dello swap. E ho bisogno del risultato del confronto con il valore di ieri.

 
Galim_V:

Grazie per aver risposto. Sì, sapremo il valore attuale dello swap. E ho bisogno del risultato del confronto con il valore di ieri.

Salva il valore di ieri in una variabile e confronta! :)

 
Yevhenii Levchenko:

Salva il valore di ieri in una variabile e confronta! :)

Quando si riavvia il terminale, viene salvato? O stai parlando della variabile globale del terminale?

 
Galim_V:

Quando si riavvia il terminale, sarà salvato? O stai parlando della variabile globale del terminale?

No, non lo farà. Per salvare, avete bisogno o di una variabile globale o di salvare in un file
 
Yevhenii Levchenko:
No, non lo faranno. Avete bisogno di una variabile globale o di salvare in un file per farli salvare.

Stavo facendo un pannello informativo, ma ho perso il codice sorgente. Nel fare ciò, ha evitato tutte le voci, ha usato le funzioni di informatore. Ho deciso di ripristinare tutto e aggiungere questo problema di swap. Ecco perché ho fatto la domanda. Lo swap non lascia tracce nella storia, che è scritta dal terminale stesso? Ma se non c'è altra opzione che scrivere, vorrei un suggerimento, dato che non ho lavorato con file e globale. Considerando che ho bisogno di confrontare 20 strumenti una volta al giorno. Grazie per il tempo.

 
Galim_V:

Stavo facendo un pannello informativo, ma ho perso il codice sorgente. Nel fare ciò, ha evitato tutte le voci, ha usato le funzioni di informatore. Ho deciso di ripristinare tutto e aggiungere questo problema di swap. Ecco perché ho fatto la domanda. Lo swap non lascia tracce nella storia, che è scritta dal terminale stesso? Ma se non c'è altra opzione che scrivere, vorrei un suggerimento, dato che non ho lavorato con file e globale. Considerando che ho bisogno di confrontare 20 strumenti una volta al giorno. Grazie per il tempo.

È più facile usare una variabile globale... I file sono più di una seccatura...
 

Finito l'indicatore su mt5 (tradotto da mt4). Ne ho scritto ieri. Ha funzionato bene per me, ma non così bene per il cliente. Da quanto ho capito, i problemi sono apparsi quando l'indicatore stava aggiungendo o rimuovendo altri indicatori programmaticamente. Do la colpa alla funzioneIndicatorRelease... Durante la deinizializzazione, gli indicatori (tranne quello corrente) vengono rimossi dal grafico tramite ChartIndicatorDelete, quindi rilasciano l'handle tramite IndicatorRelease. La guida afferma:

IndicatorRelease()

Удаляет хэндл индикатора и освобождает расчетную часть индикатора, если ею больше никто не пользуется.
Функция позволяет удалять хэндл индикатора, если он больше не нужен, и таким образом позволяет экономить память. Удаление хендла производится сразу, 
удаление расчетной части индикатора производится через некоторое небольшое время (если обращений к ней больше нет). 

Durante l'inizializzazione, le maniglie vengono create di nuovo. E al primo conteggio in OnCalculate, gli indicatori vengono aggiunti di nuovo al grafico. Ho aggiunto un ciclo vuoto in OnDeinit per 1000 passaggi per aggiungere un po' di ritardo. Non ho fiducia in questa soluzione. Ha funzionato bene per me prima (anche se il terminale si è bloccato una volta oggi), e il client ha iniziato a funzionare bene oggi (almeno per ora).

L'algoritmo su mt4 funziona bene (non si è mai bloccato). La differenza di mt5 è che qui gli indicatori sono aggiunti programmaticamente (e i valori calcolati degli indicatori devono essere costantemente copiati per poterli utilizzare). Mentre in mt4 copiano semplicemente i buffer per la visualizzazione (muwings e zigzags... come "aggiungere indicatori programmaticamente").

Sapete se il problema può essere legato alla cancellazione e alla ri-creazione degli handle (quando i parametri vengono cambiati, la deinizializzazione e l'inizializzazione si susseguono immediatamente...)? C'è un modo per controllare se c'è un manico di tale indicatore o no?

 

Ottengo ancora valori non normalizzati dopo la normalizzazione - MQL5

up    = NormalizeDouble((up == 0 ? 1 * point : up),_Digits);
down  = NormalizeDouble((down == 0 ? 1 * point : down),_Digits);
sum   = NormalizeDouble((sum == 0 ? 1 * point : sum),_Digits);
minus = NormalizeDouble((minus == 0 ? 1 * point : minus),_Digits);
if(index <= 65 && index >= 55) Print(index," ",up," ",down," ",sum," ",minus);

Più sfavorevole 1e-05, Cosa fare?

 

Si prega di consigliare come risolvere il problema di chiamare l'indicatore su MT5 windows 10 X64, lo sto facendo in questo modo:

#resource "\Indicators\\MyIndicator.ex5"

handle=iCustom(NULL,0,"\\\\MyIndicator");

Prima funzionava senza #resource, poi ha iniziato a funzionare solo con #resource, ora non funziona nulla, viene generato l'errore 4804