English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
preview
Approccio brute force per la ricerca di pattern (Parte V): Una nuova prospettiva

Approccio brute force per la ricerca di pattern (Parte V): Una nuova prospettiva

MetaTrader 5Trading | 17 febbraio 2025, 14:46
374 0
Evgeniy Ilin
Evgeniy Ilin

Contenuto


Introduzione

È passato un po' di tempo da quando ho pubblicato l'ultimo articolo sull'argomento. Da allora ho dovuto ripensare molto alle cose che facevo prima. Questo ha permesso di guardare al problema della profittabilità del trading algoritmico da un'angolazione completamente diversa, prendendo in considerazione tutte le piccole cose che non era stato possibile considerare prima. Al posto della matematica e del codice standard e incolore, propongo ai miei lettori di affrontare il problema in modo completamente diverso. Questo articolo può essere sia l'inizio di qualcosa di nuovo che un riavvio del vecchio. Sono stanco di essere intelligente e gettare equazioni inutili e codice nella pattumiera della storia, quindi questo articolo sarà il più semplice e comprensibile possibile per qualsiasi lettore.


Modi per completare l'obiettivo

Ho iniziato a pensare alla varietà di percorsi che portano le persone al successo o che le portano in vicoli ciechi mentre cercano di fare soldi con il trading algoritmico. In teoria, si scopre che esistono diverse strade:

  1. Approccio frontale.
  2. Immagine bellissima.
  3. Sistemi di trading già pronti.
  4. Modernizzazione e ibridazione degli algoritmi disponibili pubblicamente.
  5. Approccio di squadra.

Il primo approccio è il più comune tra le persone ostinate. In effetti, per le persone come me in termini di abbandono delle ambizioni e delle false speranze. Non sembra molto, ma in realtà è molto utile per il vostro futuro. Questo approccio richiede molto impegno e tempo e se non si smette ad un certo punto, si rischia di diventare dottori di ricerca in scienze dei forum con tutte le conseguenze che ne derivano. Penso che non siano necessari chiarimenti qui. Tutti capiscono perfettamente il mio sarcasmo. Tuttavia, questo approccio consente di apprendere le informazioni teoriche che ho appreso a mio tempo e il suo valore è assoluto. L'importante è fermarsi in tempo. Naturalmente, se valutiamo il tempo impiegato e i risultati ottenuti, il risultato sarà tutt'altro che perfetto.

Il secondo approccio è molto più semplice e di fatto, molto più efficiente in termini di tempo speso, perché comporta uno sforzo molto minore e tutto ciò che dovete fare è convincere le persone che avete successo. Tutto è nella nostra testa e a un certo punto ho capito che funziona benissimo. Le persone tendono a fidarsi delle belle confezioni. Non c'è posto per l’etica o altro qui. Il risultato è l'unica cosa che conta. Può sembrare cinico, ma tutto il mondo vive così. Tutto ciò che serve è creare una certa immagine. Potete utilizzare tecniche di martingala, di mediazione o altre tecniche di trading. Sono sufficienti per creare un'immagine di questo tipo.

Credo che il terzo approccio sia saggio perché in questo caso lo sforzo speso sarà minimo, ma la vostra immagine è reale. Con una corretta implementazione di questo approccio, non ci saranno aspetti negativi, anche se ci saranno alcuni svantaggi. La cosa più importante per implementare questo approccio è la conoscenza. Se non avessi avuto l'esperienza che ho ora, non sarei stato in grado di trarne vantaggio anche con il giusto atteggiamento e un approccio razionale ed equilibrato per raggiungere i miei obiettivi.

Per quanto riguarda il quarto approccio, non so se qualcuno lo pratica. In teoria, dovrebbe richiedere meno tempo, ma non posso dire nulla sulla sua efficienza. In generale, tutto è possibile, ma non penso che questo approccio sia il più efficace, per usare un eufemismo. Piuttosto, è meglio utilizzarlo in combinazione con il precedente, in quanto aumenterà la variabilità del trading e le possibilità di ricevere segnali di trading più coerenti.

