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
C'è la possibilità in mql5 di tracciare lo stato di una posizione aperta, per esempio che venga chiusa ora?
...Ma poi arriva il prossimo tick, tutti i passi di cui sopra vengono ripetuti, la selezione della posizione viene fatta, il volume viene preso e UN'altra posizione viene piazzata nella direzione della chiusura.
Cosa si può fare per evitare questo?
Non c'è niente da fare. Finché il tick corrente non viene elaborato dalla funzione OnTick(), tutti i tick in arrivo vengono saltati.
Quello che succede alla posizione in tempo reale, può essere tracciato usando la funzione OnTrade ().
Non c'è bisogno di fare nulla. Finché il tick corrente non viene processato dalla funzione OnTick(), tutti i tick appena arrivati vengono saltati.
Quello che succede alla posizione in tempo reale può essere tracciato usando la funzione OnTrade ().
Se non fosse per l'esecuzione asincrona della richiesta, tutto sarebbe a posto. Ma quando arriva un tick, la posizione è chiusa, mentre è ancora nella lista quando arriva il tick successivo, quindi come possiamo capire se la posizione è aperta, aperta o chiusa? Come trattare gli eventi commerciali? Imho, un'operazione di base non dovrebbe essere così complicata.
Idealmente, quando si cerca di chiudere una posizione, si ottiene lo stato "Chiuso" o "In elaborazione" o qualcos'altro, da cui si può determinare che è attualmente in fase di qualche azione, poi si può lasciare in pace con la coscienza pulita.
E ora, bisogna guardare attraverso un sacco di storia e capire come tutto è successo, e non c'è garanzia che tutto sia corretto.
Se non fosse per la natura asincrona della richiesta, tutto andrebbe bene. Ma quando arriva un tick, la posizione è chiusa, e quando arriva il tick successivo, sono ancora nella lista, quindi come possiamo capire se sono aperte o chiuse? Come trattare gli eventi commerciali? Imho, un'operazione di base non dovrebbe essere così complicata.
Idealmente, quando viene fatto un tentativo di chiudere una posizione, questa otterrà lo stato "Closed" o "Processing" o qualsiasi altra cosa, in base al quale si può determinare che è attualmente nel processo di qualche azione, quindi può essere lasciata sola con la coscienza pulita.
E ora, bisogna guardare attraverso un sacco di storia e capire come tutto è successo, e non c'è garanzia che tutto sia corretto.
Perché... Chi dice che NewBar non sia un evento? )))))))))
OnNews - la notizia arriva, il bot deve leggerla... Ufficialmente... Non frugando in WinAPI in modo sinistro.
1.NewBar - Un evento che potete implementare voi stessi. È probabile che questo sia ciò che consigliano. Una volta ho chiesto di Connect e la risposta è stata semplice: dovete implementarlo voi stessi.
Non è un problema - l'ho implementato e ora cerco di tracciare quasi tutto ciò di cui ho bisogno con l'aiuto del timer (ho già circa 30 eventi). Quando ho finito, l'utente non può cambiare nessuno dei parametri che mi interessano, in modo che l'esperto non lo sappia.
2. OnNews - L'idea in generale è comprensibile, si potrebbe aderire. Anche se è probabile che gli sviluppatori indichino la presenza di News.wav.
Anche se, ho cercato a lungo dagli sviluppatori di espandere la funzionalità del linguaggio attraverso la possibilità di lavorare con il calendario delle notizie economiche e altri FA. Pensi che faranno tutto bene? Non credo.
Ho già inviato la mia domanda in questa occasione, la speranza è ancora viva. Sarebbe bello se un esperto facesse un po' di lavoro per conto suo...
Se non fosse per la richiesta asincrona, tutto andrebbe bene. Ma quando arriva un tick, la posizione è chiusa e al tick successivo sono ancora nella lista, e come possiamo capire se sono aperte, aperte o chiuse? Come trattare gli eventi commerciali? Imho, un'operazione di base non dovrebbe essere così complicata.
Idealmente, quando si cerca di chiudere una posizione, questa ottiene lo stato "Closed" o "Processing" o qualsiasi altra cosa, da cui si può determinare che è attualmente nel processo di qualche tipo di azione, quindi può essere lasciata sola con la coscienza pulita.
E ora, bisogna guardare attraverso un sacco di storia e capire come tutto è successo, e non c'è garanzia che tutto sia corretto.
Anche ora può essere fatto con facilità, se si sa come farlo. Gli sviluppatori hanno promesso di riscrivere OnTrade(), aggiungere i parametri necessari lì. se fatto, sarà ancora più facile da gestire.
Nessuno impedisce di gestire tali situazioni sul posto, in OnTick() o OnTime() - nel luogo dell'operazione di trading; o in OnTrade(), se si vogliono catturare azioni dell'utente o operazioni di trading non controllate direttamente dal codice.
1.NewBar - Un evento che potete implementare voi stessi. È probabile che questo sia ciò che consigliano. Una volta ho chiesto di Connect e la risposta è stata semplice: dovreste implementarlo voi stessi.
...Sono un po' confuso su come vedo OnNewBar...))
OnNewBar(ulong Param), dove Param - bitwise riempito in 1 nelle posizioni di timeframe con una nuova barra... - Non tutti i grafici sono aggiornati simultaneamente dal numero di barre...
Per esempio...
...00001 - aggiornato solo un minuto
...00111 - solo un minuto, 2 e 3 sono aggiornati... e così via...
È solo un'idea, ma penso che sarebbe utile. Anche se...?;)
Sono un po' confuso su come vedo OnNewBar...)
OnNewBar(ulong Param), dove Param - riempie 1 nelle posizioni timeframe con una nuova barra... - Non tutti i grafici si aggiornano simultaneamente per il numero di barre...
Per esempio...
...00001 - solo il minuto è stato aggiornato.
...00111 - solo un minuto, 2 e 3 sono aggiornati... ecc.
È solo un'idea, ma penso che sarebbe utile. Anche se...?;)
A spese del parametro è necessario pensare. Vale la pena farlo (può essere, è più facile mettere TF lì come ENUM_TIMEFRAMES)?
Almeno, volevo fare qualcosa del genere, ma poi ho rinunciato...
PS
Ho dimenticato di dire che volevo inventare OnNewBar nella classe Chart, su cui sto lavorando ora (al momento ci sto ancora impacchettando roba standard + le mie piacevoli inezie).
Basta non chiedermi perché non mi piace il CChart standard... :)
Se avete bisogno di tracciare una nuova barra, date un'occhiata al mio codice. potrebbe essere utile. ho provato diverse varianti - questo metodo è il più affidabile
https://www.mql5.com/ru/code/107
Se avete bisogno di tracciare una nuova barra, date un'occhiata al mio codice. potrebbe essere utile. ho provato diverse varianti - questo metodo è il più affidabile
https://www.mql5.com/ru/code/107
Cosa c'è di sbagliato nel tempo di apertura dell'ultima barra rispetto al periodo-simbolo SERIES_LASTBAR_DATE? Molto più facile della tua versione e non hai bisogno di un indicatore.
Inoltre, per un EA multivaluta una nuova barra dovrebbe essere definita per ogni simbolo, significa che l'indicatore dovrebbe essere inizializzato per tutti i simboli.
Se avete bisogno di tracciare una nuova barra, date un'occhiata al mio codice. potrebbe essere utile. ho provato diverse varianti - questo metodo è il più affidabile
https://www.mql5.com/ru/code/107
Di nuovo - codice... codice... Il codice è buono... ma anche le tattiche, i loop... ;)
Il grafico non riceve un messaggio sulla creazione di una nuova barra? Non ci credo...)))
È un problema creare un evento? C'è almeno una variabile predefinita?
In generale, è più facile elaborare gli eventi che riempire una montagna di codice. E inoltre - con errori (i programmi senza errori non lo fanno mai!!! )))))