Errori, bug, domande - pagina 2587

 
elibrarius:
Penso che sia più facile leggere le barre dai file.

Ti ho scritto una soluzione in una riga - aggiungi la data del test a questa condizione e prova nel tester senza problemi, le prestazioni diminuiranno almeno

o meglio ancora, fate come suggerisce admin - il file ovviamente non è un problema, ma c'è una grande tentazione di sbirciare nei posti sbagliati con il neuronet - è così che di solito ho finito per farlo ))))

 
Roman:

Il codice usa lock_guard
Ma se viene commentato, non c'è nessun cambiamento
.

Tuttavia, ha iniziato a perdere, beh, è chiaro perché, a causa della dimensione sbagliata di
Tornerò dalle vacanze, se non è troppo disturbo, studierò la questione. Ma logicamente il bug non è in mql, ma nel tuo codice. A proposito, solo per divertimento, e se la libreria funzionasse con quale codifica? Sei sicuro che utf-16, ma cosa succede se è utf-8, dopo tutto, il più comune.
 
Igor Makanu:

Ti ho scritto una soluzione in una riga - aggiungi la data del test a questa condizione e prova nel tester senza problemi, le prestazioni caleranno almeno

O meglio ancora, segui il suggerimento di admin - il file non sarà un problema, ma potresti essere tentato di usare neuronet per sbirciare in posti in cui non dovresti - è così che sono finito di solito )))

L'ho controllato - non è servito.

E non dovrebbe. Dopo tutto, secondo l'articolo che l'admin ha citato:
Laquantità minima di storia da scaricare dal server di trading per i timeframe D1 e inferiori è un anno.

E le 100000 barre M15 che ho richiesto sono circa 3 anni. Per il primo anno le barre sono copiate, sono 37k barre, e oltre questo non sono semplicemente nel tester, aspettare non aiuterà.

 
elibrarius:

Controllato - non ha aiutato.

Non dovrebbe esserlo. Dopo tutto, secondo l'articolo citato dall'amministratore:
Laquantità minima di storia quando si scarica dal server di trading per i timeframe D1 e inferiori è di un anno.

E le 100000 barre M15 che ho richiesto sono circa 3 anni. Per il primo anno le barre sono copiate, sono 37k barre, e oltre questo non sono semplicemente nel tester, aspettare non aiuterà.

funziona per me, mettere test 2000 - 2019 su M15, codice esperto:

input int InpBars = 100000;

void OnTick()
{  static bool print_once = true;
   int bars = Bars(_Symbol, _Period);
   if(bars < InpBars) return;

   if(print_once)
   {  Print("OK - ", TimeCurrent());
      print_once = false; }

}

Ce l'ho nel registro:

2019.10.04 22:15:19.567 Core 1 EURUSD,M15: test di Experts\IgorM\tst.ex5 da 2000.01.01 00:00 a 2019.10.03 00:00 iniziato con ingressi:

2019.10.04 22:15:19.567 Core 1 InpBars=100000

2019.10.04 22:15:19.567 Core 1 2003.01.16 19:30:00 OK - 2003.01.16 19:30:00

2019.10.04 22:15:19.567 Core 1 saldo finale 10000.00 USD

aggiungere una data alla condizione per iniziare a testare e addestrare il NS, o fare come ha suggerito admin
 
Igor Makanu:

Ho fatto funzionare tutto, ho messo il test 2000 - 2019 su M15, codice esperto:

l'ho trovato nel registro:

2019.10.04 22:15:19.567 Core 1 EURUSD,M15: test di Experts\IgorM\tst.ex5 da 2000.01.01 00:00 a 2019.10.03 00:00 iniziato con ingressi:

2019.10.04 22:15:19.567 Core 1 InpBars=100000

2019.10.04 22:15:19.567 Core 1 2003.01.16 19:30:00 OK - 2003.01.16 19:30:00

