Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
perché interferire in una discussione già produttiva
Gli sviluppatori non vogliono spaventarci nel caso trovassimo qualcosa di interessante per loro... :)
perché interferire in una discussione già produttiva
Per le seguenti ragioni:
1. Per dire, ragazzi, riconosciamo (o no) che c'è un problema e lo tratteremo.
2. Per dire, Quark (e Composter, visto che ha riprodotto l'errore sul suo EA), abbiamo guardato il tuo codice, l'errore è in esso, tratta così e così.
Altrimenti si scopre che non siete interessati. Divertitevi, ragazzi...
Ripeterò i miei argomenti:
1. Gli ordini di apertura e chiusura delle posizioni a volte restituiscono errori.
2. Questi codici di errore non hanno nulla a che fare con la vita reale (ad esempio "prezzo sbagliato", anche se il prezzo è corretto).
3. Ripetendo il tentativo con gli stessi parametri puoi fare in modo che il sistema accetti l'ordine. Ma da nessuna parte nel vostro manuale c'è scritto che lo stesso ordine deve essere aperto (chiuso) in un ciclo con controllo degli errori ad ogni passo e output su un file per un successivo controllo manuale.
4. A volte i codici di errore non vengono restituiti, cioè il programma si comporta come se l'operazione avesse avuto successo. Ma non ci riesce.
5. La cosa più importante. Dato che il problema si verifica quando si comunica con il server demo (Alpari, nel mio caso), è molto probabile che avendo trovato un workaround ora, sul demo, ci troveremo di nuovo nella stessa situazione quando andremo su quello reale. E poi dovremo pagare di nuovo per il debugging. Con i vostri soldi.
6. Questo NON è un problema locale di un esperto. Io sostengo che tutti, o almeno molti EAs, potrebbero semplicemente non prenderlo, perché non c'è un sistema di cattura degli errori collegato ai miei EAs. Quindi, ne consegue che l'ottimizzazione NON può essere trasferita al reale, perché gli ordini non saranno aperti e chiusi allo stesso modo e non sempre. Ne consegue che la gente sprecherà tempo e denaro.
7. Non credo davvero che questo sia un problema di EA. Indica dov'è, se mi sbaglio. Si può cambiare la logica dell'esperto, non si tratta di logica.
Qui.
Roche, ecco i log di oggi, con un ritardo in-ciclo dopo OrderSend e OrderClose di 10000ms. Sembra rimuovere i sospetti di un conflitto dovuto alla tempistica e al contesto (che non dovrebbe comunque esserci):
Attempting to close short position, ticket: 1827283
9.9.2005 10:13:20 Ordine con questo ticket ancora presente, riprova
9.9.2005 10:13:48 Nessun altro ordine con questo ticket No
Al secondo tentativo :(
9.9.2005 0:14:54 Trying to buy, attempt 0
Bid: 1.24490000, StopLoss: 0.00700000, TakeProfit: 0.00000000 fallito, errore 6
9.9.2005 0:15:4 Cercando di comprare, tentativo 1
Offerta: 1.24470000, StopLoss: 0.00700000, TakeProfit: 0.00000000 successo
Al secondo tentativo :(
9.9.2005 13:0:22 Cercando di comprare, tentativo 0
Offerta: 1.23900000, StopLoss: 0.00600000, TakeProfit: 0.00000000 fallito, errore 6
9.9.2005 13:0:48 Cercando di comprare, tentativo 1
Offerta: 1.23900000, StopLoss: 0.00600000, TakeProfit: 0.00000000 successo
Al secondo tentativo :(
Pausa fallita...
Notate che l'errore 6 (il più informativo del mondo) è apparso solo all'acquisto, alla chiusura non c'è stato alcun errore. È vero, c'era un errore di ping nel log, ma l'esperto non lo sa...
Dicono che se una persona sta parlando con Dio, va bene. Ma se Dio comincia a rispondere, è un problema :) Ma sono contento lo stesso :)
Solo un promemoria per ricordare che l'Expert Advisor non farà trading su trade a 5 minuti per impostazione predefinita. C'è un orologio codificato lì dentro, bisogna cambiarlo.
Inoltre non ho idea di quanto sia facile prendere questo su 5 minuti. Inoltre :) se il test come hai descritto, i cicli dovrebbero essere disconosciuti, in quanto sono progettati per spegnere l'errore. Naturalmente ci sarà una voce nei registri, ma potrebbe essere troppo tardi per premere il pulsante.
Infine, credo che possiamo aggiungere la stessa logica (chiamata delle mie funzioni al posto di OrderSend e OrderClose) ad altri EA. Per coerenza. Credo che anch'io riuscirò a prendere qualcosa.
Buona fortuna,
Quark
Mandalo a me. Questo è quello che stiamo catturando
Vorrei sottolineare che questo codice non dipende da nessuna condizione, eccetto l'attivazione del secondo dei due ordini pendenti. Pertanto, questo codice è stato richiamato un'ora dopo (ero fuori casa) e l'ordine pendente è stato cancellato. L'allarme è stato lasciato in sospeso.
Quindi, il sistema ha funzionato questa volta, senza riavviare il terminale. Non escludo che altri casi (con ordini urgenti) derivino anche dalla chiusura temporanea del terminale.
Questo concorda con il fatto che ripetendo la richiesta di operazione nel ciclo, si può avere successo alla seconda, terza e così via.
Il tuo esperto ha aperto una posizione =)))
Tutti gli 8 sono stati appesi all'orologio per molto tempo e nessuno sta scambiando... E ora alle 15:00 su Alpari si è aperta una posizione. È normale?).
Tutti gli 8 sono stati in bilico sull'orologio per molto tempo e nessuno sta scambiando... E così alle 15 Alpari ha aperto una posizione. È normale?)
Si è aperto anche per me, e a 15 anni :)
La posizione precedente, anch'essa con successo, è stata aperta su USDCAD 23.08.
In realtà, è un buon Expert Advisor, e non fallisce il più delle volte. Così come qualsiasi altro. A giudicare dai log, non è la logica di trading ma il fatto. Quindi, puoi riscrivere l'Expert Advisor, per esempio, per invertire le posizioni ogni ora - genererà più trade :) E ci saranno anche altri fallimenti.
Questa EA è solo un esempio da dare agli sviluppatori. Altrimenti tutti falliscono di tanto in tanto. E anche tu, se ho capito bene, quindi non è a causa del nostro codice...