Il quinto approccio può essere efficace solo se si hanno molte idee e si lavora costantemente su di esse, tuttavia è molto meglio del primo, anche se ogni membro del team utilizza un approccio frontale. Ma si dà il caso che la maggior parte degli sviluppatori di sistemi di trading siano dei solitari narcisisti e che solo pochi siano in grado di mettere insieme un team del genere e soprattutto, di organizzarne il lavoro. So che esistono squadre di questo tipo e che hanno un certo successo. È un bene se vi trovate in un team del genere che lavora insieme per sviluppare algoritmi profittevoli. Il vantaggio è che alla fine la qualità e la quantità totale degli sviluppi possono giocare un ruolo decisivo e rendere possibile la creazione di un prodotto competitivo.

Naturalmente, questi sono scenari piuttosto idealizzati e il percorso di ognuno è un po' unico, ma nonostante ciò posso affermare con certezza che, indipendentemente dal percorso scelto, il risultato sarà sempre preceduto dall'acquisizione di un qualche tipo di conoscenza. Non è necessariamente solo tecnica o filosofica, ma nel mio caso è entrambe le cose. Mi sembra che sia proprio così, perché un problema deve sempre essere visto da tutti i lati per poter essere risolto.


Ottenere un’entrata stabile basata su sistemi di trading automatizzati

Prima di trovare un approccio armonioso al trading automatico, è necessario prima strutturare l'intero processo dall'inizio alla fine, dal momento in cui viene concepita l'idea alla sua implementazione:

  1. Idea.
  2. Predisporre il piano di attuazione.
  3. Sviluppo.
  4. Correzione degli errori.
  5. Miglioramenti e ammodernamenti.
  6. Test approfonditi.
  7. Ottimizzazione e determinazione dei limiti di applicabilità
  8. Preparazione al trading (risorse, conto demo)
  9. Trading su un conto reale

Se siete alle prime armi, sarete quasi sicuri al cento per cento che il vostro sistema funzionerà, perché l'avete letto da qualche parte o l'avete inventato voi stessi e vi siete convinti che funzionerà. La realtà è che non avete un modello matematico del mercato ed è talmente complesso che, anche supponendo che ne abbiate uno, non sarete in grado di utilizzarlo a causa della sua incredibile complessità e dell'irrazionalità del suo utilizzo in un EA. Quindi cosa possiamo fare? La risposta non è così semplice come sembra. Questo è esattamente il motivo per cui ho ideato il mio algoritmo brute force.

È ovvio che se ci si assume il compito di costruire un super EA, si passerà attraverso molte di queste fasi prima di arrivare al risultato desiderato, che in realtà è estremamente dubbio, per usare un eufemismo. Lo so per esperienza personale. La cosa più fastidiosa dopo l'ennesimo tentativo fallito di sviluppare un EA è il fatto che dovrà essere buttato via, il che significa che nonostante l'utilità dell'esperienza acquisita, questo non riduce la delusione per il tempo speso. Quando si sviluppano EA da soli, questo è inevitabile. Se stiamo parlando di un ordine Freelance, allora tutto è ancora più triste, perché riceverete il vostro EA, che molto probabilmente non servirà a nulla.

A questo proposito, voglio chiarire che questo è principalmente per il vostro tempo. Le persone di successo hanno la capacità di valutare correttamente il valore del tempo. Se il tempo speso non porta al risultato desiderato, non vale la pena di continuare. Ecco il diagramma dell'approccio standard:

Diagramma 1.

approccio standard

Ogni azione del diagramma richiede un tempo proprio e il risultato complessivo dipende direttamente dalle conoscenze e dalle risorse di cui si dispone. Per risorse non si intendono necessariamente i fondi disponibili per gli investimenti, ma piuttosto la disponibilità di computer per testare costantemente i sistemi di trading o i fondi per acquistare le attrezzature necessarie. Anche il desiderio di perseguire i propri obiettivi e la disponibilità di tempo libero sono importanti. Il fatto è che trovare o creare un buon sistema di trading è solo metà della battaglia, la seconda metà riguarda l'aspetto di come gestirlo correttamente considerando che si ha semplicemente poco tempo libero.

