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
Victor, tu, Renat, in generale giustamente sottolineato, Alexey ha mostrato l'ultimo controllo necessario, e prima controllare tutti i controlli necessari per ogni parametro con tutte le sfumature per evitare ambiguità di significato e senza perdere alcuna condizione!
A cosa serve? Perché ho resettato _LastError in ogni funzione. Non è che sia costantemente appeso nella memoria...
ancora bisogno di controllare che se nessuno dei 3 parametri è cambiato, allora anche OrderModify non ha bisogno di essere toccato.
Ho capito. Non ha aiutato. Ecco un pezzo di codice del mio metodo di modifica:
Possiamo vedere chiaramente che il valore di errore viene azzerato.Poi riceve le informazioni sul mercato. Se la modifica è nel tester... allora... Faccio il test proposto da Alexei, e... se la modifica non ha successo, allora... scrive un registro e stampa nel registro...
In generale, possiamo vedere che non ci sono errori tra ResetLastError()... Non c'è niente di sbagliato lì.
Diario:
Ho capito. Non ha aiutato. Ecco un pezzo di codice del mio metodo di modifica:
Potete vedere chiaramente che il valore dell'errore viene resettato lì.Poi riceve le informazioni sul mercato. Se la modifica è nel tester... allora... Faccio il test proposto da Alexei, e... se la modifica non ha successo, allora... scrive un registro e stampa nel registro...
In generale, possiamo vedere che non ci sono errori tra ResetLastError()... Non c'è niente di sbagliato lì.
Diario:
È così...
Nell'Expert Advisor, chiamo il metodo della classe in questo modo:
Ecco il pezzo di classe che ci interessa:
Ecco il pezzo di registro che vogliamo:
Lasciatemi spiegare. La modifica avviene nel metodo fOrderModify(). All'ingresso di questo metodo fOrderModify(), i valori attuali dei parametri dell'ordine e i nuovi valori previsti sono stampati all'inizio del corpo. Si può vedere:
Questo pezzo è nel registro:
Potete vedere che i parametri sono tutti diversi. Non dovrebbero esserci problemi.È così...
Nell'Expert Advisor, chiamo il metodo della classe in questo modo:
Ecco il pezzo di classe che ci interessa:
Ecco il pezzo di registro che vogliamo:
Non capisco cosa c'entra il Bid, se l'ordine è in sospeso?
Il Bid è sempre inferiore al SellLimit, quindi la linea if(New_OOP < Bid) non sarà mai vera... ...rispettivamente, la modifica viene implementata senza impedimenti.
Perché non create anche un array di errori? È scritto nero su bianco nella documentazione che la variabile _LastError memorizza il numero dell'ultimo errore. E viene resettato dalla funzione ResetLastError(). Se non ci sono più errori tra le chiamate di _LastError, _LastError memorizza il valore dell'ultimo errore. Non c'erano più errori nel mio codice. Beh, non è questa la domanda.
Si sbaglia di grosso. L'ultimo errore è ben resettato in molte funzioni importanti. Funziona così anche in WinAPI.
Questo è il motivo per cui dovreste salvare il codice di errore in una variabile locale subito dopo che si è verificato e non cercare di usarlo dopo aver cancellato questa variabile di sistema dieci volte in molte delle vostre funzioni intermedie.
Spiacente, SellLimit richiede un dist:
non se (New_OOP < Bid) continua; mase (New_OOP-dist*Point < Bid) continua;
Come faccio a sbarazzarmi di questo cazzo di errore? Non ne posso più. Sto controllando ogni parametro di ingresso della funzione. Per me, al momento, è così:
Cioè, se il parametro non è stato cambiato, non c'è bisogno di cambiarlo. Non l'ho mai fatto prima, ma ho deciso di...
Poi i parametri vengono passati al metodo di modifica dell'ordine in questo modo:
Nw output nel log:
Allora, il giornale ci avvisa, come modifica: OK, ma poi... un errore. Nessuno dei parametri è cambiato.
L'ordine è in sospeso. Quindi possiamo cambiare open, stop e take price. E questo, a quanto ho capito, non contraddiceva la documentazione.
Chi ha incontrato qualcosa del genere? Come risolverlo?