Discussione sull’articolo "Architettura basata sugli eventi in MQL5: Come convertire un Expert Advisor in un sistema di trading a tutti gli effetti"
Lavorare con gli indicatori senza buffer in un sistema di trading automatico: probabilmente può servire da esempio.
//+------------------------------------------------------------------+ //| Funzione di trading | //+------------------------------------------------------------------+ void OnTrade() { Sleep(0); //--- } //+------------------------------------------------------------------+ //| Funzione TradeTransaction | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result) { Sleep(0); //--- }A che scopo?
fxsaber #:
Lavorare con gli indicatori senza buffer in un sistema automatizzato: probabilmente può servire da esempio.
Lavorare con gli indicatori senza buffer in un sistema automatizzato: probabilmente può servire da esempio.
Nell'esempio viene effettuato un aggiornamento rigoroso dei dati del simbolo (sarebbe opportuno utilizzare MQL_TESTER).
void OnTick() { //--- if(BuySignal) { cSymbol.Refresh(); cSymbol.RefreshRates();
Tuttavia, non viene verificata l’attualità del segnale calcolato tramite gli eventi e i tick. E questo è un problema reale.
È possibile attenuarla tramite OrderSend asincroni, ma non risolverla. Pertanto, anche in un esempio come questo, è necessario trasmettere additionally nell’evento ChartEvent i dati del tick in cui si è verificata la generazione dell’evento.
Fantastico, il tipo di servizio dei programmi MQL5 è davvero sottovalutato.
Ottimo esempio, grazie.
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
Il nuovo articolo Architettura basata sugli eventi in MQL5: Come convertire un Expert Advisor in un sistema di trading a tutti gli effetti è stato pubblicato:
Quando si sviluppa un Expert Advisor (EA) in MQL5, molti iniziano con la soluzione più ovvia: inseriscono tutta la logica nel metodo OnTick. È davvero più facile iniziare in questo modo. Ma questo approccio ha un costo nascosto. Con la crescita del progetto, le regole di trading, la verifica delle condizioni, l'elaborazione degli ordini, l'aggiornamento dei dati, l'interfaccia, i calcoli e la registrazione vengono tutti combinati in un unico gestore. Di conseguenza, il codice cresce fino a diventare ingestibile e di fatto, è tenuto insieme solo dalla pura fortuna. Qualsiasi cambiamento in un punto inizia a influenzare parti completamente diverse del sistema. Si corregge il pannello visivo e improvvisamente lo scenario di trading smette di funzionare correttamente. Si modifica il filtro di entrata - un errore viene visualizzato durante il controllo in background. Un simile EA si trasforma rapidamente in un monolite fragile, dove la complessità cresce più velocemente della fiducia dello sviluppatore.
MetaTrader 5 è molto più di un semplice flusso di quotazioni. Si basa su eventi. Il terminale riceve costantemente tick, segnali del timer, azioni dell'utente, cambiamenti dello stato di trading ed eventi relativi alla profondità del mercato. Questi messaggi devono essere gestiti separatamente. Per raggiungere questo obiettivo, MQL5 prevede diversi gestori di eventi, ognuno con la propria area di responsabilità. OnTick è responsabile degli aggiornamenti di mercato. OnTimer — per attività periodiche e in background. OnChartEvent — per la reazione all'interfaccia grafica e alle azioni dell'utente. Quando la logica viene distribuita in base al suo scopo, il codice smette di essere disordinato. Inizia ad assomigliare a un sistema ingegneristico ben strutturato, in cui ogni modulo svolge il proprio compito e non interferisce con quelli vicini.
In questo articolo analizzeremo come passare dal modello tutto in OnTick verso un'architettura più matura basata sugli eventi. Analizziamo i ruoli dei gestori di eventi predefiniti e degli eventi personalizzati, nonché dei servizi non collegati a un grafico. Analizziamo più da vicino gli errori tipici che compromettono l'architettura ancor prima che inizi il lavoro vero e proprio. L'idea principale è semplice: quando MQL5 viene utilizzato per lo scopo per cui è stato progettato, ci permette di costruire non solo robot di trading, ma anche sistemi applicativi completi.
Autore: MetaQuotes