Hi
I am running an algorithm of trading, running on 3 forex asset.
It works like this: I open it on 3 graphs, one for each symbol I want to trade, and every algo on each graphs takes the datas of the prices of all 3 assets.
I see that at the same moment he gives different prices for the same asset and I am wonder how is it possible?
Se posti il codice possiamo capire il perché.
Ho provato a fargli prendere i dati in 2 modi:
1:
void OnTick()
{
Ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID);
double sym1Bid = SymbolInfoDouble(symbol1, SYMBOL_BID);
double sym2Bid = SymbolInfoDouble(symbol2, SYMBOL_BID);
double sym3Bid = SymbolInfoDouble(symbol3, SYMBOL_BID);
double sym1Ask = SymbolInfoDouble(symbol1, SYMBOL_ASK);
double sym2Ask = SymbolInfoDouble(symbol2, SYMBOL_ASK);
double sym3Ask = SymbolInfoDouble(symbol3, SYMBOL_ASK);
2:
Ho provato a fargli prendere i dati in 2 modi:
1:
void OnTick()
{
Ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID);
double sym1Bid = SymbolInfoDouble(symbol1, SYMBOL_BID);
double sym2Bid = SymbolInfoDouble(symbol2, SYMBOL_BID);
double sym3Bid = SymbolInfoDouble(symbol3, SYMBOL_BID);
double sym1Ask = SymbolInfoDouble(symbol1, SYMBOL_ASK);
double sym2Ask = SymbolInfoDouble(symbol2, SYMBOL_ASK);
double sym3Ask = SymbolInfoDouble(symbol3, SYMBOL_ASK);
2:
double sym3Ask = symbol3_tick.ask;
purtroppo escono sempre prezzi diversi:
lo screen è stato fatto dal bot in funzione su conto demo, ma sul live è la stessa cosa
Premettendo che preferisco più la prima modalità, mi viene da pensare che la differenza di prezzo sia imputabile ad una questione di aggiornamento visto che il codice viene eseguito ad ogni tick, ma i tick non arrivano nello stesso momento per ogni coppia di valute, ma è una supposizione .
ok, in effetti è plausibile, anche perché non mi viene in mente nient'altro.
Ma la domanda è: essendo lo stesso codice che gira e le coppie le stesse, perché i dati arrivano da una parte sì e dall'altra no?
Cioè capirei se stessimo prendendo prezzi di valute diverse...ma in effetti sono le stesse. Il metodo di cattura dei dati lo stesso, il modo in cui vengono processati anche lo stesso.
Non so se hai idee di come si può risolvere
ok, in effetti è plausibile, anche perché non mi viene in mente nient'altro.
Ma la domanda è: essendo lo stesso codice che gira e le coppie le stesse, perché i dati arrivano da una parte sì e dall'altra no?
Cioè capirei se stessimo prendendo prezzi di valute diverse...ma in effetti sono le stesse. Il metodo di cattura dei dati lo stesso, il modo in cui vengono processati anche lo stesso.
Non so se hai idee di come si può risolvere
Come ho già detto il problema credo risieda nella differente tempistica dei tick, perciò nell'aggiornamento visuale del prezzo. Se il prezzo della coppia sulla quale l'ea è attivo è giusto il problema è quello.
No scusa non ti seguo.
I prezzi degli asset vengono presi tutti alla stessa maniera, a prescinder da quale sia il grafico sul quale stiamo operando.
Dato questo, se la fonte dei dati è la stessa e il metodo in cui vengono processati è lo stesso, dovrebbe apparire sempre lo stesso prezzo.
Se il problema fosse la tempistica dei tick, comunque dovrei vedere in ogni caso lo stesso prezzo (magari sbagliato e diverso dal reale, a causa del ritardo, ma comunque uguale su tutti e 3)
No scusa non ti seguo.
I prezzi degli asset vengono presi tutti alla stessa maniera, a prescinder da quale sia il grafico sul quale stiamo operando.
Dato questo, se la fonte dei dati è la stessa e il metodo in cui vengono processati è lo stesso, dovrebbe apparire sempre lo stesso prezzo.
Se il problema fosse la tempistica dei tick, comunque dovrei vedere in ogni caso lo stesso prezzo (magari sbagliato e diverso dal reale, a causa del ritardo, ma comunque uguale su tutti e 3)
No, vedresti il prezzo giusto solo della coppia sulla quale l'ea gira. L'algoritmo viene eseguito ad ogni tick perciò anche l'aggiornamento del prezzo avviene in quel momento, nel frattempo può essere che le altre coppie di tick ne abbiano ricevuti 3. Perciò controlla che venga riportato il prezzo corretto della coppia sulla quale l'ea gira.
ho capito. penso proprio che sia come dici te, grazie.
Come posso risolvere secondo te?
ho capito. penso proprio che sia come dici te, grazie.
Come posso risolvere secondo te?
No, vedresti il prezzo giusto solo della coppia sulla quale l'ea gira. L'algoritmo viene eseguito ad ogni tick perciò anche l'aggiornamento del prezzo avviene in quel momento, nel frattempo può essere che le altre coppie di tick ne abbiano ricevuti 3. Perciò controlla che venga riportato il prezzo corretto della coppia sulla quale l'ea gira.
Ho risolto usando la funzione OnTimer al posto di OnTick. Grazie.
Ora sto incontrando un'altra difficoltà però. Testando in demo, in tempo reale, ho notato che apre e chiude le posizioni a distanza di pochi ms. Ci sono le condizioni di apertura ma non di chiusura. Praticamente appena apre riceve anche l'ordine di chiusura.
Back testando sullo stesso periodo il problema non si verifica.
L'unica differenza è che in demo faccio andare più bot insieme, ma su grafici differenti.
A cosa potrebbe essere dovuto il problema?
Ho risolto usando la funzione OnTimer al posto di OnTick. Grazie.
Ora sto incontrando un'altra difficoltà però. Testando in demo, in tempo reale, ho notato che apre e chiude le posizioni a distanza di pochi ms. Ci sono le condizioni di apertura ma non di chiusura. Praticamente appena apre riceve anche l'ordine di chiusura.
Back testando sullo stesso periodo il problema non si verifica.
L'unica differenza è che in demo faccio andare più bot insieme, ma su grafici differenti.
A cosa potrebbe essere dovuto il problema?
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
CIAO
Sto eseguendo un algoritmo di trading, in esecuzione su 3 asset forex.
Funziona così: lo apro su 3 grafici, uno per ogni simbolo che voglio scambiare, e ogni algoritmo su ogni grafico prende i dati dei prezzi di tutti e 3 gli asset.
Vedo che nello stesso momento dà prezzi diversi per lo stesso bene e mi chiedo come sia possibile?
<Translated automatically by moderator's intervention>