Discussione sull’articolo "Creare Expert Advisor multipli sulla base dei modelli di trading"
Vasily, sinceramente mi aspettavo di meglio. In questa opera sei riuscito a confondere il lettore con il significato della tua proposta.
Ma avresti potuto chiamarla in modo molto più semplice: "Come negoziare Expert Advisor con la logica MQL4 nel terminale MT5". Ed è a questo che dovreste prestare attenzione.
Se vi foste concentrati su questo punto cardine, la proposta sarebbe stata molto più compatta e comprensibile.
E così, prima si è caricato con le liste dinamiche e la loro applicazione per questo caso particolare. Poi con una tabella di ordini virtuali.
L'intera logica di MQL4 è risolta in MQL5 utilizzando la funzionalità di DUE metodi!
1. ripristino dei ticket stop loss e take profit dallo storico del terminale
2. loro ulteriore controllo quando uno di essi viene eseguito. Il loro ulteriore controllo quando uno di essi viene attivato o l'ordinatore principale viene cancellato.
E poi, dopo aver spiegato queste due funzioni GENERALI , passate agli array dinamici e alla costruzione di "models-mql4-experts".
È molto grave che non abbiate descritto il lavoro con gli ordini pendenti. anche se non sono più complicati degli ordini di mercato, ritardano solo il posizionamento degli ordini di stop-loss e take-profit reali.
Per qualche motivo hanno caricato il lettore con l'inutile file <Time.mqh>, con realizzazioni non molto belle delle sue funzioni.
Poi le funzioni per il conteggio degli ordini e il controllo dei lotti.
Sembra che abbiano cercato di inserire nell'articolo tutta la vostra conoscenza del lavoro con gli esperti, seppellendo sotto questa crescita lo scopo stesso dell'articolo.
Bene, e per quanto riguarda i modelli forniti, non ho capito come si fa a usare lo stop-loss e il take-profit su un ordine. Né in IACD né in Bolinger ho trovato l'uso degli stop.
In generale, non mi è piaciuto leggere l'articolo. c'è un sacco di peso inutile che ha seppellito un'idea brillante.
- www.mql5.com
Sì, senza ripristinare l'elenco delle operazioni dalla cronologia del conto (o dal proprio file), si è rivelato un giocattolo da tester.
Il lavoro con gli ordini pendenti esiste, ma è scritto proprio alla fine dell'articolo. (probabilmente non avete avuto la pazienza di leggerlo :)).
In generale, l'articolo è davvero difficile da capire. Potrebbe essere strutturato meglio in termini di presentazione delle informazioni.
a:Udmurt2
Dove pensi che sia la logica degli esperti di MQL4 nel mio articolo? Dalla recensione scritta da te ho l'impressione di una totale mancanza di comprensione del materiale. Per molti aspetti è ovviamente colpa mia, forse avrebbe dovuto essere strutturato meglio.
--------------------------------
Ha qualche suggerimento specifico per migliorare la struttura dell'articolo?
Sono d'accordo, molte cose sono state lasciate "dietro le quinte". Considerate questa versione come 1.0. Ecco cosa si prevede di introdurre:
1. Serializzazione dei dati basata su file di dati;
2. Ricostruzione della storia delle transazioni del modello in base alla cronologia degli ordini;
3. Descrizione completa del modello sulla base degli ordini pendenti. 4. Descrizione del modello di trading sulla base di un sistema complesso di ordini reciprocamente conteggiati;
4. descrizione del modello di trading utilizzando un sistema complesso di ordini conteggiati reciprocamente. 5. descrizione del modello di trading basato sugli ordini pendenti;
5. Controllo dinamico dell'efficienza di ciascun modello (rimozione dei modelli inefficienti dall'elenco dei modelli).
6. Ritiro delle funzioni esterne dai modelli di trading, ad esempio le funzioni di gestione del capitale.
7. Supporto multithreading (ora parzialmente utilizzato, grazie alla parallelizzazione interna di MT5).
...
Come potete vedere, il materiale che deve essere ancora considerato è così completo che è giunto il momento di scrivere un altro articolo al riguardo, la seconda parte per così dire. Questo articolo non è un articolo di gomma, in ogni caso credo che i compiti che mi ero prefissato siano stati risolti. E qui Udmurt2 si sbaglia particolarmente. La base dell'approccio proposto è costituita dalle liste dinamiche, che non lavorano affatto con gli ordini pendenti (come gli è sembrato per qualche motivo). Questo è il motivo per cui viene prestata tanta attenzione a questi ultimi. In linea di massima, non c'è strategia che non possa essere risolta senza utilizzare gli ordini pendenti. Tuttavia, l'approccio che ho proposto non impone alcuna restrizione all'uso di ordini pendenti che simulano gli stessi stop e take-out. Tuttavia, in questo caso sono necessari ulteriori controlli e sottosistemi di programma, in particolare sarebbe molto utile una struttura che descriva l'evento Trade(). Sebbene tale struttura non esista (perché MQL5 è in fase di sviluppo), ritengo che sia una follia scrivere sistemi di controllo per possibilità inesistenti.
Tra l'altro, nel caso più semplice, è possibile scrivere un restauratore di scambi da file in poche ore. Tuttavia, questo aspetto non è stato preso in considerazione nell'articolo, perché voglio che questa soluzione sia ben ponderata, non solo scritta frettolosamente. In ogni caso, sarà uno dei tanti problemi interessanti da risolvere nella seconda parte.
MQL5 è in fase di sviluppo. Anche l'approccio proposto, così come MQL5, si svilupperà nel tempo e guadagnerà opportunità. A qualcuno potrebbe sembrare che allo stato attuale sia un giocattolo per un tester. In questo caso, possiamo dire che MetaTrader 5 è anche un giocattolo per i conti demo. Ma credetemi, non passerà molto tempo e MT5 diventerà uno standard de facto, e l'approccio che ho proposto sarà una soluzione potente per il trading multi-currency/multitimeframe/multisystem. La cosa principale ora è capire le basi. Queste basi sono quelle che ho illustrato in questo articolo. Una volta comprese, potrete facilmente scrivere il vostro modello di trading utilizzando tutti i vantaggi degli ordini pendenti e della memorizzazione delle operazioni nei file.
- www.mql5.com
Dove pensate che sia la logica degli esperti di MQL4 nel mio articolo?
Ecco i compiti principali che dovremo risolvere:
- Un Expert Advisor deve operare sulla base di diversi sistemi di trading contemporaneamente. Allo stesso tempo, deve essere ugualmente facile operare sia con uno che con più sistemi di trading;
- Tutti i sistemi di trading inclusi nell'Expert Advisor non devono entrare in conflitto tra loro. Ogni sistema di trading deve elaborare solo il suo contributo alla posizione aggregata e solo i suoi ordini;
- Tutti i sistemi aggregati devono essere ugualmente facili da negoziare sia su un solo timeframe dello strumento che su tutti i timeframe contemporaneamente.
- Uno qualsiasi dei sistemi aggregati deve essere ugualmente facile da negoziare sia su uno strumento di trading che su tutti gli strumenti disponibili contemporaneamente.
e da tutti questi punti la logica del terminale MT4 è chiaramente e assolutamente identificata
1. Può guidare contemporaneamente più Expert Advisor grazie alla magia e all'assenza di posizione netta.
2. Gli Expert non entrano in conflitto tra loro grazie alla stessa magia e all'assenza di posizione netta.
3. Tutto è negoziabile su qualsiasi timeframe. Tutto può essere negoziato su qualsiasi timeframe
4. Tutto viene negoziato su qualsiasi strumento.
DOMANDA:Cosa avete scritto di nuovo, che non è presente nel terminale MT4?
Ho scritto sopra che potreste costruire il vostro ragionamento partendo dalla base di MQL4 e svilupparne l'implementazione. così sarebbe molto più chiaro quello che volete dire.
Io lo costruirei in modo graduale, dalla contabilizzazione degli stop tramite magik-ticket alla creazione di un modello di Expert Advisor-mt4
e solo dopo passerei ai metodi di controllo di più Expert Advisor. (liste/non liste è quello che si ha voglia di usare)
.
Considerate questa versione come 1.0. Ecco cosa si prevede di introdurre:
2. Ricostruzione dello storico dei modelli di trading. Ricostruzione della storia delle operazioni del modello in base alla cronologia degli ordini;
3. Descrizione completa del modello in base alle pendenze. Descrizione completa del modello basato sugli ordini pendenti;
4. Descrizione del modello di trading che utilizza un sistema complesso di ordini reciprocamente conteggiati;
i punti da 2 a 4 sono quelli che avreste dovuto risolvere immediatamente in questo articolo. tutto il resto viene dal maligno e poteva essere lasciato a discrezione del programmatore o nel secondo articolo.
Gli elenchi dinamici sono solo uno dei metodi di controllo e contabilizzazione.
Ditemi, quale altro approccio proposto ha una tale flessibilità e controllabilità?
qualsiasi esperto di MT4 :)))
C-4:
A qualcuno potrebbe sembrare che allo stato attuale si tratti di un giocattolo per tester. In questo caso, possiamo dire che MetaTrader 5 è ora anche un giocattolo per i conti demo.
Sì, lo è ;)
Ma MT è in fase di finalizzazione. E il codice proposto nell'articolo potrebbe essere stato scritto per i conti reali.
A proposito, come va l'Expert Advisor Championship? Ha sofferto di riavvii?
Vasily, devi lavorare troppo. A volte è necessario tornare all'inizio e rifare tutto. Sono già convinto per la millesima volta che le persone tendono a complicare tutto. Ti raccomando: rifai le tue classi base sulla logica madre del funzionamento del terminale MT4 con un dispositivo lineare. Molte cose diventeranno più chiare.
Altrimenti dovrò scrivere il secondo articolo :)
Sì, è così ;)
Ma MT è in fase di finalizzazione. E il codice proposto nell'articolo avrebbe potuto essere scritto subito in vista del reale.
A proposito, come sta il campionato EA? Ha sofferto dei riavvii?
Ha sofferto, ma non in modo significativo. Naturalmente, aveva un gestore di eventi di inizializzazione/deinizializzazione integrato. Tuttavia, non ho tenuto conto di una cosa: l'inizializzazione e la deinizializzazione possono avvenire durante le ore di riposo, ad esempio il sabato, come previsto dagli organizzatori del campionato. Questo problema si risolve con poche righe di codice, ma non mi ero accorto di una combinazione così insidiosa (beh, non si può tenere conto di tutto), quindi da qualche parte si è perso molto.
Cercherò di scrivere una semplice serializzazione dei dati nel prossimo futuro e di inserirla nell'articolo (in linea di principio ci vorranno due giorni). Con questo sarà un prodotto completo per lavorare su conti in tempo reale (demo e reali). Si può dire che si tratta di un giocattolo per un tester. Manca solo il 5-6% del codice di manutenzione per un uso affidabile sui conti reali.
Abbiamo anche intenzione di introdurre una cosa del genere: diciamo che esiste un modello di trading astratto. Utilizza solo ordini pendenti (stop, take-out, punti di ingresso). Ci saranno due modi di utilizzarlo nel motore: tutti i punti di entrata saranno virtuali, nascosti agli occhi del broker. La seconda opzione: tutti i take stop e i punti di entrata saranno su ordini pendenti, per aumentare l'affidabilità. È interessante notare che per ogni modello ci saranno due tipi di virtualizzazione (pendente e virtuale). Cioè sarà così: switch virtual_orders=true; - e tutti gli ordini sono virtuali, nascosti agli occhi del broker; switch virtual_orders=false; - e tutti gli ordini diventano magicamente pendenti. La cosa migliore è che non sarà richiesto alcun supporto speciale da parte del modello, tutto sarà implementato a livello di motore. I modelli dovranno solo specificare il tipo di ordine per i punti di ingresso, mentre il tipo di stop e di take sarà scelto in modo indipendente, a seconda dell'interruttore virtual_orders.
- www.mql5.com
a:Udmurt
Per favore, non mi dica cosa avrei dovuto fare e cosa non avrei dovuto fare. Non faccio i suoi interessi e non lavoro per lei.
Considero la nostra conversazione un'assurdità, perché non comprendi nemmeno appieno l'essenza delle tue stesse affermazioni. Dimostrami che capisci davvero MQL4 e scrivi un esperto di trading su di esso, per esempio, operando contemporaneamente su 500 modelli di trading diversi. Prendiamo come esempio 5 strategie * 20 strumenti * 5 timeframe. Quando il tuo Expert Advisor funzionerà chiaramente su di esse, almeno nel tester, allora e solo allora ammetterò che le sciocchezze surriscaldate che stai dicendo non sono realmente sciocchezze, ma osservazioni utili di una persona intelligente. Ora voglio chiederle un favore: non mi disturbi per niente e non provi nemmeno a comunicare con me senza il codice sorgente di questo Expert Advisor.
- 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 Creare Expert Advisor multipli sulla base dei modelli di trading è stato pubblicato:
L'utilizzo di un approccio orientato agli oggetti in MQL5 semplifica enormemente la creazione di Expert Advisor multivaluta/multisistema/multitimeframe. Immagina, il tuo unico EA esegue le operazioni su diverse dozzine di strategie di trading, su tutti gli strumenti disponibili e su tutti i possibili intervalli di tempo! Inoltre, l'EA è facilmente testabile nel tester e per tutte le strategie incluse nella sua composizione possiede uno o più sistemi di gestione del denaro funzionanti.
In generale, il sistema di interazione che abbiamo costruito può essere descritto dal seguente schema:
Da notare che, sebbene la suddivisione dei modelli, come presentato nel codice precedente, avvenga all'interno della funzione OnTick() , non deve essere necessariamente così. Il ciclo di suddivisione può essere facilmente inserito in qualsiasi altra funzione desiderata, come OnTrade() o OnTimer().
Autore: Vasiliy Sokolov