2019.10.04 22:15:19.567 Core 1 saldo finale 10000.00 USD

aggiungere la data da cui si desidera iniziare il test nella condizione e insegnare il NS, o fare come suggerito da admin

Ora capisco la tua idea)

Cioè non dovreste eseguire il test per gli ultimi 2 mesi, ma per 3 anni, saltare tutti questi 3 anni in OnTick e iniziare il calcolo solo sugli ultimi 2 mesi.

Sì - questa è la soluzione più semplice. Grazie!

 
elibrarius:

E le 100.000 barre M15 che ho richiesto sono circa 3 anni. Per il primo anno le barre sono copiate, sono 37.000 barre, e poi non sono semplicemente nel tester, aspettare non servirà.

Sarebbe più veloce lavorare con il tuo file di cronologia in modalità ottimizzatore"Calcoli matematici".

 
elibrarius:

Ora capisco la tua idea)

Cioè il test non dovrebbe essere eseguito per gli ultimi 2 mesi, ma per 3 anni, saltare tutti questi 3 anni in OnTick e iniziare i calcoli solo sugli ultimi 2 mesi.

Sì - questa è la soluzione più semplice. Grazie!

Aggiungere il tempo alla condizione

input int InpBars = 100000;
input datetime InpDataTest = D'2015.01.01 00:00'; 
void OnTick()
{  static bool print_once = true;
   int bars = Bars(_Symbol, _Period);
   datetime t = TimeCurrent();
   if(bars < InpBars || t < InpDataTest  ) return;

   if(print_once)
   {  Print("OK, TimeCurrent() =  ", t);
      print_once = false; }

}

2019.10.04 22:36:42.729 Core 1 EURUSD,M15: test di esperti\IgorM\tst.ex5 da 2000.01.01 00:00 a 2019.10.03 00:00 iniziato con ingressi:

2019.10.04 22:36:42.729 Core 1 InpBars=100000

2019.10.04 22:36:42.729 Core 1 InpDataTest=1420070400

2019.10.04 22:36:42.729 Core 1 2015.01.02 09:00:00 OK, TimeCurrent()= 2015.01.02 09:00:00

2019.10.04 22:36:43.041 Core 1 saldo finale 10000.00 USD



 
Igor Makanu:

aggiungere il tempo alla condizione

2019.10.04 22:36:42.729 Core 1 EURUSD,M15: test di esperti\IgorM\tst.ex5 da 2000.01.01 00:00 a 2019.10.03 00:00 iniziato con ingressi:

2019.10.04 22:36:42.729 Core 1 InpBars=100000

2019.10.04 22:36:42.729 Core 1 InpDataTest=1420070400

2019.10.04 22:36:42.729 Core 1 2015.01.02 09:00:00 OK, TimeCurrent() = 2015.01.02 09:00:00

2019.10.04 22:36:43.041 Core 1 saldo finale 10000.00 USD



Sì, grazie. Tutto funziona.

 
Aleksey Vyazmikin:

Sarebbe più veloce lavorare con il tuo file di storia nella modalità"Calcoli matematici" dell'ottimizzatore.

Questo è se siete puramente nella NS stessa e guardate il risultato.

Sto testando il commercio ora, in modo che sia i costi che gli spread siano presi in considerazione. Il risultato di questo è che il robot di trading è pronto per essere utilizzato nel tester e può essere collegato al trading reale.

 
elibrarius:

Beh, questo se siete puramente nella NS stessa e guardate il risultato.

Sto testando il commercio ora, in modo che sia i costi che gli spread siano presi in considerazione. Ecco perché sono interessato a un robot già pronto che posso guardare nel tester e collegare al trading reale.

Ancora non capisco - i vostri predittori hanno bisogno di una maggiore profondità di calcolo? Ho davvero bisogno di uno - MA nei giorni :) Sto iniziando i test con un anno di anticipo e il commercio prima di quella data può essere vietato...