Se avete almeno un minimo di comprensione del problema, allora potete vedere come cambierà il diagramma se utilizziamo sistemi di trading già pronti del market MQL5 o da altre fonti. Non è necessario ridisegnare tutto, ma solo indicare le sostituzioni appropriate:

Diagramma 2.

sostituire lo sviluppo con la ricerca

Il significato del diagramma non cambia, ma cercare e scegliere qualcosa di già pronto è molto più facile e direi, molto più piacevole che scrivere tonnellate di codice. Fortunatamente, posso fare entrambe le cose. Naturalmente, ciò richiede conoscenza ed esperienza. Tra le altre cose, l'idea alla base di questo diagramma è che gli EA possono perdere la loro rilevanza nel tempo e la maggior parte finirà sicuramente per essere rottamata. Dopo aver buttato via un altro EA, non sospettate che possa essere usato di nuovo dopo qualche tempo, vero? Anche scavare nel mucchio di rifiuti alla ricerca di algoritmi dimenticati da tempo e pensare a come applicarli richiederà molto tempo.

Tuttavia, sarebbe bene accumulare un certo database di EA e continuare a fare trading con successo, cambiandoli con saggezza. In questo caso, il nostro processo si semplifica ulteriormente, perché non è necessario cercare nuovi EA. È possibile? Sì. Idealmente, questa collezione di EA dovrebbe avere le seguenti qualità:

  • Flessibilità dell'algoritmo.
  • Possibilità di segnale di inversione.
  • Prestazioni (consumo minimo di risorse).
  • Numeri magici degli ordini.

