una strategia di trading basata sulla teoria dell'onda di Elliott - pagina 274

 
C'è qualcosa che non va nel server... È duplicato nell'invio...
 
Oh caro... devo aver premuto di nuovo il pulsante sbagliato. :о/
PS: Questi due post possono probabilmente essere cancellati... una specie di guasto
 
Beh, MATLAB stesso pensa davvero di poter generare codice C :).
 
Se avete scritto una "istruzione" per un intervallo di storia, potete usare anche il tester. Ma il tester può gestire Expert Advisor+Expert o Expert Advisor+Script? Ho il sospetto che non sarà così. <br / translate="no">.


Naturalmente, il tester non sarà in grado di gestire il bind. Non è costruito per questo. Immagino che per usare la lettura da file nel tester, si debba anche lavorare molto.

Tuttavia, non è necessario testare la mappatura nel tester. Nel tester i tick sono generati dopo che il ciclo di calcolo è completato, quindi non importa se il programma sta contando 7 ore o 7 millisecondi. Cosa non si può dire dell'utente che vuole ottenere i risultati vivi :-) Ecco perché per i test non hai bisogno di un bundle, devi solo combinarlo in un unico Expert Advisor. Fortunatamente questa connessione, così come la divisione, è abbastanza elementare.

Ma c'è un altro problema che esiste sia per il bundle che per il file di trasferimento. In entrambi i casi il tester produce risultati "prima dell'arrivo" del prossimo tick, come se il calcolo fosse istantaneo. Questa è una trappola che rende il test del tester inutile e fuorviante. In realtà, i risultati ottenuti su un certo set di dati saranno disponibili all'Expert Advisor solo dopo che il calcolo è stato completato, cioè dopo circa 2000 tick. Oppure, se per "ticks" intendiamo barre di minuti, dopo 400 ticks, che non sono pochi.

Questi risultati saranno ancora rilevanti? Qual è la portata della tua previsione, Sergey, e quale parte di essa sarà mangiata da questo ritardo?
 
?
 
a Candid

<br/ translate="no"> Beh, MATLAB stesso pensa davvero di poter generare codice C :).


Almeno la documentazione dice che può, ma non l'ho ancora provato.

a Yurixx


Questi risultati saranno ancora rilevanti? Qual è il raggio d'azione della tua previsione, Sergey, e quanto di esso sarà consumato da questo ritardo?


Il tempo per calcolare il modello semplificato in MathCAD richiede circa 10-30 minuti a seconda della lunghezza del canale. Calcola un livello più probabile, fino al quale il prezzo può andare dal livello di prezzo corrente per un certo tempo previsto con variazioni da 3 ore a 1,5 settimane. I risultati dei test di previsione sono abbastanza buoni.
 
Naturalmente, il tester non sarà in grado di gestirlo. Non è progettato per questo. Penso che il tester dovrà anche fare attenzione ad usare la lettura dei file.

Una volta stavo per farlo in questo modo, e ho anche abbozzato una variante del codice. Ma poi ho cambiato idea, quindi il codice non è stato testato a fondo. Ed è anche destinato a risolvere problemi particolari. Ma può essere utile come seme per le riflessioni.
int start() { if (NextRead && !FileIsEnding(handle)) { T = FileReadInteger(handle,LONG_VALUE); P = FileReadDouble(handle,DOUBLE_VALUE); //Print(TimeToStr(T)); NextRead = false; } if (Time[1] >= T) { while(Time[1] != T && !FileIsEnding(handle) { T = FileReadInteger(handle,LONG_VALUE); P = FileReadDouble(handle,DOUBLE_VALUE); } if (Time[1] == T) { Price[1] = P; DataCnt++; } NextRead = true; }


Una piccola nota: tale indicatore può essere testato solo in modalità di visualizzazione.

Tuttavia, non c'è bisogno di testare il bind nel tester. Il tester genera i tick dopo che il ciclo di calcolo è stato completato, quindi non gli importa se il programma conta 7 ore o 7 millisecondi. Cosa non si può dire dell'utente che vuole ottenere i risultati vivi :-) Ecco perché per i test non hai bisogno di un bundle, devi solo combinarlo in un unico Expert Advisor. È abbastanza elementare, proprio come dividere.

C'è una sfumatura qui. Supponiamo che, dopo aver ricevuto il risultato dell'esecuzione del tester, un utente decida di provare un'altra tattica. Oppure ottimizzano i parametri che non sono rilevanti per il calcolo. Se ha un file, lo farà subito, se non ha un file, ci metterà molto tempo. Quindi, con questi tempi di calcolo, bisogna pensare molto attentamente a cosa scrivere nel file.
Ma c'è un altro problema che esiste sia per il bundle che per il file di trasferimento. In entrambi i casi nel tester i risultati sono ottenuti "prima dell'arrivo" del prossimo tick, come se il calcolo fosse istantaneo.

Dipende da cosa e come calcolare. Ma qui l'utente deve pensare. Ma l'avvertimento è certamente molto appropriato.

 
...
 
-
 
a Candid

Tuttavia, se usate lo script per chiamare il calcolo pesante dall'indicatore, i nuovi dati lo fermeranno o meno. I nuovi dati lo fermeranno o no? Non ho ancora implementato nulla in MT, ma voglio saperlo in anticipo. :о)

<br / translate="no"> C'è una sfumatura qui. Supponiamo che l'utente decida di provare una tattica diversa dopo aver ricevuto il risultato dell'esecuzione del tester. Oppure ottimizzare i parametri che non sono legati al calcolo. Se ha un file, lo farà subito, se non ha un file, ci metterà molto tempo. Quindi, con questi tempi di calcolo, bisogna pensare molto attentamente a cosa scrivere nel file.


L'idea è interessante, ma per me, per esempio, non è così importante, perché non ci sono parametri che possono influenzare il calcolo successivo. O meglio, ci sono dei parametri, ma sono interconnessi e il calcolo del valore di uno implica il calcolo del successivo, cioè si definiscono a vicenda.