Scambio di dati tra due EA in esecuzione su terminali diversi

 

Questo thread è una continuazione tecnica del thread "divieto di chiusura NFA dal 15 maggio 2009".

In particolare, a partire da questo post:

L'NFA vieta il bloccaggio dal 15 maggio 2009

solandr 26.04.2009 12:06

2. Se avete un conto di intermediazione americano, lo dividerete in 2 conti separati di uguale dimensione. Su un conto tutte le posizioni per tutti gli strumenti saranno solo BUY, sull'altro tutte le posizioni per tutti gli strumenti saranno solo SELL. Questa regola non è violata quando la copertura è vietata su un conto, perché abbiamo 2 conti. Poi dobbiamo elaborare un metodo per distribuire le posizioni dell'unico Expert Advisor su questi 2 diversi conti. Dato che questo non è stato il mio compito precedente, vorrei sapere quali metodi sono disponibili per l'esecuzione accurata degli ordini di un Expert Advisor su 2 conti diversi?

Vorrei discutere l'implementazione tecnica dello scambio di dati tra due EA che lavorano in terminali diversi.

Credo che la direzione più promettente per la discussione sia il trasferimento di informazioni tra EAs usando uno spazio di memoria condiviso, ma qualsiasi altra opzione può essere discussa.

Cioè, ognuno degli Expert Advisors ha bisogno di avere tutte le informazioni sugli ordini dell'altro terminale. Come organizzarlo?

Vorrei chiedere solo dettagli tecnici da discutere in questo thread. Grazie in anticipo!

 
Tutti i dettagli tecnici e l'implementazione dell'algoritmo sono stati descritti da tempo. Usa la ricerca.
 
HIDDEN >> :
Tutti i dettagli tecnici e l'implementazione dell'algoritmo sono stati descritti da tempo. Usare la ricerca.

Intendi questo articolo o qualcos'altro?

'Selezione automatizzata dei DC per un lavoro esperto efficiente'.

 
 

Per il tuo compito, usare il toolkit descritto nell'articolo sulla selezione automatica dei DC è uno sparo nel buio. Senza nessuna DLL, si può andare avanti solo con i file.

 

L'uso di sqllite3 da parte di uno dei terminali suggerisce che questo è uno dei modi più semplici.

Sarebbe una buona idea per gli sviluppatori caricare tutte le informazioni del terminale in questo database.

Poi con le solite funzioni avremo accesso alla lettura di informazioni più strutturate...

Per esempio, ora è un compito non banale analizzare i log per stimare, per esempio, la qualità dell'apertura della posizione.

*

Scusa se sono fuori tema...

*

Ora che stiamo parlando di DB, sto cercando modi che possano aiutare durante lo scambio tra conti,

come scrivere e leggere le stesse celle del database?

Cioè, per i loro scopi, iniziamo una tabella , e nei suoi campi, chiamiamo condizionatamente A, B, C, D, con una riga.

Schematicamente, è così:


A
B
C
E
dati
123
1.2548
12.04.2009
comprare
 
solandr >> :

Questo thread è una continuazione tecnica del thread "divieto di chiusura NFA dal 15 maggio 2009".

In particolare, a partire da questo post:

L'NFA vieta il bloccaggio dal 15 maggio 2009

solandr 26.04.2009 12:06

2. Se avete un conto di intermediazione americano, lo dividerete in 2 conti separati di uguale dimensione. Su un conto tutte le posizioni per tutti gli strumenti saranno solo BUY, sull'altro tutte le posizioni per tutti gli strumenti saranno solo SELL. Questa regola non è violata quando la copertura è vietata su un conto, perché abbiamo 2 conti. Poi dobbiamo elaborare un metodo per distribuire le posizioni dell'unico Expert Advisor su questi 2 diversi conti. Dato che questo non è stato il mio compito precedente, vorrei sapere quali metodi sono disponibili per l'esecuzione accurata degli ordini di un Expert Advisor su 2 conti diversi?

Vorrei discutere l'implementazione tecnica dello scambio di dati tra due EA che lavorano in terminali diversi.

Credo che la direzione più promettente per la discussione sia il trasferimento di informazioni tra EAs usando uno spazio di memoria condiviso, ma qualsiasi altra opzione può essere discussa.

Cioè, ognuno degli Expert Advisors ha bisogno di avere tutte le informazioni sugli ordini dell'altro terminale. Come organizzarlo?

Vorrei chiedere solo dettagli tecnici da discutere in questo thread. Grazie in anticipo!

Ho diverse idee

Scambio di 1 file

2- è possibile utilizzare vari metodi di eventi di windows

3 via TCP/IP


La condivisione dei file è più semplice in termini di complessità


devi stare attento con la condivisione dei file

L'accesso allo stesso file da parte di diversi programmi deve essere adeguatamente separato

in ogni caso, è necessario avere una buona idea di come funziona la condivisione dei file.

 
kombat >> :


Se stiamo parlando di mysql, allora sto cercando modi che siano utili anche per lo scambio tra conti,

come scrivere e leggere le stesse celle del database?


Elementare, Watson. Attraverso le query SQL.

 
Reshetov >> :

È elementare, Watson. Tramite query SQL.

Grazie, Holmes! ;)))

L'unico problema è come farlo...

Io, per esempio, non ho ancora ceduto a questo compito.

(anche se ci lavoro solo occasionalmente).

*

Se seriamente, il problema è fare una richiesta di lettura/scrittura per coordinate specifiche della tabella.

 
kombat >> :

Grazie, Holmes! ;)))

L'unico problema è come farlo...

Io, per esempio, non ho ancora ceduto a questo compito.

(anche se ci lavoro solo occasionalmente).

*

Seriamente, il problema è fare una query di lettura/scrittura per specifiche coordinate di tabella.


Anche SQL può farlo

c'è un problema... come fanno i due EA a sapere di incasinare l'SQL?

dovranno usare un monitor in entrambi gli Expert Advisors che utilizzerà un quantum di tempo per guardare in SQL per vedere se l'EA ha "scritto" qualcosa

Allo stesso modo con lo scambio di file, devi passare attraverso lo stesso problema, con ogni quantum di tempo in cui vai al file.

se qualcosa è cambiato, se un amico che commercia su un altro conto ha segnalato qualcosa


--

è più economico e meglio usare un evento

si verifica un evento - calcio!

se un evento non si è verificato - non calciare!

ogni esperto può avere la "voglia" di dire al suo amico le sue intenzioni

questo sarà l'evento... è così che prende a calci il suo amico che dorme

windows è un sistema operativo guidato dagli eventi - meglio andare in quella direzione

--

 

In linea di principio, è più che sufficiente per me controllare/registrare un file a intervalli regolari.

Per quanto riguarda l'accesso ai file, un collega mi ha suggerito la seguente idea. Mentre scriviamo su un file, lo chiamiamo qualcosa come file.running. Appena finiamo di scriverci dentro, lo rinominiamo in file.output. Dopo che il file è stato letto dal secondo Expert Advisor , cancella il file. Così facciamo sapere al primo Expert Advisor che possiamo scrivere un nuovo file con le informazioni passate durante il prossimo ciclo operativo del primo EA (dopo un certo quantitativo di tempo). Forse, per la sicurezza della separazione degli accessi, potremmo usare alcune bandiere.


Ho visto alcuni esempi di utilizzo del TCP/IP quando i dati vengono inviati su localhost 127.0.0.1 su qualche porta. Ogni Expert Advisor conosce la porta di un altro e gli trasmette i dati. Allo stesso tempo si mette in ascolto sulla propria porta per intercettare i dati di altri Expert Advisor. Ho un esempio di come questo può essere fatto in uno script VB. Non so come possa essere implementato in un EA.

Ci sono esempi pronti per la trasmissione di dati attraverso TCP/IP per Expert Advisors?

Motivazione: