Errori, bug, domande - pagina 2280

 
void f( int = 0, ) {}

È corretto che compili senza errori?

 
Ilyas:

Vi siete imbattuti in una funzione di memoria in Windows

Subito dopo ArrayResize aggiungere

Questo avvia l'effettiva allocazione della memoria fisica in modo che questo non accada durante il test.


Ecco i risultati dal mio computer

Sì, funziona davvero.
Grazie.
Molto interessante. Non è chiaro però.
Dovrei sapere che per lavorare velocemente con la memoria dopo ArrayResize è necessario fare un'inizializzazione completa dell'array con ArrayInitialize o ArrayFill (funziona in entrambi i modi). ArrayInitialize è più semplice.

Ho provato a inizializzare ogni 4096 elementi dell'array. Ma non influisce sul miglioramento delle prestazioni di ArrayFill.

for (int i=0;i<size;i+=4096) arr[i]=0;
 
Nikolai Semko:

Sappiamo che per lavorare velocemente con la memoria dopo ArrayResize si dovrebbe fare l'inizializzazione completa dell'array con ArrayInitialize o ArrayFill (funziona in entrambi i modi). Con ArrayInitialize è più facile.

Deve aver fatto una conclusione sbagliata. Tutto funziona velocemente in ogni caso. È solo che nella variante "lenta" si misurava oltre al riempimento anche l'effettiva allocazione della memoria, perché ArrayResize è un'intenzione di allocare la memoria, non l'allocazione stessa.

 
fxsaber:

Avete tratto la conclusione sbagliata. Tutto funziona velocemente così com'è. È solo che nella versione "lenta" si misurava l'effettiva allocazione di memoria oltre al riempimento, perché ArrayResize è un'intenzione di allocare la memoria, non l'allocazione stessa.

Sì, hai ragione.

Grazie!
E mi sono anche sbagliato, quando ho detto che il collegamento ArrayInitialize + ArrayCopy ha funzionato più velocemente, perché ho riempito l'array con gli stessi valori che avevo riempito prima con ArrayFill. Il compilatore è semplicemente intelligente e non fa lo stesso lavoro due volte.
Se riempiamo l'array con altri valori, il risultato sarà diverso:

2018.09.06 12:10:36.602 TestArrayFill (EURUSD,H1)       Время заполнения через ArrayFill первая попытка= 299
2018.09.06 12:10:36.602 TestArrayFill (EURUSD,H1)       Время заполнения через ArrayInitialize + ArrayCopy = 425
2018.09.06 12:10:36.602 TestArrayFill (EURUSD,H1)       Время заполнения через ArrayFill вторая попытка = 78

Quindi ho fatto un casino. Mi dispiace.
Continuiamo ad usare ArrayFill in modo funzionante.

File:
 

Perché il mio paese di residenza è cambiato nel mio profilo?
Negli ultimi tre anni è stato il Canada. Non l'ho cambiato. E ora non posso cambiarlo.

Cioè il paese iniziale di residenza al momento della registrazione è per sempre. Anche se non vive in Russia ed è diventato residente o cittadino di un altro paese?

 
Fatemi sapere, affronterete questo problema o no?

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

Bug, bug, domande

fxsaber, 2018.09.06 09:31

Perché a volte succede questo? Il tester chiude le posizioni non sull'ultimo tick, ma sul penultimo tick. La situazione è su alcuni simboli personalizzati.

Se è necessario un replay, pronti a fornire.


Perché è importante? Sui simboli personalizzati con esecuzione in borsa, i mercati vengono eseguiti al Last Price. Per i simboli personalizzati, la storia dei tick è bid/ask, senza last. Pertanto, su tali simboli, il tester chiude le posizioni correnti sull'ultimo tick per ultimo zero. La soluzione è forzare last = (bid + ask) / 2 nell'ultimo tick. Tuttavia, ci sono situazioni in cui il Tester, per qualche ragione, chiude tutto non all'ultimo, ma al penultimo tick, dove ultimo è zero. Come risultato, abbiamo il seguente grafico


Guardate i risultati dell'ottimizzazione e vedete una quantità enorme di profitti/perdite. Non vi renderete conto che si tratta di un bug fino a quando non eseguirete un singolo test e guarderete la fine della storia del trading.

 
Nikolai Semko:

Perché il mio paese di residenza è cambiato nel mio profilo?
Negli ultimi tre anni è stato il Canada. Non l'ho cambiato. E ora non posso cambiarlo.

Cioè il paese iniziale di residenza al momento della registrazione è per sempre. Anche se non vive in Russia ed è diventato residente o cittadino di un altro paese?

Sei registrato come venditore dalla Russia. Se desiderate apportare modifiche ai dati di registrazione del venditore, siete i benvenuti

 
 
fxsaber:
Fatemi sapere se avete intenzione o meno di affrontare questo problema.
Ci occuperemo della questione
 
Marsel:

Sei registrato come venditore dalla Russia. Se vuoi apportare modifiche ai dati di registrazione del venditore, benvenuto

Dimmi dove sono nascoste queste impostazioni? Non riesco a trovarli. Non c'è nemmeno questa opzione nella SD.