- 2010.10.04
- Konstantin Gruzdev
- www.mql5.com
Grazie, ottimo articolo.
На форуме как-то проскользнула мысль о том, что было бы хорошо иметь стандартный обработчик события «новый бар». Быть может когда-то разработчики придут к этому, а может и нет.
Perché mi è sfuggito. Proprio qui si dice a caratteri cubitali https://www.mql5.com/ru/forum/2176/page21/#comment_26385 che isNewBar() è necessario e può essere programmato.
Inoltre è possibile giocare al gioco "trova dieci differenze". Oltre alle stranezze del funzionamento dell'Expert Advisor sul conto demo, è ovvio che ci sono differenze sul conto demo e sul tester, e sono visibili a occhio nudo... Lo lascio per le passioni sul forum o per il prossimo articolo, se ce ne sarà bisogno.
Le passioni non si vedono, temo che molti non le abbiano nemmeno viste. Le passioni in campionato inizieranno quando i consiglieri inizieranno a cadere....
Ora possiamo andare oltre e creare un gestore di eventi NewBar multicurrency. Ma questo è l'argomento di un intero articolo.
E a questo posso solo aggiungere una grande poesia di un grande poeta.
Quante meravigliose scoperte
Prepara lo spirito dell'illuminazione
E l'esperienza, figlio di errori difficili,
E il genio, amico dei paradossi,
E il caso, inventore di Dio....
Grazie, ottimo articolo.
Perché mi è sfuggito. Proprio lì, a caratteri cubitali, c'è scritto https://www.mql5.com/ru/forum/2176/page21/#comment_26385 che isNewBar() è necessario e può essere programmato.
Ops, mi è sfuggito. Avrei potuto inserire qualche altra idea. A proposito, ho pubblicato un EA basato sul punto 5. È grezzo, però.
Non si vedono le passioni, temo che molti non l'abbiano nemmeno visto.
Sì, sembra che molte persone siano ancora sotto shock per l'inizio del campionato.
E a questo posso solo aggiungere una grande poesia, un grande poeta.
Una poesia a tema. Vorrei che qualcuno offrisse soluzioni reali.
sarebbe meglio se gli sviluppatori introducessero la funzione isNewBar come funzione standard...
A mio avviso, non ha senso che gli sviluppatori introducano una funzione standard isNewBar, poiché si tratta di un caso speciale di OnTick. Sono d'accordo con Prival sul fatto che si tratta di un evento programmabile.
Probabilmente è addirittura necessario introdurre un'elaborazione standard di questo evento. Almeno a livello di esperti.
Almeno è più opportuno dal punto di vista del multithreading nel lavoro. Dopo tutto, qualsiasi elaborazione a livello di terminale può essere organizzata in diversi thread, ma in MQL avremo un solo thread.
A mio parere, l'elaborazione standard sarà particolarmente vantaggiosa per il lavoro multicurrency.
PS
In generale, gli sviluppatori dovrebbero pensare di modificare i gestori di eventi esistenti, gli stessi OnTrade() e OnTick().
Personalmente preferirei vedere almeno un simbolo come parametro...
Modificherei anche OnTick(), o meglio la sua logica. Ora questo evento viene generato se c'è un nuovo tick sulla coppia di valute su cui è appeso l'Expert Advisor. Dal punto di vista dell'analisi multivaluta, sarebbe meglio (credo) generare questo evento se c'è un nuovo tick su qualsiasi strumento.
Cioè, se la matrice è cambiata (revisione del mercato), l'evento newTick() viene generato con che indica cosa è cambiato nella matrice. Sarebbe più comodo sincronizzare tutto .
Raramente, ma ci sono situazioni in cui le quotazioni di uno strumento si bloccano per molto tempo (ho visto una situazione del genere nello yen). E se l'Expert Advisor si blocca su questa coppia, siete nei guai se non avete tradotto tutto il codice in OnTime().
Probabilmente è addirittura necessario introdurre un'elaborazione standard di questo evento. Almeno a livello di esperti.
Almeno è più opportuno dal punto di vista del multithreading nel lavoro. Dopotutto, qualsiasi elaborazione a livello di terminale può essere organizzata in diversi thread, mentre con l'MQL otterremo un solo thread.
Ad esempio, se la matrice è cambiata ( panoramica del mercato ), viene generato l'evento newTick() con che indica cosa è cambiato nella matrice. Sarebbe più comodo sincronizzare tutto.
Un evento di questo tipo può essere ricevuto utilizzando TimeCuurent(), ma cosa fare con esso e come sincronizzarlo è un problema.
Vorrei anche modificare OnTick(), o meglio la sua logica. Attualmente, questo evento viene generato se si verifica un nuovo tick sulla coppia di valute su cui è appeso l'Expert Advisor. Dal punto di vista dell'analisi multivalutaria, sarebbe meglio (credo) generare questo evento se si verifica un nuovo tick per qualsiasi strumento.
Beh, intendo la stessa cosa, in OnTick() e OnTrade() è necessario aggiungere almeno il nome del simbolo come parametro (in OnTrade() è auspicabile aggiungere anche il tipo di evento).
In questo caso OnTick(), ad esempio, può essere generato ogni volta che si verifica un nuovo tick su uno dei simboli (strumenti) presenti nella panoramica.
- www.mql5.com
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Il nuovo articolo L'Handler dell'Evento "Nuova Barra" è stato pubblicato:
Il linguaggio di programmazione MQL5 è in grado di risolvere i problemi a un livello completamente nuovo. Anche quei compiti, che hanno già tali soluzioni, grazie alla programmazione orientata agli oggetti possono salire ad un livello superiore. In questo articolo prendiamo un esempio particolarmente semplice di controllo della nuova barra su un grafico, che è stato trasformato in uno strumento piuttosto potente e versatile. Quale strumento? Scoprilo in questo articolo.
Eseguiamo entrambi gli Expert Advisor su grafici con la stessa coppia e lo stesso periodo. Vediamo cosa abbiamo:
Innanzitutto, entrambi gli Expert Advisor segnalano in modo sincrono la nuova barra. Poi tacciono e solo quattro minuti dopo informano che c'è una nuova barra (questa volta è contrassegnata come 1). Va bene - mi sono appena disconnesso da Internet per alcuni minuti e ho deciso di vedere cosa succederà. Nonostante il fatto che siano state formate poche barre, non abbiamo ricevuto queste informazioni. Nel nostro nuovo Expert Advisor possiamo correggere questo svantaggio, poiché il nostro metodo isNewBar() consente di fare una cosa del genere.
Autore: Konstantin Gruzdev