TSR - rianimare i sistemi di trading

 

Continuando il tema: dov'è la linea di demarcazione tra i modelli di adattamento e quelli reali?


TSR è l'abbreviazione di Trading Systems Recovery


Sto postando senza una descrizione della teoria e senza screenshot. Gli screenshot saranno in Code Base


E avvertirò coloro che sono particolarmente dotati:

1. La versione allegata dell'Expert Advisor è stata tagliata al minimo indispensabile per scopi educativi

2. Sulle questioni di miglioramento dell'Expert Advisor, vai al BFG.

Se hai qualche domanda, tipo: "Perché ottengo risultati diversi?" Nessuna risposta dall'autore.



Facciamo un esperimento utilizzando un sistema di trading che si basa sulla previsione della direzione futura del movimento delle quotazioni mediante la regolazione dei coefficienti di ponderazione della rete neurale elementare a uno strato - perceptron su dati storici. Il principio di questo sistema di trading è stato descritto in dettaglio nel mio articolo "Come trovare un sistema di trading". Prendiamo i dati storici per la coppia di valute EURUSD per 9 mesi precedenti o più sul grafico timeframe H1. Lo divideremo in tre sezioni indipendenti di tre mesi ciascuna. Il primo sarà utilizzato per il test finale, mentre gli altri due saranno utilizzati per adattare la storia. Per evitare di eseguire il sistema di trading separatamente, ho immediatamente combinato due perceptron in un sistema di trading. E ho creato la funzione Supervisor() con l'aiuto della quale il sistema di trading ha tre modalità di funzionamento, a seconda del passaggio dei parametri di input: 1 - adattamento e test del primo perceptron, 2 - adattamento e test del secondo perceptron, 3 - filtraggio setacciando le letture incoerenti di entrambi i perceptron in modalità test senza ottimizzazione o in modalità auto-trading su un deposito demo o reale.

Regolabili ai dati storici sono i pesi del perceptron x11, x12 ... x42 così come p e sl. Il parametro di ingresso sl è una costante per tutte le sezioni. I livelli di Stop Loss e Take Profit sono impostati per tutte le posizioni aperte proprio da questo valore. Un altro parametro di input p - il periodo di tempo di ritardo per la differenza di prezzo di apertura, è anche una costante. L'entrata nel mercato avviene all'inizio di una nuova formazione di barre, cioè in base ai prezzi di apertura delle barre e alle letture del perceptron, a seconda del valore del parametro di input del passaggio, e l'uscita solo all'attivazione di uno Stop Loss o Take Profit. L'ottimizzazione viene effettuata utilizzando l'algoritmo genetico di identificazione degli estremi e il saldo massimo viene preso come estremo. L'importo iniziale, per esempio $1000000, dovrebbe essere molto grande durante l'ottimizzazione per evitare che l'algoritmo si blocchi sulle chiamate di margine. Parametri di input: lotti - volume delle posizioni da aprire in lotti e mn - numero magico unico, in modo che l'Expert Advisor non confonda la gestione dei propri ordini (che ha aperto) con gli ordini di altri (che non ha aperto).


Al primo stadio abbiamo bisogno di scoprire quali dovrebbero essere i valori delle variabili di input p e sl. Per fare questo, selezioniamo le ultime due parti della storia, cioè da 6 mesi fa a oggi. Abbiamo impostato tutti i parametri dei pesi del perceptron su valori da Start = 0 a Stop = 200 in passi di 1. Imposta il valore p da Start = 3 a Stop =100 in passi di 1, il valore sl da Start = 100 a Stop =1000 in passi di 10 (o da 10 a 100 in passi di 1 per quotazioni a quattro cifre). Impostare il valore di passaggio a 1. Seleziona i seguenti parametri da ottimizzare: x11, x21, x31, x41, p e sl. Tutte le altre caselle di controllo dovrebbero essere disabilitate. Attivare l'ottimizzazione. Una volta completata l'ottimizzazione, impostate i parametri di ingresso con il miglior passaggio.


Secondo passo: adattare i pesi del primo perceptron sulla seconda sezione di dati storici. Impostare la data e l'ora dell'ottimizzazione da 6 mesi fa a 3 mesi fa. Deselezionare i parametri ottimizzati solo dalle variabili di input p e sl. Eseguire l'ottimizzazione. Dopo che il montaggio è stato completato, impostare i parametri di ingresso secondo il miglior passaggio.


Terza fase: adattamento dei pesi del secondo perceptron sulla terza sezione di dati storici. Impostare la data e l'ora dell'ottimizzazione da 3 mesi fa a oggi. Deseleziona i parametri ottimizzati: x11, x21, x31, x41 e impostali per x12, x22, x32 e x42. Le altre caselle di controllo devono essere deselezionate. Impostare il passaggio della variabile d'ingresso a 2. Iniziare l'ottimizzazione. Una volta completata l'ottimizzazione, impostate i parametri di ingresso con il miglior passaggio.


Questo è tutto, il nostro sistema di trading è stato adattato ai dati storici da 6 mesi fa fino ad oggi. Salviamo i valori dei parametri di input nel file delle impostazioni. Impostare la variabile di ingresso pass a 3. Deseleziona "Usa la data". Avvia il test. Guardiamo il grafico dei test. Possiamo vedere che la curva dell'equilibrio e del capitale tende verso l'alto nella parte destra del grafico e tende verso il basso nella parte sinistra. Ora dobbiamo fare in modo che la bilancia tenda verso l'alto nella zona esterna al campione di regolazione. Portiamo il cursore del nostro mouse sulla linea del bilancio, dove inizia l'aumento del profitto e guardiamo la data nel tooltip. Si scopre che la curva di equilibrio tendeva verso l'alto quasi nove mesi fa, contando da oggi, esclusi 10 giorni, cioè 8 mesi e 20 giorni. E l'aggiustamento è stato effettuato su un tratto di 6 mesi. Quindi, c'è un test di successo al di fuori del campione ottimizzato . Evidenziamo questa zona fuori campione per analizzarla più in dettaglio. Nel complesso i risultati sono abbastanza soddisfacenti, anche se significativamente inferiori al record di J. Soros, ma superiori a quello di W. Niederhoffer.


Per essere sicuri di aver trattato il montaggio in alcune parti della storia, è necessario e sufficiente deselezionare la casella di controllo "Use date". Ed esegui il test dell'Expert Advisor con i valori 1 e 2 attraverso tutta la storia disponibile. In ognuna di queste modalità, possiamo vedere che la crescita verso l'alto della curva di equilibrio è osservata solo all'interno di quei periodi, sui quali sono stati montati determinati perceptron. Per tutti gli altri periodi della storia non c'è una tendenza positiva, tranne che per singole gobbe che terminano in avvallamenti.


Come abbiamo visto, nonostante il fatto che entrambi i perceptron non hanno superato i test forward al di fuori del campione ottimizzato di dati storici, tuttavia il filtro dei loro segnali congiunti ha dato risultati positivi su dati storici di cui non si sapeva nulla al momento del fitting. Puoi anche sperimentare altri sistemi di trading, come quelli basati sulla scomposizione di semplici medie mobili o su reti neurali multistrato più avanzate. Se il sistema di trading è robusto, è più probabile che produca risultati positivi sui segnali di trading filtrati al di fuori del periodo di ottimizzazione. Se non è robusto, non darà risultati positivi sul periodo ottimizzato con il filtro attivato. Tuttavia, la robustezza del TS è secondaria rispetto ai costi generali di spread, swap e commissioni del broker. Quindi, con un overhead significativo, i risultati positivi nei test forward sono solo un sogno, perché il payoff atteso è necessariamente negativo.



File:
tsr.mq4  4 kb
 

Non ero d'accordo con Reshetov in molti modi (non su questo argomento). Di tanto in tanto io e lui agganciavamo uno scambio di opinioni, e di solito mi mandava via, dandomi dell'idiota e del cretino, esplicitamente o implicitamente. Da parte mia, non l'ho presa sul personale.

Ho una grande richiesta per tutti: non impegnatevi nella fluderastia in questo thread. Se hai qualcosa di costruttivo da dire sull'argomento, scrivi, altrimenti non scrivere.

 

Gg :) un altro graal per i nerd di Reshetov :)

Costruttivo? Chi sta guardando l'OOS da dietro? Viene dall'ovvio.

 
TheXpert:


Costruttivo? Chi sta guardando l'OOS da dietro? Questo viene dall'ovvio.


Metti OOS davanti - nessuno ti ferma. Il punto è che in TS viene prima la ragione - un segnale di trading, e poi la conseguenza - un ordine aperto che sarà chiuso con profitto o perdita. E quindi, non importa se è davanti all'OOS o dietro, sulle relazioni di causa-effetto, non influirà su nulla, perché i segnali non sono impostati sull'OOS, ma solo controllati lì per lousiness. I segnali di trading continueranno a precedere le entrate nel mercato, e non viceversa, cioè l'ordine non cambierà. Se l'Expert Advisor sta perdendo, perde sia davanti che dietro. Se è redditizio, non gli importa dove si trova esattamente l'OOS. La cosa più importante è che l'area OOS sia adiacente alle aree di montaggio. E poiché i mercati cambiano costantemente e la trama redditizia ha una durata limitata, è comprensibile che l'OOS sia meglio controllato in fondo, dato che il futuro su cui faremo trading è davanti.

Quindi, per essere più sicuri, possiamo testare OOS sia davanti che dietro. Se il TS perde qui o là, allora non è certamente robusto.

 
Yuri, in poche frasi, qual è l'essenza e la conclusione delle tue scoperte?
 
Avals:
Yuri, in poche frasi, qual è l'essenza e la conclusione delle tue scoperte?
L'inizio è riportato qui: https://www.mql5.com/ru/forum/131724
 
Avals:
Yuri, puoi spiegare brevemente, in poche frasi, qual è l'essenza e la conclusione delle tue scoperte?

1. Anche dal montaggio, i falsi segnali possono essere identificati ed eliminati in misura maggiore o minore. Ma per fare questo avremo bisogno di almeno due diverse trame su cui è stata effettuata l'ottimizzazione. Di questi, confrontando per (dis)coincidenza di letture, abbiamo tagliato i falsi segnali da quelli potenzialmente redditizi. È chiaro che è impossibile tagliare tutti i falsi segnali senza eccezioni, cioè una parte di essi sarà comunque persa. Ma è abbastanza per alcuni TS ottenere un vantaggio sotto forma di un'aspettativa matematica positiva.

2. Molte ST sono state scartate in precedenza, solo perché si adattavano bene, ma nei test in avanti davano risultati insoddisfacenti. Ora, dopo aver analizzato questi TS con il metodo descritto sopra, si scopre che alcuni di loro si sono rivelati essere dei buoni cavalli da lavoro. Così, una parte dei sistemi di trading può essere rianimata in questo modo.

3. Se avete un TS robusto che è configurato secondo questa metodologia, è più affidabile di un semplice OOS ottimizzato e testato.

 
Reshetov:
... è comprensibile che sia meglio controllare in fondo su OOS, dato che il futuro su cui faremo trading è davanti a noi.
Ho controllato io stesso un paio di anni fa se OOS "dietro" dà qualcosa "davanti". Ed è arrivato alla conclusione che la correlazione non è affatto ovvia. Non ci sono garanzie particolari. La probabilità di successo del TS può aumentare leggermente, ma l'Expert Advisor può non dare profitti e perderli. Qui abbiamo bisogno di altri metodi.
 
voltair:
Per quanto mi riguarda un paio di anni fa ho controllato se OOS "dietro" dà qualcosa "davanti". Ed è arrivato alla conclusione che la correlazione non è affatto ovvia. Non ci sono garanzie particolari. La probabilità di successo del TS può aumentare leggermente, ma l'Expert Advisor può non dare profitti e perderli. Qui abbiamo bisogno di altri metodi.

Ancora una volta, usando il metodo di cui sopra nessuno vieta di controllare gli OOS sia davanti che dietro. Se non c'è profitto su nessuno degli attaccanti, il TS non è robusto ed è meglio sbarazzarsene invece di cercare di rianimare il nato morto. Per quanto riguarda la differenza di risultati su diversi OOS, nessuno ha previsto una corrispondenza del 100%.


Per quanto riguarda le garanzie, non le ho promesse a nessuno. Ognuno deve testare il TS da me suggerito su conti OOS e demo o cent e decidere da solo se è soddisfatto del risultato o meno.


Non mi sorprenderebbe se passaste tutta la vita alla vana ricerca di un metodo con risultati garantiti e moriste senza trovarlo.

 
Reshetov:

Continuando il tema: dov'è la linea di demarcazione tra i modelli di adattamento e quelli reali?

TSR è l'abbreviazione di Trading Systems Recovery ..................

......................

Come abbiamo visto, anche se entrambi i percettori non hanno superato i test in avanti al di fuori del campione ottimizzato di dati storici, tuttavia il filtro dei loro segnali congiunti ha dato risultati positivi sulla storia.

Yuri, sono felice. Anche una leggera invidia (mi sono allontanato da questa idea un paio di anni fa) non smorza il piacere. Mi ha reso felice. Sperimenterò ulteriormente.

 
Reshetov:
... nessuno vieta di controllare l'OOS sia davanti che dietro. ... Se ... il TC non è robusto ed è meglio sbarazzarsi di esso ... ci sarà una differenza nei risultati dei diversi OOS, quindi non c'è la promessa di una corrispondenza al 100%.
Yuri, è ovvio. Beh, chi può proibire di controllare / sbarazzarsi di esso? Non è questo il punto, il punto è (la mia opinione) che tutti questi controlli sono simili a... pre-ottimizzazione! Cioè, ottenendo un risultato positivo su OOS otteniamo TC figurativamente (e realmente) ottimizzato in un altro sito (che ora include anche OOS). Qual è la probabilità che sia robusto più avanti nel futuro o nel passato? Quali sono i criteri oggettivi per valutare la solidità futura, oltre al "credo di sì"?
Motivazione: