Ancora una volta, riguardo al multithreading - pagina 6

 
dd:

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 ....

Ho descritto tutto 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 mantenere l'esecuzione nel tester per capire la situazione ...

Devi decidere se sei venuto per la luce o per dire a tutti cosa deve funzionare e come deve funzionare.

Non ho alcun desiderio di continuare a risolvere il vostro problema, voi sapete meglio di me cosa deve essere fatto e come deve essere fatto.

Buona fortuna!

 
Andrey Khatimlianskii:

Dovete decidere se siete qui per la luce o per dire a tutti cosa dovrebbe funzionare e come dovrebbe funzionare.

Non ho alcun desiderio di continuare a risolvere il vostro problema; voi sapete meglio cosa bisogna fare e come farlo.

Buona fortuna!

nessun consiglio pratico è stato offerto sui termini del problema... Buona notte anche a te...
 
Andrey Khatimlianskii:

Dovete decidere se siete qui per la luce o per dire a tutti cosa dovrebbe funzionare e come dovrebbe funzionare.

Non ho alcun desiderio di continuare a risolvere il vostro problema; voi sapete meglio cosa bisogna fare e come farlo.

Buona fortuna!

mio caro caro, mio bel raggio di sole, hai letto il problema? è chiaramente descritto lì - nel ciclo, oltre all'ordine Send in un secondo, un sacco di altri compiti devono essere fatti - per esempio chiudere 500 000 ordini o non chiudere - controllare ... 0,1 lotto, 50 000 di deposito, sei bravo in matematica? E sì, è sintetico. Ma il suo consiglio è inutile.
 
dd:

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 registro, nessuno ha bisogno di uno stupido registro per quel tempo può gonfiarsi in un paio di terabyte. 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 chiudere 1000 transazioni, diciamo, o rompere questo processo in 5 o 10 fili - 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 enorme. È strano che questo non sia compreso in Siberia...

Un passaggio nel tester in 5 giorni? Questo è un caso eccezionale))

 
Dmitry Fedoseev:

Un passaggio nel tester in cinque giorni? Questo è un caso eccezionale))

beh, quando hai un solo trade e aspetti cinque minuti niente di eccezionale... ma quando ce ne sono migliaia al secondo, niente di eccezionale :)
 
dd:
Beh, quando c'è una transazione e aspettiamo cinque minuti per niente in sospeso... ma quando ce ne sono migliaia al secondo, niente di notevole :)

Esegui l'ottimizzazione, almeno 24 passaggi e tutti i core saranno occupati. Pertanto, non ha senso mettere in parallelo qualcosa in un solo passaggio.

 
Dmitry Fedoseev:

Esegui l'ottimizzazione, almeno 24 passaggi e tutti i core saranno occupati. Pertanto, non ha senso mettere in parallelo qualcosa in un solo passaggio.

Stai confondendo il freddo con il caldo. Inizierò l'ottimizzazione quando ne avrò bisogno. In questo momento voglio ottenere un'esecuzione ottimale del codice con l'attuale EA, che ha un mucchio di azioni ad ogni secondo. Non confondere il parallelismo nell'"ottimizzazione" e il parallelismo in un singolo EA ... Queste sono due grandi differenze. Si cerca sempre di dire che si può eseguire uno stesso script in parallelo... Non sto discutendo con questo e nessuno sta discutendo con questo. Questo argomento riguarda qualcos'altro: come utilizzare più core nell'esecuzione di uno script.
 
dd:
Questo argomento riguarda qualcos'altro: come utilizzare più core nell'esecuzione di un singolo script.
Il codice deve essere già scritto per utilizzare più thread! Non c'è altro modo.
 
Aliaksandr Hryshyn:
Il codice dovrebbe già essere scritto per utilizzare più thread!
Non c'è dubbio, e sto chiedendo un pugno sul naso su come farlo. Ma dopo aver letto, non solo questo thread, ho capito che non è così semplice. Ho descritto il mio compito nel modo più chiaro possibile - e vorrei sentire la ricetta.
 
dd:
senza fare domande, e sto chiedendo un poke su come farlo. Ma dopo aver letto, non solo questo thread, ho capito che non è così semplice. Ho descritto il mio compito nel modo più chiaro possibile - e vorrei sentire la ricetta.
Ci possono essere diverse ricette, la più ideale, secondo la formulazione del problema, è l'uso di dll con i suoi calcoli di scrittura negli indicatori. Ma questo è complicato e non ne vale la pena... Ma dovete sapere esattamente che tipo di codice avete lì.
Motivazione: