Scambio di dati tra due terminali MT4?

 

Ciao!


Voglio attuare la seguente strategia: "Forchette sulla differenza di quotazioni di diverse società di intermediazione:

La strategia è molto semplice, è che si possono mettere i tassi opposti sullo stesso strumento in due società di brokeraggio e aspettare la divergenza delle quotazioni nella giusta direzione, poi si possono chiudere entrambe le scommesse e fare un profitto in totale (il valore della discrepanza delle quotazioni deve essere maggiore della commissione totale delle due società di brokeraggio).


Questa strategia non è nuova da molto tempo, ma non l'ho ancora vista. Voglio usarlo.


Il problema principale è la necessità di conoscere in qualsiasi momento il valore delle quotazioni per entrambe le società di brokeraggio simultaneamente, e il consulente lavora con un solo terminale (una società di brokeraggio).

Cioè in ognuno dei terminali MT4 è in funzione un Expert Advisor e questo Expert Advisor conosce solo le sue quotazioni e quelle del suo vicino, e noi non conosciamo le sue quotazioni!

Dobbiamo fare in modo che entrambi gli EA conoscano le quotazioni dell'altro, cioè che possano scambiarsi dati a vicenda.


Voglio che condividano ciò che sanno a riguardo. Voglio anche avere dei feedback.


Ho trovato 2 modi per scambiare dati:


1) la più banale: scrivere dati in un file e leggere questo file da un altro Expert Advisor. Fondamentalmente, è molto facile da fare. L'unico problema è che l'Expert Advisor può solo leggere e scrivere file dalla "sua directory". Ma tutto si risolve con dll.

C'è un altro buon svantaggio: la bassa velocità di scambio. Non si può paragonare alla velocità di scrittura e lettura dalla memoria((((.


2) Non sono sicuro di quello che puoi fare (dato che non sono un programmatore molto bravo), ma, qui, vorrei imparare da programmatori del genere:

Allocate un posto in memoria e scriveteci delle citazioni, l'indirizzo di questo posto è conosciuto da entrambi gli EA, quindi possono sia leggere che scrivere in questo posto.

Naturalmente, tutta questa tecnologia è implementata attraverso un dll.

3) Ho anche trovato GlobalAddAtom, ma come scrivere una DLL con esso?


Se qualcuno è interessato alla strategia e vuole anche implementarla, allora contattatemi, condividerò volentieri il mio lavoro!

 
Un triste finale per una tale strategia potrebbe accadere http://www.kroufr.ru/forum/index.php/topic,6265.0.html
 
E come si prevede questo tipo di lavoro attraverso una DLL?
 
geopoint:
Un triste finale per una tale strategia potrebbe accadere http://www.kroufr.ru/forum/index.php/topic,6265.0.html
Non lo capisco proprio, vero? Probabilmente si tratta del fatto che il DC può andare a farsi fottere se lo scopre, vero?
 
D500_Rised:
E come immaginate questo tipo di lavoro attraverso la DLL?

Non credo che i mezzi standard di MQL4 saranno in grado di fare lo scambio. Ma se sapete come farlo, per favore condividetelo!

E attraverso la dll, si potrebbe, per esempio, collegare una funzione che potrebbe leggere i file da qualsiasi directory, non solo da una!

 

dll di ogni terminale faranno comunque riferimento allo stesso file comune. Mi sembra che questo causerà una serie di bug con conseguente funzionamento instabile di un tale schema. IMHO.

Hai guardato il multiterminale? È possibile connettersi a diversi server allo stesso tempo?

Mi è venuto in mente un pensiero: se multiterminal ha la capacità di lavorare con diversi account, allora probabilmente può lavorare con i server reali e demo contemporaneamente. Cosa succede se sostituiamo l'indirizzo del server demo con l'indirizzo del server reale di un'altra società di brokeraggio?

 
D500_Rised:

dll di ogni terminale faranno comunque riferimento allo stesso file comune. Mi sembra che questo causerà una serie di bug con conseguente funzionamento instabile di un tale schema. IMHO.

Hai guardato il multiterminale? È possibile connettersi a diversi server allo stesso tempo?

Mi è venuto in mente un pensiero: se multiterminal ha la capacità di gestire più di un account, allora forse è possibile lavorare con i server reali e demo contemporaneamente. Cosa succede se sostituiamo l'indirizzo del server demo con l'indirizzo del server reale di un'altra società di brokeraggio?

Nessun errore, perché ho già fatto questa strada attraverso il file. I file sono 2, cioè ogni EA ha il proprio file in cui salva le quotazioni e gli EA leggono i file degli altri. La cosa principale è fare una lettura e scrittura corretta (l'Expert Advisor legge sempre lo stesso file e scrive sempre sullo stesso file). Sono d'accordo che la stabilità sarà peggiore che riferendosi alla memoria.


Il Multiterminale non ha un'opzione del genere, e anche se l'avesse, non si possono eseguire EAs lì. Volete implementare manualmente un tale schema? (Non lo faccio)

 
D500_Rised:

Hai guardato il multiterminale? È possibile connettersi a diversi server allo stesso tempo?


no
 

Mi sto chiedendo se è possibile ordinare temporalmente write_1---read_2, write_2---read_1.

Come è ordinato il processo in modo che gli EA non si incontrino sullo stesso file, possono distinguere i dati letti in precedenza da quelli nuovi (richiede un tempo supplementare di identificazione)

E in generale, il gioco vale lo sforzo? Se ci sarà una differenza di quotazioni, ci sono diverse cose contro questo gioco allo stesso tempo:

1- 2 spread (2*2-4 pip)

2- Scivolamento.

3- Bassa velocità reale di esecuzione degli ordini(durante l'elaborazione dell'ordine del commerciante, il prezzo può cambiare e annullare la differenza positiva) + requotes

ecc.

 
D500_Rised:

Mi sto chiedendo se è possibile ordinare temporalmente write_1---read_2, write_2---read_1.

Come è ordinato il processo in modo che gli EA non si incontrino sullo stesso file, possono distinguere i dati letti in precedenza da quelli nuovi (richiede un tempo supplementare di identificazione)

E in generale, il gioco vale lo sforzo? Se ci sarà una differenza di quotazioni, ci sono diverse cose contro questo gioco allo stesso tempo:

1- 2 spread (2*2-4 pip)

2- Scivolamento.

3- Bassa velocità reale di esecuzione degli ordini (durante l'elaborazione dell'ordine del commerciante, il prezzo può cambiare e annullare la differenza positiva) + requotes

ecc.

Questo non è un problema perché un EA sta scrivendo tutto il tempo in un file e l'altro EA sta leggendo tutto il tempo da questo file e non importa in quale ordine avviene. Per controllare la rilevanza dei dati ho usato l'ora locale, cioè le citazioni sono scritte ogni 100 millisecondi e poi controllate per la rilevanza in base all'ora locale.


Riguardo ai "candelieri": non conosco la risposta esatta, per questo voglio controllarla. Sono più convinto dai dati quantitativi. Se lo spread totale è di 4 pip e la divergenza è di 10 pip, allora anche in cattive condizioni possiamo ottenere almeno la metà di 6 pip redditizi, cosa ne pensi?

 
D500_Rised:

Metto in dubbio la possibilità di un ordine corretto a tempo di write_1---read_2, write_2---read_1.

Forse puoi suggerire il tuo metodo, perché stiamo discutendo solo un modo: attraverso il file, ma ce ne sono altri più avanzati: attraverso la memoria, puoi dire qualcosa su di loro?