![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Ora ho messo una funzione nel commento - Comment (isCloseLastPosByStop());
Stai facendo dei test nel tester? Se nel tester, allora sicuramente ci può essere una situazione in cui due o più ultime posizioni chiuse non avranno un OrderCloseTime() diverso.
Capisco. Se diverse posizioni sono chiuse simultaneamente nel tester (secondo il segnale), allora la funzione isCloseLastPosByStop() potrebbe "glitchare" e non funzionare? Ma online sembra funzionare.
Sì, - l'ho controllato ora nel tester lavorando con una posizione. Tutto funziona correttamente! La funzione visualizza correttamente nel commento (isCloseLastPosByStop()) la chiusura per Stop Loss e cambia il flag in tempo quando si chiude per un altro motivo.
Capisco. Se diverse posizioni sono chiuse nel tester allo stesso tempo, allora la funzione isCloseLastPosByStop() potrebbe "glitchare" e non funzionare?
Sì, perché isCloseLastPosByStop() identifica l'ultima posizione chiusa in base al tempo massimo di chiusura, che si misura in secondi. Pertanto, abbiamo bisogno che passi più di un secondo tra la chiusura di più posizioni. Nel tester può passare meno di un secondo.
E online apparentemente funzionerà.
Buon pomeriggio, KimIV. Ho bisogno del vostro consiglio, o meglio del vostro aiuto. Ho bisogno che la funzione start() funzioni non in base al tick, ma che venga eseguita ogni secondo, indipendentemente dal fatto che un nuovo tick sia arrivato o meno. Ecco come ho cercato di implementare questo compito:
Voglio che la funzione start() venga eseguita ogni secondo, indipendentemente dal fatto che un nuovo tick sia arrivato o meno.
Ho fatto così:
Grazie mille!!!! Puoi ancora dirmi se il mio codice funziona? Non nel tester... Funziona nel tester...? O devo...
Void start()...
Potete anche dirmi se il mio codice funziona?
Non so... non ho controllato...
Nonnel tester... Funzionerà nella vita reale...?
Nel tester, qualsiasi cosa in loop non funziona. Solo quelli sulle zecche funzionano...
In linea, il tuo codice dovrebbe sembrare funzionare. Almeno sembra funzionare logicamente...
Oppure devi...
Void start()...
Capisco. Grazie ancora.
. Se avete delle idee su come identificare in modo più affidabile l'ultima posizione chiusa, le accetterò con gratitudine e cercherò di riprogettare la funzione.
Grazie per la gentile offerta. Purtroppo le buone idee non mi vengono spesso (ahimè...) in testa! Non molto tempo fa, per esempio, ho notato che le vostre funzioni non fanno quasi nessun uso del "componente" - OrderComment
Tuttavia, forse, l'applicazione di questa funzione vi darà nuove idee (per la gioia di tutti i presenti).
Per esempio, se (OrderComment()==" [sl]" && .... - potrebbe ampliare la gamma dei compiti che puoi svolgere!
//---------------------------------------------------------------------------------
"Più funzioni, - buone e diverse!" (c)
. Se avete delle idee su come identificare in modo più affidabile l'ultima posizione chiusa, le accetterò con gratitudine e cercherò di rivedere la funzione.
Per esempio, come se(OrderComment()==" [sl]" && .... - potrebbe ampliare la gamma dei compiti da svolgere!
rid, hai suggerito un modo per identificare lo stop che scatta dalla voce nei commenti dell'ordine. Grazie, ma ci possono essere altre voci oltre a [sl] nei commenti.
Risolvo lo stesso problema confrontando il prezzo di chiusura con il prezzo di stop.