Errori, bug, domande - pagina 3132

 
Yury Lemeshev #:

C'è un problema, appare casualmente e occasionalmente.

Appare quando si lavora nel tester con diverse valute.

In ogni ciclo richiedo prezzi reali per i simboli. Se per qualche motivo il tester non riceve le quotazioni per un particolare simbolo, usa le quotazioni ottenute in precedenza per un altro simbolo.

Dovrei aprire una posizione se il prezzo è superiore a quello specificato. Dovrei aprire la posizione se ho ricevuto dati sbagliati da un altro simbolo.

Il simbolo EURCAD si apre se il prezzo è superiore a 1,45117. 1.74425>1.45117? Sì, è più alto ma è il prezzo di un altro simbolo.

Abbiamo rilevato 7 ordini di errore su 500.

Posso solo ipotizzare che la richiesta di prezzo dal simbolo, la risposta è gettata in una sola e stessa variabile d'ambiente. Solo un rapido controllo per vedere se è uguale al valore precedente. Se è un altro simbolo uguale molto raramente.

 
Yury Lemeshev #:

Non c'è nessun errore nel codice, il codice è stato riscritto per eliminare l'errore, e l'errore non appare regolarmente, è completamente caotico

I miracoli non accadono in questo mondo... Ecco uno dei telepati che non si è ancora abbuffato e che parla anche di un errore.

 
Yury Lemeshev #:

C'è un problema, appare casualmente e occasionalmente.

Appare quando si lavora nel tester con diverse valute.

In ogni ciclo richiedo prezzi reali per i simboli. Se per qualche motivo il tester non riceve le quotazioni per un particolare simbolo, usa le quotazioni ottenute in precedenza per un altro simbolo.

Dovrei aprire una posizione se il prezzo è superiore a quello specificato. Dovrei aprire la posizione se ho ricevuto dati sbagliati da un altro simbolo.

Il simbolo EURCAD si apre se il prezzo è superiore a 1,45117. 1.74425>1.45117? Sì, è più alto ma è il prezzo di un altro simbolo.

Abbiamo rilevato 7 ordini errati su 500.

La risposta è nella domanda stessa. Il robot può usare citazioni irrilevanti o dati errati di un altro simbolo. Non so quale sia esattamente l'idea. Ma qualcosa è ovviamente sbagliato nel codice...

 
Mihail Matkovskij #:

La risposta è nella domanda stessa. Il robot può usare citazioni irrilevanti o dati errati di un altro simbolo. Non so quale sia l'idea, ovviamente. Ma qualcosa è ovviamente sbagliato nel codice.

C'è qualcosa di sbagliato nel codice. Ci sono lacune nella logica. Gli stipiti tremolanti in generale sono difficili da prevedere e da respingere.

 
2021.12.31 22:14:19.911 2019.01.24 18:50:09 -2117- EURGBP 0.86993
2021.12.31 22:14:19.912 2019.01.24 18:50:10 -2117- EURGBP 0.86994
2021.12.31 22:14:19.912 2019.01.24 18:50:10-2117- EURGBP 1.5969
2021.12.31 22:14:19.912 2019.01.24 18:50:10 acquisto immediato 0,01 EURGBP a 0,86993 (0,86985 / 0,86993 / 0,86985)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 deal #13 buy 0.01 EURGBP at 0.86993 done (based on order #13)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 affare fatto [#13 comprare 0,01 EURGBP a 0,86993]
2021.12.31 22:14:19.912 2019.01.24 18:50:10 ordine eseguito comprare 0,01 a 0,86993 [#13 comprare 0,01 EURGBP a 0,86993]

Ogni ciclo è ok, ma al momento vengono sostituiti i dati di un altro simbolo. 1,5969>0,88506 sì, la posizione si apre. Questo non è un bug del codice. Questo è un bug nel tester.

euSY01b=0;euSY01a=0;
   if(SymbolInfoDouble(euSY01,SYMBOL_BID,euSY01b)==true && SymbolInfoDouble(euSY01,SYMBOL_ASK,euSY01a)==true && euSY01b>0 && euSY01a>0)
      {
      GlobalVariableSet("["+MAGICs+"] "+euSY01+" LAST BID",euSY01b);GlobalVariableSet("["+MAGICs+"] "+euSY01+" LAST ASK",euSY01a);
      }
 
Valeriy Yastremskiy #:

Nel codice è tutto così. Ci sono lacune nella logica. Le articolazioni tremolanti in generale sono difficili da prevedere e da scongiurare.

cosa pensate che sia la logica senza codice?

 
Yury Lemeshev #:
2021.12.31 22:14:19.911 2019.01.24 18:50:09 -2117- EURGBP 0.86993
2021.12.31 22:14:19.912 2019.01.24 18:50:10 -2117- EURGBP 0.86994
2021.12.31 22:14:19.912 2019.01.24 18:50:10-2117- EURGBP 1.5969
2021.12.31 22:14:19.912 2019.01.24 18:50:10 acquisto immediato 0,01 EURGBP a 0,86993 (0,86985 / 0,86993 / 0,86985)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 deal #13 buy 0.01 EURGBP at 0.86993 done (based on order #13)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 affare fatto [#13 comprare 0,01 EURGBP a 0,86993]
2021.12.31 22:14:19.912 2019.01.24 18:50:10 ordine eseguito comprare 0,01 a 0,86993 [#13 comprare 0,01 EURGBP a 0,86993]

Ogni ciclo è ok, ma i dati di un altro simbolo vengono sostituiti nel momento. 1,5969>0,88506 sì, la posizione si apre. Questo non è un bug del codice. Questo è un bug nel tester.

Poi, controlla il simbolo per la tempistica prima di entrare nella ricerca del segnale.

 
Mihail Matkovskij #:

Cosa pensate che sia la logica senza codice?

Impostazione/localizzazione del problema - algoritmo o logica di soluzione - codice. Purtroppo questo spesso non viene capito qui in modalità "uno per tutti". La codifica inizia prima che il problema sia chiaramente formulato, nemmeno l'algoritmo di soluzione. Naturalmente, la logica secondo cui qualsiasi query viene sempre eseguita non è solo errata nel tester, ma anche nella realtà. Quindi, abbiamo bisogno delle azioni giuste per evitare le conseguenze tossiche degli eventi sfarfallanti))) Buone vacanze!!!!

 
Valeriy Yastremskiy #:

Buone vacanze!!!!

Grazie. Anche a te!

Nell'essenza della domanda, sopra ho scritto ciò che deve essere fatto. E poi la logica funzionerà.

 
Mihail Matkovskij #:

poi, controllare il simbolo per la sincronizzazione prima di entrare nella ricerca del segnale.

   if(SymbolIsSynchronized(euSY01)==true && SymbolInfoDouble(euSY01,SYMBOL_BID,euSY01b)==true && SymbolInfoDouble(euSY01,SYMBOL_ASK,euSY01a)==true && euSY01b>0 && euSY01a>0)

Se lo fai, e ci sono 7 linee di questo tipo nel codice per sette coppie, allora la panoramica del mercato avrà solo le quotazioni per una valuta.