Discussione sull’articolo "Sistemi di Trading Adattivi e loro utilizzo nel Client MetaTrader 5" - pagina 3
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
Cara Forexistence,
>>Caro
Hai risposto alla tua domanda :)
>> Si, forse in parte ho risposto io stesso alla mia domanda, e vorrei solo una conferma o opinioni diverse.
Hai ragione, ci sono due modi per modificare le condizioni di trading, da un lato possiamo aggiungere nuove condizioni alla strategia CStrategyMA (ma otterremo una nuova strategia, diversa da quella iniziale), l'altro modo è quello di creare una nuova classe (per esempio, CStrategyMA34) e aggiungere ulteriori condizioni di acquisto/vendita lì.
Naturalmente, è necessario includere il file con la nuova strategia e aggiungere queste nuove strategie alla funzione Expert_OnInit della classe CAdaptiveStrategy:
Il secondo modo è migliore: si possono aggiungere molte strategie e le loro varianti.
Non è necessario rimuovere le istanze della classe CStrategyMA (se ne avete), non guarderemo nelle loro sandbox e i loro risultati saranno negativi.
Il mercato ci aiuterà a determinare la migliore strategia nell'elenco delle strategie incluse in m_all_strategies.
>> Ok, ho capito il punto come immaginavo.
Ma la domanda, ora, è un'altra... Sto lavorando per "inputizzare" l'EA al fine di lavorare con le ottimizzazioni.
Quindi per esempio intendo pezzi di codice come questo:
dove (dichiarazioni) :
e dove le variabili:
RSItempoframe, RSIappprice, RSIvarA_root, RSIvarB_root
lavorare in collaborazione con
La mia domanda è:
E' opportuno modificare il codice in modo da avere una variabile di input a livello di classfile della strategia (file di inclusione cioè CStrategyRSI.mqh), oppure con la corretta struttura/connessioni/alberi a livello di altre classi/inclusi (CAdaptiveStrategy.mqh)?
In altre parole, per influenzare il sistema centrale dell'idea di EA, con l'aggiunta di alcuni parametri di input per i test di ottimizzazione,
dovrei fare qualcosa del genere: (variabili di input in CAdaptiveStrategy.mqh)
/* ... */ class CStrategyRSI : public CSampleStrategy { protected: int m_handle; // handle of the Moving Average (iMA) indicator int m_period; // period of the Moving Average indicator double m_values[]; // array for storing the value of indicator int RSIvarA, RSIvarB; ENUM_TIMEFRAMES m_timeframe; ENUM_APPLIED_PRICE m_appprice; public: // initialization of strategy int Initialization(int period,bool virtual_trade_flag,ENUM_TIMEFRAMES RSItempoframe, ENUM_APPLIED_PRICE RSIappprice,int RSIvarA_root, int RSIvarB_root); /* ... */ //set period for the RSI (was //set period for the moving average) m_period=period; m_timeframe=RSItempoframe; m_appprice=RSIappprice; RSIvarA=RSIvarA_root; RSIvarB=RSIvarB_root; /* ... */ /creare l'handle dell'indicatore m_handle=iRSI(_Symbol,m_timeframe,m_period,m_appprice); /* ... */oppure un'altra cosa del genere: (variabili di input in CSampleRSI.mqh)
In altre parole, le variabili di input dovrebbero essere usate nel file di inclusione della strategia, prima della dichiarazione della classe (esempio2, proprio questo qui sopra) o le variabili di input dovrebbero
derivare dal ciclo "for" della strategia CAdaptive e dovrebbero prendere in considerazione l'inizializzazione di tutte le classi e i parametri di input? (Intendo per questo primo esempio (appena sopra questo codice) :)
public:
// inizializzazione della strategia
int Initialization(int period,bool virtual_trade_flag,ENUM_TIMEFRAMES RSItempoframe,
ENUM_APPLIED_PRICE RSIappprice,int RSIvarA_root, int RSIvarB_root);
In che modo il nucleo del sistema sarà influenzato diversamente, se si utilizzano le variabili di input nel fileStrategyRSI.mqh o nel file CAdaptiveStrategy.mqh?
Suppongo che, se si tratta solo di testare, posso usare le variabili di input nel file CStrategyRSI.mqh, se invece voglio sia testare che influenzare il core dell'EA.
influenzare il sistema centrale dell'idea di EA (il sistema adattivo e il simulatore di trading, l'include del trader virtuale) dovrei dichiarare
variabili di input non nell'include della strategia, ma nel file dell'include adattivo, con tutte le connessioni e le chiamate appropriate
di input/output dell'inizializzazione e della dichiarazione di classi/funzioni?
Giusto?
Spero che tu abbia capito il mio punto di vista.
Tnkx
....Ma la domanda, ora, è un'altra... Sto lavorando per "immettere" l'EA al fine di lavorare con le ottimizzazioni....
Se vuoi trovare i migliori parametri della strategia usando l'opzione di ottimizzazione nello Strategy Tester, è meglio riscrivere l'EA con qualche strategia particolare e giocarci.
Il concetto di EA adattivo e la sua struttura non consentono di ottimizzare i suoi parametri direttamente nello Strategy Tester, perché non c'è nessuna strategia e nessun parametro particolare da ottimizzare.
Quando utilizziamo l'EA adattivo nel trading o lo testiamo nello Strategy Tester, abbiamo un sistema di trading come un insieme di segnali provenienti da diverse strategie. In altre parole, il Tester non può accedere alle sandbox virtuali che abbiamo creato e non ne sa nulla.
Se si desidera utilizzare i parametri di input per configurare i parametri delle strategie di trading da utilizzare, è meglio utilizzare i file, che consentono di configurare i parametri e l'elenco delle strategie di trading.
Se si desidera trovare i parametri migliori della strategia utilizzando l'opzione di ottimizzazione nel Tester di strategia, è meglio riscrivere l'EA con una particolare strategia e giocare con essa.
>> Ok, ho capito il punto. Non sarà un compito facile...
Il concetto di EA adattivo e la sua struttura non permettono di ottimizzare i suoi parametri direttamente nello Strategy Tester, perché non c'è nessuna strategia e nessun parametro particolare da ottimizzare.
>> Sì. L'EA è idealizzato per lavorare conparametri ancora ottimizzati per le strategie. Quello che ho capito è che utilizza strategie diverse in base a come/quale il mercato risponde (o viceversa da un altro punto di vista...).
Quando utilizziamo l'EA adattivo nel trading o lo testiamo nello Strategy Tester, abbiamo un sistema di trading come un insieme di segnali provenienti dalle diverse strategie. In altre parole, il Tester non può accedere alle sandbox virtuali che abbiamo creato e non ne sa nulla.
>> Ho capito questo concetto, ma non completamente.
Capisco che non ha senso far interagire il tester con le sandbox virtuali, non ha senso logico per il trading.
Il mio unico obiettivo era quello di far modificare l'EA, per poterlo usare con un addon: l'obiettivo di usare questo EA anche per ottimizzare i parametri, senza riscrivere un altro EA, o riscrivere tutte le strategie, o testare ogni strategia singolarmente. La mia idea era solo di "comodità" per la possibilità di ottimizzare i parametri, all'interno dello stesso EA, ma questa ottimizzazione non è destinata a lavorare con il commercio virtuale / sistema adattivo. Si tratta solo di avere la possibilità di ottimizzare i parametri delle strategie, utilizzando la stessa finestra di input dell'EA, e non di scrivere un altro EA per ogni strategia, ottenere i parametri ottimizzati e inserirli come valori fissi nel sistema di strategia adattiva. Spero che abbiate capito il mio punto di vista.
Se si desidera utilizzare i parametri di input per configurare i parametri delle strategie di trading da utilizzare, è meglio utilizzare i file, che consentono di configurare i parametri e l'elenco delle strategie di trading.
>> Di quali file stai parlando? ( Se vuoi usare i parametri di input per configurare i parametri delle strategie di trading da usare, è meglio usare i file ).
Stai parlando di usare CStrategyXXX.mqh o del fatto di scrivere un altro EA individuale per ogni strategia, ottimizzarlo e copiare i parametri come valori fissi in CStrategyXXX.mqh?
Are you talking about to use CStrategyXXX.mqh or the fact to write another individual EA for each strategy, optimize it, and copy the parameters as fixed values in CStrategyXXX.mqh?
Intendo dire che il contenitore della strategia può essere riempito secondo alcune impostazioni dell'EA adattivo.
Ad esempio, in Adaptive_Expert.Expert_OnInit() può essere caricato un file con le impostazioni dell'EA adattivo:
MA;15
MA;25
Stoch;3;12;20
Stoch;3;15;30
Strategy1;Param1;Param2;
Strategy2;Param1;Param2;
Analizzando ogni riga, riconosce la strategia da includere e la aggiunge con i parametri corrispondenti specificati. È uno dei modi per configurare l'EA adattivo senza compilazioni. Per semplicità, non l'ho considerato nell'articolo.
Capisco che non ha senso far interagire il tester con sandbox virtuali, non ha senso logico il trading.
Il mio unico obiettivo era quello di far modificare l'EA, per poterlo utilizzare con un addon: l'obiettivo di utilizzare questo EA anche per ottimizzare i parametri, senza dover riscrivere un altro EA, o riscrivere tutte le strategie, o testare ogni strategia singolarmente. La mia idea era solo di "comodità" per la possibilità di ottimizzare i parametri, all'interno dello stesso EA, ma questa ottimizzazione non è destinata a lavorare con il commercio virtuale / sistema adattivo. Si tratta solo di avere la possibilità di ottimizzare i parametri delle strategie, utilizzando la stessa finestra di input dell'EA, e non di scrivere un altro EA per ogni strategia, ottenere i parametri ottimizzati e inserirli come valori fissi nel sistema di strategia adattiva. Spero che abbiate capito il mio punto di vista.
Esiste un modo per esaminare le sandbox. Lo si può fare indirettamente utilizzando lo Strategy Tester.
Supponiamo di voler riprodurre i risultati presentati nella figura 2 dell'articolo.
Abbiamo bisogno della versione di debug dell'EA adattivo adaptive-systems-mql5-sources-debug-en.zip (riporta le sandbox). Successivamente, compiliamo e apriamo Adaptive_Expert_Sample in Strategy Tester, selezioniamo EURUSD H1 dal 01.01.2010 al 20.08.2010 e avviamo il test. Le sandbox e i risultati della strategia adattiva saranno salvati in tester\files\equity_res.txt In questo modo è molto facile riprodurre tutte le figure.
L'analisi delle azioni/bilanci del trading virtuale vi permetterà di semplificare l'ottimizzazione.
Ciao a tutti,
Grazie per questo ottimo articolo, ora sto lavorando solo su un EA adattivo.
Tuttavia, non sono sicuro di dove inserire una funzione di trailing stop in questo tipo di EA.
Penso che tale funzione possa essere aggiunta nella parte CAdaptiveStrategy.mqh.
Qualcuno di voi potrebbe aiutarmi? Forse avete già sviluppato una funzione del genere?
Grazie mille in anticipo!
Cordiali saluti,
Patrick
Non riesco a riprodurre i risultati riportati nell'articolo.
Ho scaricato i file sorgente, li ho compilati e li ho eseguiti sullo stesso timeframe (EURUSD H1, 04/01/2010 - 20/08/2010) e ho ottenuto un risultato diverso.
Ho usato i file di debug e ho controllato i risultati del trading virtuale ... i grafici delle azioni virtuali sono identici, ma le operazioni reali non corrispondono.
Senza un file di log delle operazioni reali è difficile capire perché le mie operazioni non corrispondono a quelle dell'articolo.
Qualche idea sul perché non corrispondano?