Sulla base di questi dati, è persino possibile inserire una definizione matematica delle prospettive di un insieme selezionato di EA. Possiamo anche provare a cercare tali espressioni per rendere più chiaro come e cosa influenzano le caratteristiche di questi EA e il loro numero. In alternativa, possiamo soltanto fare un semplice e comprensibile elenco:

  1. Maggiore è il numero di EA, migliore è la nostra raccolta (semplicemente perché più EA ci sono, più soddisfano i criteri di trading richiesti nell'area di trading selezionata).
  2. Più input ha un EA, più efficacemente può essere ottimizzato.
  3. Gli EA basati sulle barre sono migliori (sono più facili da usare e da testare, oltre che da ottimizzare, e non dobbiamo preoccuparci di ping, slippage e altri problemi).
  4. Se è possibile invertire il segnale di trading, il peso dell'EA raddoppia.

Non mi soffermerò qui sulla sovraottimizzazione e sull'adattamento allo storico, poiché si tratta di una questione a parte. Presumo sappiate come fare tutto questo correttamente. Se tutto è stato fatto correttamente, il nostro diagramma si trasforma in un disegno molto semplice:

Diagramma 3.

trading basato sul database EA

Ovviamente, più EA si hanno, meglio si possono ordinare i robot. Ma qui ci troviamo di fronte a diversi momenti spiacevoli. Maggiore è la qualità della selezione che vogliamo ottenere, maggiore sarà il tempo necessario per effettuarla. Inoltre, dovremo fare una selezione molte volte. È necessario farlo regolarmente. Quindi, si trasformerà in un altro lavoro, a meno che qualcuno non faccia tutto al posto vostro. A questo proposito, sorge la domanda: "Perché ne ho bisogno quando ci sono già esempi collaudati di attività regolari assolutamente prive di rischi?".

Inoltre, più successo volete avere dalle vostre attività di trading, tanto maggiore è il numero di terminali operativi simultanei di cui avete bisogno. Ciò significa che è necessario monitorare costantemente ogni terminale, aggiungere e rimuovere nuovi EA da esso, nonché configurare e monitorare il loro lavoro. Come capisci, questo è tutto un carico di lavoro. Nonostante ci siamo liberati dalla necessità di sviluppare costantemente nuovi EA, non ci siamo ancora liberati della routine principale. Elenchiamo i principali punti ad alta intensità di lavoro:

  • Selezione di EA mediante ottimizzazione.
  • Test preliminare di previsione su un conto demo.
  • Selezionare i segnali di trading più duraturi.
  • Trading reale con le combinazioni più durature.
  • Controllo costante (spegnimento, pausa, sostituzione dei robot, ecc.) (lavoro con i terminali).

Tutto questo è possibile, ma solo se si dispone di un modello di flusso di lavoro ottimale. Ma ovviamente c'è un limite. In base alla mia esperienza, credo che lavoriate da soli. È impossibile fare il salto di qualità, perché tutto richiede tempo.

Inizialmente ho sviluppato il mio algoritmo di brute force a scopo di ricerca, per capire se è possibile ottenere un trading profittevole utilizzando algoritmi semplici. Ho capito che si può fare. Date le capacità di cui disponeva all'epoca, era in grado di fornire ulteriori EA solo per ampliare il loro numero totale. Per capire meglio come gli EA semplici possano essere utili e come utilizzarli correttamente, dobbiamo comprendere un po' più a fondo come un particolare algoritmo sia in grado di risolvere il problema del trading profittevole e come trattare correttamente certi EA.


EA e pattern

Non basta avere una collezione di algoritmi e ottimizzarli costantemente. L'ottimizzazione è un'abilità separata e la sua padronanza determina il risultato dell'utilizzo dell'EA su un conto di trading. Ogni EA è unico a modo suo e ha le sue sfumature sia nell'ottimizzazione che nell'utilizzo. Un'opzione importante che ritengo debba essere inclusa in qualsiasi EA è la possibilità di invertire i trade. Ciò significa che ogni azione di trading viene sostituita da quella opposta, ovvero che l'acquisto viene sostituito dalla vendita e la vendita dall'acquisto. Inizialmente, questa opzione sembra del tutto inutile, perché c'è la falsa convinzione che tutto debba funzionare come previsto.

Per comprendere questo fatto, dobbiamo innanzitutto capire cos'è un pattern. Nella concezione popolare, un pattern è la differenza tra alcune caratteristiche statistiche e una distribuzione casuale. Considerando questo problema in modo superficiale uno può pensare all'inerzia dei pattern. Ma questo è solo uno dei possibili scenari futuri per questo pattern. Solo una piccola parte dei pattern ha un'inerzia. Consideriamo il pattern trovato all'interno di un backtest o di un segnale di trading.

Supponiamo di avere un database molto ampio di robot, dal quale possiamo creare gruppi separati in base ad alcune caratteristiche che consideriamo appropriate per un motivo o per l'altro. Le caratteristiche non sono importanti quanto il raggruppamento stesso:

Diagramma 4.

raggruppamento di robot

Qui il mio programma di brute force appare per la prima volta come un elemento del diagramma di flusso. In realtà, il programma effettua questo raggruppamento grazie alle diverse impostazioni di ciascuna delle sue copie. In sostanza, ogni copia del programma, configurata in modo diverso, è un gruppo completamente indipendente di robot da cui è possibile effettuare la selezione. I robot generati possono essere utilizzati per il trading, come mostrato nella parte più in basso del diagramma di flusso. La cosa più importante è che tutti questi gruppi di robot, dopo un po', vengono divisi in tre gruppi:

  • Quelli profittevoli con un segnale diretto (basato sull'inerzia del pattern).
  • Profittevoli con un segnale invertito (basato su un cambiamento immediato del pattern).
  • Caotico (semplice adattamento allo storico).

È impossibile sapere in anticipo quale set fornirà un determinato gruppo di segnali, ma dopo qualche tempo è possibile filtrare per esclusione. A questo proposito, più sono questi gruppi e segnali indipendenti, meglio è. È meglio creare almeno due segnali per ogni gruppo di EA:

  1. Segnale diretto.
  2. Segnale invertito.

Inoltre, possiamo aggiungere segnali misti provenienti da gruppi diversi. Tutto questo massimizzerà le possibilità di trovare efficacemente gruppi di EA composti in modo armonioso e in grado di lavorare a lungo. Due fatti possono portare a trovare buoni portafogli nel più breve tempo possibile:

  1. Raggruppamento di massima qualità ed efficacia degli EA disponibili (il maggior numero possibile di gruppi indipendenti).
  2. Segnale diretto e invertito per ciascun gruppo + segnale misto.

Tutti questi fattori forniscono in ultima analisi i segnali più numerosi e variegati, che alla fine ci forniscono il miglior campione possibile da utilizzare successivamente nel trading reale. I fattori più importanti che influenzano la capacità di effettuare tali raggruppamenti sono la dimensione e la diversità della collezione di EA. Nel caso del mio programma, la ponderatezza delle impostazioni e la varietà degli algoritmi interni, come i metodi di analisi, il clustering e altri, sono fondamentali. Uno dei metodi universali per aumentare la variabilità è il clustering:

Diagramma 5.

limitazioni di funzionamento

In questo caso, il clustering è rappresentato dalla possibilità di suddividere i sottogruppi di robot per giorno della settimana e per finestre temporali all'interno di un giorno, il che, di per sé, già fornisce le più ampie opportunità di raggruppare gli EA in portafogli. Naturalmente, si possono trovare molte opzioni di clustering, ma credo che questa sia la più semplice ed efficace. Inoltre, può essere utilizzata per configurare il programma stesso in modo che funzioni in determinati giorni e orari. Ciò consente di ottimizzare al massimo il consumo di risorse di calcolo e di impostare i pesi corretti per ogni copia del programma. Ogni impostazione ha una propria complessità di calcolo, quindi questa tecnica è necessaria.

Inoltre, vorrei spendere qualche parola sugli EA complessi e semplici. In teoria, è possibile creare un EA che sia il più flessibile e variabile possibile in relazione a quasi tutti i pattern, ma credo sia ovvio a tutti che più complesso è il sistema, più facile è romperlo. È anche possibile, naturalmente, che il sistema si riveli di grande successo e tolleranza ai guasti, ma guardiamo le cose in modo realistico. Diciamo che pochi hanno tali sistemi (anche se credo che questa sia un'utopia), e sicuramente non lo condivideranno mai con altri. Ma cosa devono fare gli altri?

Ogni trader algoritmico di successo dovrebbe comprendere le semplici verità che presento e in misura maggiore, il profitto di queste persone si basa su questa comprensione. Il trading redditizio è prima di tutto, la capacità di utilizzare correttamente gli strumenti a propria disposizione. Aspettare strategie magiche non è la soluzione migliore. Qualsiasi idea può essere realizzata con il giusto set di soluzioni di accompagnamento. Questo è ciò che cerco di mostrare in questo articolo, senza concentrarmi su algoritmi specifici. 


Massima automazione della catena di lavoro

L'idea si è sviluppata gradualmente, passando da una semplice ricerca alla completa automazione della ricerca di segnali di trading stabili. Si è arrivati esattamente a quello che sarebbe dovuto arrivare. Al momento, il mio sistema esegue un'intera gamma di compiti, che vanno dalla semplice generazione di EA di trading al trading nei terminali MetaTrader 4 e 5. Questa è più o meno la versione attuale di ciò che sto facendo ora con il mio programma:

Diagramma 6.

struttura attuale dell'uso del brute force

Questa struttura mi solleva completamente dalle operazioni di routine, come ad esempio:

  • Selezione e raggruppamento degli EA.
  • Abilitazione/disabilitazione degli EA sui grafici e loro successiva configurazione.
  • Ottimizzazione e selezione delle impostazioni.
  • Ricerca di nuovi EA.
  • Creazione di nuovi EA.

Uno dei trucchi di questa struttura è il fatto che oltre a generare semplici EA che finiscono nel mio canale Telegram, allo stesso tempo c'è un EA universale all'interno dei terminali. Non è necessario rimuoverlo costantemente dai grafici e installarlo ogni volta che il programma trova un nuovo EA funzionante. Crea invece l'EA stesso e un file di testo separato che è l'equivalente dell'EA. Il file finisce nella cartella condivisa del terminale, in cui c'è una cartella corrispondente da cui l’EA universale legge le impostazioni. Tutto questo avviene automaticamente al volo e non richiede il mio controllo e l'EA stesso finisce nel canale Telegram.

Quindi, l'intero sistema automatizza sia la creazione degli EA che la pubblicazione automatica sul mio canale. Tutto ciò che devo fare è scalare il sistema, acquistare le attrezzature e monitorare i segnali di trading. Ora, ovviamente tutto questo funziona all'1% delle sue capacità, ma lo considero abbastanza adatto come opzione dimostrativa.

Al momento ho solo un computer a mia disposizione. È piuttosto vecchio, ma è sufficiente per garantire il funzionamento alternato di due lavoratori indipendenti (programmi di brute force). Sulla base di queste due impostazioni, ho creato due segnali: diretto e invertito per ognuno e inoltre segnali misti diretti e invertiti. Sulla base dei risultati dei test effettuati per due mesi, è possibile constatare quanto detto sopra:

Figura 1.

diretto profittevole e invertito profittevole

Secondo i risultati dei test, in due mesi di trading continuo a capacità minima sono rimasti solo due segnali chiaramente positivi. Ce n'è un altro (misto), ma è quasi identico a quello invertito mostrato qui. Si riferiscono a due algoritmi di trading completamente differenti e alle loro impostazioni. Qui si può notare che il trading positivo può essere ottenuto sia su un segnale diretto che su uno invertito. Potete trovare gli EA generati durante l'intero processo di test nel mio canale Telegram. Trovate il link nel mio profilo e alla fine dell'articolo.


EA ricevitore universale

Naturalmente, gli EA più ponderati e di qualità sono molto più efficaci. Possono essere utilizzati per il trading automatico. Tuttavia, la maggior parte degli EA può essere utilizzata ripetutamente. Qualsiasi algoritmo ha dei limiti di applicabilità e molti EA che apparentemente non hanno soddisfatto le aspettative di uno sviluppatore o di un cliente hanno una loro risorsa inutilizzata. Se stimiamo il rapporto approssimativo di quanti sistemi di trading non raggiungono mai la fase di test (almeno su un conto demo), vedremo che ce ne sono semplicemente tonnellate.

La verità è che se non si sa come ottimizzare correttamente un EA, questo verrà certamente scartato. Ho buttato via un bel po' di EA interessanti per questo motivo. Solo che non mi ero reso conto che potevano essere utilizzati in modo un po' diverso. Sfortunatamente questo richiede una certa esperienza. Non tratterò questo argomento in questa sede, ma scriverò un articolo separato sull'ottimizzazione avanzata un po' più avanti.

Decidere di intraprendere un'avventura del genere non è facile, perché a livello istintivo si vuole sempre prendere un super-EA, metterlo nel terminale, premere un pulsante e dimenticarsene per almeno qualche settimana. Ma dobbiamo ancora trovarlo e verificare che abbia davvero le caratteristiche di cui abbiamo bisogno. Ma pensate a questo: mentre lo cercate, potete solo prendere tutto quello che avete ed eseguire il maggior numero possibile di configurazioni differenti.

Naturalmente, dovrete dedicare molto tempo e sforzi per controllare con competenza il processo di trading di questi EA. Nel mio sistema, ho aggirato questo problema utilizzando un EA universale, che è una comoda aggiunta opzionale al consulente generato (impostazione). La prima e più semplice versione di tale EA contiene le seguenti importanti variabili di controllo:

input int DaysToFuture=50;//Days to future
input LOT_VARIATION LotMethod=SIMPLE_LOT;//Lot Style
input bool bInitLotControl=false;//Auto lot bruteforce
input double MinLotE=0.01;//Min Lot
input double LotDE=0.01;//Lot (without variation)
input double MaxLotE=1.0;//Max Lot
input bool CommonE=true;//Common Folder
input string SubfolderE="T_TEYLOR_DIRECT";
input int MinutesAwaitE=2;//Minutes To Check New Settings
input bool bBruteforceInvertTrade=false;//Invert Bruteforce Trade

Naturalmente, queste non sono tutte le variabili presenti, ma sono quelle necessarie per fornire l'automazione delle seguenti azioni importanti:

  • Disabilitazione del trading dopo la scadenza del tempo consentito per il trading (se non ne è stato generato uno nuovo durante l'impostazione corrente, quindi quello vecchio perde la sua rilevanza).
  • Stile di trading (lotto semplice / aumento graduale del lotto dal minimo al massimo in una determinata finestra di trading / diminuzione graduale del lotto dal massimo al minimo in una determinata finestra di trading).
  • Lettura delle impostazioni dalla cartella del terminale corrente / dalla cartella condivisa dei terminali.
  • Possibilità di selezionare una sottodirectory.
  • Intervallo di aggiornamento delle impostazioni.
  • Inversione del segnale.

Tutto ciò ci permette di configurare con flessibilità l'interazione tra i terminali e il programma di brute force, nonché di lanciare un numero arbitrariamente elevato di terminali e macchine brute force simultaneamente su una sola macchina, nella misura in cui le sue capacità lo consentono. L'unica cosa è che ora devo assegnare un EA separato ad ogni grafico, perché non ho ancora creato un multi ricevitore universale. Verrà aggiunto in seguito. Ne avremo bisogno per implementare un trading migliore e più ponderato. Sarà molto comodo vedere tutti i pro e i contro nel diagramma:

Diagramma 8.

vantaggi e svantaggi

Come si può vedere dal diagramma, si raccomanda l'implementazione di due sistemi sia nell’EA ricevitore semplice che in quello avanzato:

  • Sistema di sincronizzazione del trading parallelo.
  • Sistema di ottimizzazione del trading parallelo.

Si tratta di componenti aggiuntivi molto importanti per tutti gli algoritmi, che possono sia migliorare la qualità del trading parallelo sia ridurre i costi di trading. Ho intenzione di metterli in funzione un po' più avanti, ma per ora non ci sono le risorse necessarie per farlo.

Quando si parla di trading con un solo EA, tutti questi elementi sono superflui, ma quando si tratta di operare in parallelo con molti EA, sorge inevitabilmente la necessità di un componente aggiuntivo. Il vantaggio del mio approccio è che posso implementare questi componenti aggiuntivi in modo più efficiente grazie all'uniformità di tutti gli EA. Questo vale sia per i sistemi esterni che per quelli interni.

Vorrei anche dire che il multi ricevitore è stato progettato per funzionare su un grafico senza la necessità di allegarlo ad ogni strumento. L'unico svantaggio di questo tipo di EA è che è più difficile da personalizzare per ogni strumento specifico, ma nonostante ciò presenta molti più vantaggi che svantaggi. Forse in uno dei prossimi articoli mi soffermerò più dettagliatamente su questi sistemi, descrivendo i dettagli tecnici delle innovazioni che ho potuto introdurre durante la mia pausa nella scrittura degli articoli.


EA per la raccolta dinamica delle quotazioni

In precedenza, avevo un semplice EA che creava file di testo che dovevano essere aperti manualmente nel programma. Naturalmente, questi dati perdono di rilevanza dopo qualche tempo. Per garantire il funzionamento di tutte le strutture sopra descritte è necessario avere accesso alle ultime quotazioni. Per farlo, è bastato creare un EA che scrive costantemente dati nella cartella condivisa del terminale. Per compilare gli insiemi di strumenti e periodi negoziabili, ho deciso di aggiungere gli elenchi corrispondenti alle impostazioni del programma:

Diagramma 9.

aggiornamento delle ultime quotazioni

Utilizzando questa tecnica, possiamo configurare ogni browser in modo che abbia il proprio e unico set di strumenti periodici, senza dover duplicare i dati in diverse cartelle. In questo caso, è sufficiente un solo terminale per gestire un numero qualsiasi di terminali di trading. Se impostiamo gli intervalli di analisi su anni, le possibili pause e i ritardi nell'aggiornamento dei dati sono insignificanti. Inoltre, l'intero sistema si basa sul paradigma barra per barra, in modo che il tutto sia il più affidabile possibile e resistente a quasi tutte le situazioni di emergenza. Questo bot ha solo poche impostazioni:

input bool CommonE=true;//Common Folder/Terminal Folder
input double YearsE=10.0;//Years Of History Data
input int MinutesForNew=2;//Rewrite Timeout In Minutes

L'EA scrive sia nella cartella comune di tutti i terminali o nella cartella del terminale corrente. Scrive gli ultimi anni di storico, che indichiamo partendo dall’ora del terminale attuale e andando indietro nello storico. L'EA scrive dopo un timeout specificato in minuti. Questo era l'ultimo elemento di tutta la logica. La parte più difficile è finita. Non resta che implementare un EA ricevitore che operi sullo stesso grafico. Ho già preparato metà delle funzionalità per la sua implementazione.


Conclusioni

In questo articolo mi sono allontanato dalla solita parte tecnica e ho cercato di guardare al problema del trading profittevole da un'angolazione leggermente diversa, utilizzando la mia esperienza personale. Come potete vedere, oltre agli EA stessi (che sono solo una piccola parte del profitto), ci sono molte sottigliezze e sfumature che possono sia aiutarvi a raggiungere il profitto che ostacolare i vostri sforzi. È alquanto interessante notare che il risultato è ben lontano da quanto previsto all'inizio.

Lungo il percorso, ho dovuto adattare gradualmente l'idea originale alla realtà, un processo del tutto incontrollabile, ma piuttosto spontaneo e inevitabile. Di conseguenza, ho trovato la giusta via d'uscita dall'impasse teorica, che inevitabilmente può essere trovata solo in modo pratico. Ciò significa più robot, più segnali, più computer e più automazione. Vorrei che questo articolo servisse da stimolo per molti teorici e cercatori del Graal, rivelando che è sempre possibile trovare una via d'uscita alternativa. Nel prossimo articolo mostrerò in dettaglio quali miglioramenti il mio sistema ha acquisito. Tuttavia, c'è ancora molto lavoro da fare.

Tutti i segnali attualmente disponibili si trovano qui. Nell'articolo ho riportato solo i più importanti. Ce ne saranno di più e la loro qualità aumenterà man mano che otterrò maggiore potenza e miglioramenti. Vedremo se riuscirò a ottenere un gruppo di segnali stabili e versatili. Per quanto riguarda gli EA generati automaticamente, potete trovarli nel mio canale Telegram pubblico. Per ora, la loro qualità corrisponde alla mia capacità minima disponibile, ma in seguito, con l'aumento della capacità, vedrete aumentare sia la varietà che la qualità.

Link

Tradotto dal russo da MetaQuotes Ltd.
Articolo originale: https://www.mql5.com/ru/articles/12446

Come creare un indicatore True Strength Index personalizzato utilizzando MQL5 Come creare un indicatore True Strength Index personalizzato utilizzando MQL5
Ecco un nuovo articolo su come creare un indicatore personalizzato. Questa volta lavoreremo con il True Strength Index (TSI) e creeremo un Expert Advisor basato su di esso.
MQL5 - Anche voi potete diventare maestri di questo linguaggio MQL5 - Anche voi potete diventare maestri di questo linguaggio
Questo articolo sarà una sorta di intervista a me stesso, in cui vi racconterò come ho mosso i primi passi nel linguaggio MQL5. Vi mostrerò come potete diventare un ottimo programmatore MQL5. Vi spiegherò le basi necessarie per raggiungere questo traguardo. L'unico prerequisito è la volontà di imparare.
Comprendere e Utilizzare Efficacemente il Tester di Strategie MQL5 Comprendere e Utilizzare Efficacemente il Tester di Strategie MQL5
C'è una necessità essenziale per i programmatori o gli sviluppatori di MQL5 di padroneggiare strumenti importanti e preziosi. Uno di questi strumenti è il Tester di Strategie; questo articolo è una guida pratica alla comprensione e all'utilizzo del tester di strategie di MQL5.
MetaTrader 4 su Mac OS MetaTrader 4 su Mac OS
Forniamo uno speciale installatore per la piattaforma di trading MetaTrader 4 su macOS. È una procedura guidata completa che consente di installare l'applicazione in modo nativo. Il programma di installazione esegue tutti i passaggi necessari: identifica il sistema, scarica e installa l'ultima versione di Wine, la configura e quindi installa MetaTrader al suo interno. Tutti i passaggi vengono completati in modalità automatica e puoi iniziare ad utilizzare la piattaforma immediatamente dopo l'installazione.