Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Sono lontano dall'essere un esperto, quindi mi scuso in anticipo.
Sto scrivendo un EA.
Il compito:
1) Utilizzare diversi indicatori. Uno stesso indicatore può essere usato con diverse impostazioni (periodi) - come farli lavorare in parallelo, per ridurre il tempo di ricezione dei segnali?
2) Parallelamente alla ricezione dei segnali dagli indicatori, eseguire un controllo costante e chiudere le posizioni redditizie o perdenti. Inoltre, abbiamo molte posizioni aperte, quindi questo processo dovrebbe essere parallelizzato in parti. Per esempio, possiamo controllare 1000 ordini in 3 o 4 thread.
3) Parallelamente ai processi di cui sopra, utilizzare i segnali ricevuti dagli indicatori al punto 1 per comprare o vendere.
E la cosa più interessante = come parallelizzare tutti questi compiti in modo che il tester sia disponibile e le ottimizzazioni nel tester siano possibili?
Indica la strada, preferibilmente con esempi. Grazie in anticipo.
Sono lontano dall'essere un esperto, quindi mi scuso in anticipo.
Compito:
1) Utilizzare diversi indicatori. Uno stesso indicatore può essere utilizzato con diverse impostazioni (periodi) - come farli lavorare in parallelo, per ridurre il tempo di ricezione dei segnali.
2) Parallelamente alla ricezione dei segnali dagli indicatori, eseguire un controllo costante e la chiusura delle posizioni redditizie o perdenti. Inoltre, abbiamo molte posizioni aperte, quindi questo processo dovrebbe essere parallelizzato in parti. Per esempio, possiamo controllare 1000 ordini in 3 o 4 thread.
3) Parallelamente ai processi di cui sopra, utilizzare i segnali ricevuti dagli indicatori al punto 1 per comprare o vendere.
La cosa più interessante è come parallelizzare tutti questi compiti in modo che il tester sia disponibile e siano possibili ottimizzazioni nel tester.
Indica la strada, preferibilmente con esempi. Grazie in anticipo.
Avete mai aperto il terminale? In generale, il tester e l'ottimizzatore sono sempre disponibili in parallelo con il trading sul conto.
Mi chiedo quanto tempo ci voglia per ricevere i segnali dagli indicatori se c'è la questione della necessità di metterli in parallelo.
Avete aperto il terminale almeno una volta? Il tester e l'ottimizzatore sono sempre disponibili in parallelo con il trading sul conto.
Mi chiedo quanto tempo ci voglia per ricevere i segnali dagli indicatori, se c'è qualche dubbio sulla necessità di parallelizzarli?
1) Utilizzare diversi indicatori. Uno stesso indicatore può essere usato con diverse impostazioni (periodi) - come farli lavorare in parallelo, per ridurre il tempo di ottenere segnali?
2) Parallelamente alla ricezione dei segnali dagli indicatori, eseguire un controllo costante e chiudere le posizioni redditizie o perdenti. Inoltre, abbiamo molte posizioni aperte, quindi questo processo dovrebbe essere parallelizzato in parti. Per esempio, possiamo controllare 1000 ordini in 3 o 4 thread.
3) Parallelamente ai processi di cui sopra, utilizzare i segnali ricevuti dagli indicatori al punto 1 per comprare o vendere.
Gli indicatori lanciati su un simbolo lavorano in un unico flusso. Ma se sono scritti bene, non ci sarà alcun ritardo (sarà contato in millisecondi).
Ma tutte le operazioni di trading possono essere parallelizzate utilizzando Expert Advisors / script aggiuntivi. Chiamateli dall'EA principale, se necessario, o teneteli sempre in funzione. Un esempio di implementazione può essere trovato in questo articolo. Oppure usare OrderSend asincrono, ma in questo caso sarà un po' più difficile da controllare.
E la cosa più interessante = come parallelizzare tutti questi compiti in modo che il tester e l'ottimizzazione nel tester siano disponibili?
Non avete bisogno di tutto questo per il tester, funziona in modo sincrono e non salta i tick. Fare 2 varianti - per il tester e per l'online (if ( IsTesting() ).
Gli indicatori che girano sullo stesso strumento girano tutti nello stesso thread. Ma se li scrivete correttamente, non ci sarà alcun ritardo (sarà contato in millisecondi).
Ma tutte le operazioni di trading possono essere parallelizzate utilizzando Expert Advisors / script aggiuntivi. Chiamateli dall'EA principale, se necessario, o teneteli sempre in funzione. Un esempio di implementazione può essere trovato in questo articolo. Oppure, potete usare OrderSend asincrono, ma in questo caso, il controllo sarà un po' più difficile.
Per il tester tutto questo non è necessario, funziona in modo sincrono e non salta i tick. Fare 2 varianti - per tester e per online (if ( IsTesting() ).
Gli indicatori che girano su uno strumento lavorano tutti in un thread. Ma se li scrivete bene, non ci sarà alcun ritardo (sarà calcolato in millisecondi).
--- Non capisco. Non ho intenzione di scrivere i miei indicatori. Sto usando gli indicatori OEM. E il punto è che voglio usarli in parallelo per ridurre il tempo di risposta...
Non avete bisogno di tutto questo per il tester, funziona in modo sincrono e non salta i tick. Fare 2 varianti - per tester e per online (if ( IsTesting() ).
---- Non capisco affatto. Chi non ne ha bisogno? Funziona in modo sincrono --- ma per me ha bisogno del viceversa, per tenere conto della mia asincronia... Cosa diavolo sono due varianti? Ho una variante del mio EA e voglio eseguirla nel tester, ma voglio parallelizzare i miei processi e mostrarla nel tester.
A causa del fatto che tutto funziona in modo sequenziale, comincio ad avere dei drawdown.
--- Non capisco. Non ho intenzione di scrivere i miei indicatori. Sto usando quelli standard. E il punto è che voglio usarli in parallelo per ridurre il tempo di risposta...
Avete misurato il tempo di risposta? Perderete di più con il parallelismo.
---- Non lo capisco affatto. Chi non lo vuole? Funziona in sincronia --- ma ho bisogno che tenga conto della mia asincronia... Cosa diavolo sono le due varianti? Ho una variante del mio EA e voglio eseguirla nel tester, ma voglio parallelizzare i miei processi e mostrarla nel tester.
Una EA:
Perché testare la parallelizzazione nello Strategy Tester?
A causa del fatto che tutto viene eseguito in modo sequenziale, sto iniziando ad avere dei drawdown, e sto avendo un sacco di drawdown.
Distribuire l'invio di ordini di compravendita o usare OrderSendAsync
Se hai bisogno di chiudere un mucchio di operazioni, puoi aprire un grande contatore, bloccare un profitto e poi chiudere con calma OrderCloseBy uno sull'altro.Distribuire l'invio di ordini di compravendita o usare OrderSendAsync
quindi non si tratta solo dell'invio dell'ordine, ci sono un sacco di altri controlli che vengono fatti. Ma vengono tutti accodati finché una funzione non finisce, l'altra non viene eseguita ....
L'ho già descritto nella dichiarazione del problema. Ed è un compito complesso. DLL o chat o altro - quello che mi interessa è lo scenario in cui posso mettere in parallelo questi compiti e quindi eseguirli nel tester per capire cosa c'è...
Quindi non è solo l'invio del mandato, ci sono un sacco di altri controlli che vengono fatti. Ma tutti sono accodati fino alla fine di una funzione, l'altra non viene eseguita ....
L'ho descritto nei termini del problema. Ed è un compito complesso. DLL o chat o qualsiasi altra cosa - quello che mi interessa è lo scenario in cui posso parallelizzare questi compiti e tenerli in esecuzione nel tester per vedere cosa c'è...
E quanto tempo prezioso si perde e quali sono le conseguenze? E quale sarebbe il profitto se non ci fosse una "perdita"?
E quanto tempo prezioso state perdendo e quali sono le conseguenze? E quale sarebbe il profitto se non ci fosse una "perdita"?
Mi ci vogliono 5 giorni per eseguire questa strategia nel tester con 24 core a mia disposizione. E solo un nucleo funziona. Per non parlare del fatto che il log, uno stupido log di cui nessuno ha bisogno durante questo periodo può gonfiarsi fino a terabyte o due. E tutto questo senza ottimizzazioni. E questo stupido registro non può essere disabilitato in alcun modo...
Come pensi che se accelerassi il processo diciamo - 4 programmi, ognuno sul suo nucleo - un aumento di questo punto 4 volte. Più un processo separato per la chiusura di 1000 trade, diciamo, o la suddivisione di questo processo in 5 o 10 thread - un aumento di 10 volte. Più un processo separato per l'apertura di posizioni tramite segnali ...
Penso che più e più volte ...
Ma ogni millisecondo + ritardo al broker + ritardo dal broker allo scambio (se non è una cucina) è una perdita colossale. È strano che questo non sia compreso in Siberia...