Servicedesk. Reclami, suggerimenti. - pagina 6

 
Ilya Malev:
Non funzionerà comunque in un ciclo, poiché tutti gli indicatori hanno lo stesso thread, con o senza timer. O non capisco la tua idea.
Diciamo che c'è un indicatore1. Chiama l'indicatore2. L'indicatore2 manca di dati su alcuni simboli/TF. Invia questi dati all'indicatore1 e ha scaricato i dati richiesti nel timer. Dopo aver ricevuto la conferma che tutti i dati richiesti sono stati scaricati, proviamo di nuovo a scaricare i dati dall'indicatore2 e non appena tutti i dati richiesti sono disponibili, calcoliamo l'indicatore1.
 
Alexey Kozitsyn:

Per scaricare e controllare la storia, simile a MT5: https://www.mql5.com/ru/docs/series/timeseries_access

Ripeto la domanda, sapete come ottenere questa data per mezzo del vecchio mql4?

Lo faccio. Tempo[Bars-1].
 
Alexey Kozitsyn:

... Trasferibilità dei programmi da MT4 a MT5 e viceversa.

Da 4 a 5 - comprensibile. Il contrario - non così tanto.

 
Alexey Kozitsyn:
Diciamo che c'è un indicatore1. Chiama l'indicatore2. L'indicatore2 manca di alcuni dati su alcuni simboli/TF. Invia questi dati all'indicatore1 e ha scaricato i dati richiesti nel timer. Dopo aver ricevuto la conferma che tutti i dati richiesti sono stati scaricati, proviamo di nuovo a scaricare i dati dall'indicatore2 e non appena tutti i dati richiesti sono disponibili, calcoliamo l'indicatore1.

La memoria è allocata 5 volte. Sotto lo spazio degli indirizzi di comando per la stessa cosa.

Cosa stai piangendo sul rilascio aggressivo della memoria dello spazio degli indirizzi dei dati? Almeno le estensioni sono presenti lì.

 
Vasyl Nosal:
Aspettando l'arbitrato per un tempo molto lungo. Terza settimana (mi hanno chiesto di aspettare la seconda settimana, ok).
O moderatori onnipotenti, per favore girate gli occhi verso il problema:)
 
Алексей Тарабанов:
Lo so. Tempo[Bars-1].

Vi sbagliate. Ho già scritto qui sotto che la costruzione che hai dato darà la prima data non sul server, ma sul grafico.

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

Service Desk. Reclami, suggerimenti.

Alexey Kozitsyn, 2015.10.30 16:42

Usando iTime( _Symbol, period, Bars( _Symbol, period )-1 ) possiamo ottenere il tempo della prima candela disponibile sul grafico.

Ma per ottenere il tempo della prima candela sul server non ho deciso quale costruzione usare.

Tutto viene fatto semplicemente usando SeriesInfoInteger: SeriesInfoInteger( _Symbol, period,SERIES_SERVER_FIRSTDATE);


 
Алексей Тарабанов:

La memoria è allocata 5 volte. Sotto lo spazio degli indirizzi di comando per la stessa cosa.

Cosa stai piangendo sul rilascio aggressivo della memoria dello spazio degli indirizzi dei dati? Almeno lì ci sono delle estensioni.

Ha qualcosa di concreto da dire?
 

In generale, c'è molto probabilmente una soluzione normale al problema iCustom che ho menzionato.

Se MT5 ha già caricato l'handle dell'indicatore con i parametri specificati per questo simbolo/tf, allora, come ho capito, quando lo si chiama da qualsiasi altro posto, il calcolo dello stesso indicatore non viene eseguito di nuovo, ma viene utilizzato l'handle esistente.

E siccome al primo "livello di annidamento" prima della chiamata di iCustom, la chiamata di OnTimer funziona, possiamo aspettare un calcolo sequenziale di tutti gli indicatori, partendo da quelli più elementari, poi quelli che li utilizzano, e così via fino a qualsiasi livello di annidamento, creando i loro handle solo quando tutti gli indicatori e le serie temporali già utilizzati in essi sono stati calcolati. Allora la necessità del pulsante "Aggiorna" probabilmente scompare. Vorrei averlo indovinato una settimana fa...

P.S. Quando si usa OnTimer, si noti che i buffer degli indicatori non saranno visualizzati sul grafico e sulla finestra dei dati finché OnCalculate, chiamato dal terminale, non restituisce un valore diverso da 0. E il terminale chiama OnCalculate solo una volta, subito dopo Inite, quando le serie temporali e gli indicatori non sono ancora stati calcolati. Quando OnCalculate è chiamato da Ontimer, non importa quale valore restituisce, se il primo ritorno è 0, allora l'indicatore non sarà visualizzato sul grafico fino al prossimo tick o fino a quando non si preme "Refresh".

 
Alexey Kozitsyn:

Il secondo problema è di tipo simile. L'indicatore è su TF MN1. Sto cercando di ricevere dati attraverso la funzione SeriesInfoInteger() dal TF M5. La funzione restituisce valori corretti per un po' di tempo, e poi smette di farlo e comincia a restituire degli zeri

Ho appena visto il tuo problema nell'indicatore MT5, senza lasciare un ciclo OnTimer, controllo la serie temporale su un altro simbolo/periodo (non quello attuale) - la funzione dice che è costruita e dà il numero corretto di barre. Subito dopo chiamo un'altra funzione per costruire l'indicatore - all'interno di questa funzione, chiamata dalla stessa chiamata di OnTimer, la serie temporale riesce ad essere scaricata e il SeriesInfoInteger ritorna zero. Ho dovuto incorporare un ulteriore controllo ciclico, in modo che tutto si costruisca da solo senza tic in entrata.
 
Vasyl Nosal:
O moderatori onnipotenti, per favore guardate il problema:)
Presto sarà la quarta settimana dell'arbitrato...da continuare:)))))
Motivazione: