Ottimizzazione! Condividete le vostre esperienze, per favore. - pagina 6

 


Per darvi un esempio... Grafico EA su 7 anni... (profitto 10 p) stop 300 ma il profitto galleggia con il prezzo anche se in perdita... Il rapporto tra profitto e drawdown è circa 25 per sette anni... non è molto in principio... ...ma circa 200 all'anno possono essere tolti.
 
AndyGri:
È fantastico! Sono d'accordo. La curva dei rendimenti dovrebbe essere dritta. Grazie per l'idea, voglio fare lo stesso, ma ho paura di non avere abbastanza esperienza per programmarlo :(
Non può essere dritto (a meno che non ci sia stata solo 1 transazione nella storia). Infatti la curva dei rendimenti è una linea spezzata. Ecco perché ho capito che per questo bisogna calcolare il coefficiente di correlazione lineare. Più questo coefficiente è vicino a 1 in valore assoluto, più la curva dei rendimenti è lineare.

Per quanto riguarda il modo di costruirlo, sarebbe più facile se lo faccio io e lo pubblico. Il principio è universale e non dipende dal sistema di trading, perché la curva è presa dalla storia degli scambi. L'intero algoritmo è stabilito nell'evento deinit() dell'Expert Advisor e i risultati sono scritti nel file csv durante l'ottimizzazione. Dobbiamo solo prendere questo file, ordinarlo per coefficiente di correlazione lineare, cioè trovare il valore più grande (il valore assoluto del coefficiente non può superare 1) e impostare l'Expert Advisor con parametri esterni appropriati. Il formato csv può anche essere ordinato in Exel.
 
Reshetov:
Ecco perché ho capito che richiede un coefficiente di regressione lineare. Più questo coefficiente è vicino a 1 in valore assoluto, più la curva dei rendimenti è lineare.
Vorrei (per chi ha studiato aritmetica alla scuola parrocchiale) capire di quale coefficiente di regressione lineare di 1 stiamo parlando? L'equazione di regressione lineare è l'equazione della linea retta y=a*x+c. Sull'asse X, credo, ci sono i numeri delle operazioni (1,2,3.....N), sull'asse Y, mettiamo il saldo nella valuta del deposito (1000USD, 10000USD, 100000USD....., ecc.). Quale formula si usa per dire che a=1, o tende ad esso? Qual è il principio di normalizzazione usato in questo?
 
In effetti, ci sono due parametri da considerare qui:
  • il fattore di ripidità (parametro a nell'equazione y=a*x+c.), chiamiamolo MO, solo quelli dove MO>0 sono di interesse
  • La deviazione standard della regressione lineare, chiamiamola S, siamo interessati a quelle che sono il più possibile vicine allo zero.
Nel file di output otteniamo un array bidimensionale su cui cerchiamo queste regioni.
 
Rosh:
In realtà ci sono due parametri da considerare:
  • il coefficiente di ripidità (parametro a nell'equazione y=a*x+c.), chiamiamolo MO, solo quelli dove MO>0
  • la deviazione standard dalla regressione lineare, chiamiamola S, quelli più vicini allo zero possibile sono interessanti
  • .

Nell'output otteniamo un array bidimensionale che usiamo per cercare queste aree.

Non è molto chiaro. Potresti postare un esempio più dettagliato?
Abbiamo una serie di valori a coppie di a e S per ogni corsa di ottimizzazione. Possiamo tracciare questi punti sul grafico prendendo gli assi del grafico bidimensionale come dati a e S. Suppongo che otterremo qualche area spalmata di campioni (in alternativa, solo qualche curvatura curvilinea con estremi). Allora come possiamo ottenere un coefficiente uguale a 1 se gli assi sono molto diversi? Come viene fuori? E cosa possiamo dire esattamente di questa curvatura dei risultati se non che ha degli estremi? Gli estremi possono essere visti nei rapporti del tester senza fare un grafico aggiuntivo - basta premere il pulsante per ordinare i risultati dell'ottimizzazione.
 
Non ho parlato di un fattore 1. Ho appena descritto come la vedo io - usando un'approssimazione di regressione lineare dei risultati dei test. Posso solo illustrarlo con la figura dell'articolo 20. Array e indicatori tecnici su di essi


 

La figura mostra solo la fase iniziale della tua proposta (ottenere i valori di a e S). Cioè, la figura mostra il risultato di una corsa nel tester. Non è difficile ottenere i parametri a - coefficiente di regressione lineare e RMS per questo grafico. Supponiamo di avere 1000 grafici di questo tipo basati sui risultati dell'ottimizzazione. Come risultato, abbiamo un array di valori 1000x2, dove il primo indice è il numero della corsa e il secondo indice sono i valori di a e S rispettivamente. Inoltre, quale output dei valori a e S ottenuti può essere mostrato su un grafico bidimensionale lungo gli assi, a parte gli estremi che possono essere diversi? Vorrei solo capire cosa intende?

 
solandr:
Reshetov:
Ecco perché ho indovinato che richiede un coefficiente di REGRESSIONE lineare. Più questo coefficiente è vicino a 1 in valore assoluto, più la curva dei rendimenti è lineare.
Vorrei (per chi ha studiato aritmetica alla scuola parrocchiale) capire di quale coefficiente di regressione lineare di 1 stiamo parlando? L'equazione di regressione lineare è l'equazione della linea retta y=a*x+c. Sull'asse X, come ho capito, ci sono i numeri delle operazioni (1, 2,3.....N), sull'asse Y, mettiamo il saldo nella valuta del deposito (1000USD, 10000USD, 100000USD....., ecc.). Quale formula si usa per dire che a=1, o tende ad esso? Qual è il principio di normalizzazione usato in questo?
Scusate, stiamo parlando del coefficiente di correlazione lineare. Mi scuso per l'inesattezza.
 
Reshetov:
AndyGri:
Grande! Sono d'accordo. La curva dei rendimenti dovrebbe essere dritta. Grazie per l'idea, anche io voglio farlo, ma ho paura di non avere abbastanza esperienza per programmarlo :(
Infatti la curva dei rendimenti è una polilinea. Ecco perché credo che dovremmo calcolare il coefficiente di correlazione lineare. Più tale coefficiente è vicino a 1 in valore assoluto, più la curva dei rendimenti è lineare.

Per quanto riguarda il modo di costruirla, sarebbe più facile se la facessi io e la postassi. Il principio è universale e non dipende dal sistema di trading, perché la curva è presa dalla storia dei trade. L'intero algoritmo è stabilito nell'evento deinit() dell'Expert Advisor e i risultati sono scritti nel file csv durante l'ottimizzazione. Dobbiamo solo prendere questo file, ordinarlo per coefficiente di correlazione lineare, cioè trovare il valore più grande (il valore assoluto del coefficiente non può superare 1) e impostare l'Expert Advisor con parametri esterni appropriati. Il formato csv può anche essere ordinato in Exel.

Mi piacerebbe molto!!! :) Sono stufo di analizzare i risultati dell'ottimizzazione con i miei occhi e selezionarli in base alla curva di rendimento attraverso la corsa di Expert Advisor. È troppo lungo... Si confonde per sempre...
 
nchnch:


Per darvi un esempio... Grafico EA per 7 anni... ( profitto 10 p) stop 300 ma il profitto galleggia con il prezzo anche se in perdita.... Il rapporto profitto/prelievo è di circa 25 su sette anni... non è molto in linea di principio... ma si possono guadagnare circa 200 all'anno.

Il profitto è fluttuante, com'è? E come segue il prezzo? Devono nascondermi qualcosa! :)