Automatizzare la ricerca di strategie. - pagina 2

 
è necessario un minatore, ma la ricerca avverrà comunque all'interno delle condizioni date. Anche l'ottimizzazione è una ricerca strategica, in senso stretto. La domanda non è posta correttamente.
 
Yuriy Asaulenko:

IMHO, la domanda è assolutamente corretta. Prima di disegnare una strategia, sarebbe bene sapere se funzionerà.

Ci sono due modi per farlo.

1.Excel - scriviamo la strategia lì e la verifichiamo. qualsiasi grafico + una buona matematica al vostro servizio. Sì, e + VBA.

2.MatLab - caricare le quotazioni nel database, collegarlo a MatLab e modellare la strategia lì. Più facile che in Excel.

Non è più facile fare tutto direttamente in MT4/5? Perché utilizzare programmi di terze parti se la ricerca riguarda l'ottimizzazione di un portafoglio di strategie? Anche se non sono sicuro che fosse questa la domanda?
 
Stanislav Korotky:
Non è più facile fare tutto direttamente in MT4/5? Perché programmi di terze parti se la ricerca riguarda l'ottimizzazione di un portafoglio di strategie? Anche se non sono sicuro che fosse questa la domanda?
Se si cerca una strategia, non è più facile. Non so il resto, non ci ho pensato. Tuttavia, qualsiasi modellazione è più facile in ambienti speciali, non in MT. MT è un prodotto finale, non è stato progettato per la ricerca e non è molto adatto a questo scopo.
 
Youri Tarshecki:

Ogni volta che carico le varianti nell'autotester ci penso. Ecco cosa penso

1. Il generatore di strategie dovrebbe funzionare secondo il principio dell'albero evolutivo dal semplice al complesso.

2. Le varianti dovrebbero essere immediatamente controllate dal volking-forward ed eliminate.

3. Le funzioni dovrebbero essere preparate manualmente e il generatore dovrebbe elaborare solo le varianti della loro interazione, cioè creare interdipendenze.

A proposito, nel thread inglese ho incontrato una menzione di un software bulgaro con elementi di questo tipo. Ma poiché si trattava di MT4, non mi interessava.

Eccone un altro tedesco, anch'esso su MT4 http://darwins-fx-tools.com/.

In questa variante lo sviluppo è in corso... Viene costruito un grafico di interazione delle funzioni, lo spazio di ricerca è infinito...

Le connessioni tra le funzioni saranno più "significative", per esempio, l'espressione Open>Low ha senso, ma Open>Volume no, e altre sfumature....

 
Ecco un altro esempio di espressione priva di significato: =Alto>(Apertura-Chiusura), anch'essa non passerà.
 
Aliaksandr Hryshyn:
Ecco un altro esempio di espressione priva di significato: =Alto>(Aprire-Chiudere), non passerà neanche questo.

Affogherete in sciocchezze come questa. Per funzioni intendo un certo pezzo di codice internamente coerente preparato in anticipo che, con l'aiuto di indicatori o in modo indipendente, è responsabile di alcune proprietà dell'EA. Cioè di una certa idea.

Ad esempio, un pezzo che definisce i frattali sulla storia. O un pezzo che conta tutto ciò che non gli si dà. O che definisce i tassi di cambiamento. O che determini i livelli.

Il compito del generatore è quello di combinare questi diversi pezzi in un'unica soluzione ingegneristica. Ad esempio, contiamo il numero di frattali sul livello e in base al risultato diamo priorità all'acquisto o alla vendita. Oppure determiniamo la somma delle accelerazioni sul livello, la confrontiamo con la stessa sulla storia ed effettuiamo un fattore di correzione in un'altra funzione. Ecc. ecc.

Se facciamo un'analogia con l'evoluzione della materia vivente, ci sono due tipi di mutazioni che forniscono materiale per la selezione. La prima è costituita dalle mutazioni puntiformi, che di fatto costituiscono la stragrande maggioranza dei cambiamenti nel genoma. Il problema è che di solito non portano a nulla. Ma poiché questo processo va avanti da miliardi di anni e su statistiche enormi, ci sono sempre quelle fortunate. Personalmente, non ho un milione di anni, né cento, né una dozzina, per fare una stupida ricerca.

Il secondo tipo di mutazioni è più raro, ma più interessante: è quando si verifica una ricombinazione, anch'essa spontanea, ma con soluzioni già pronte. Per esempio, alla formazione di un nuovo organismo sessuale si verifica un rimescolamento di diversi geni del padre e della madre. Oppure si verifica l'incorporazione di un virus nel genoma. Oppure viene assunto l'intero genoma di un organismo alieno indipendente. Oppure si verifica una fusione di interi cromosomi per formare una nuova specie (gli ominidi, per intenderci).

Il compito di un generatore di questo tipo è quindi quello di ricombinare tali funzioni secondo un certo algoritmo. Solo così c'è la possibilità che emerga qualcosa di nuovo.

Liberando il trader dalla routine, un generatore di questo tipo gli lascerebbe la parte creativa, ovvero l'opportunità di concentrarsi su nuove idee. Inoltre, la meccanizzazione riduce sempre il rischio di soggettività e aiuta a liberarsi dei timbri.

 
Youri Tarshecki:

Affogherete nei dettagli. Per funzioni intendo un certo pezzo di codice internamente coerente preparato in anticipo che, con l'aiuto di indicatori o in modo indipendente, è responsabile di una certa proprietà dell'Expert Advisor. Vale a dire, per una certa idea.

Ad esempio, un pezzo che definisce i frattali sulla storia. O un pezzo che conta tutto ciò che non gli si dà. O che definisce i tassi di cambiamento. O che determini i livelli.

Il compito del generatore è quello di combinare questi diversi pezzi in un'unica soluzione ingegneristica. Ad esempio, contiamo il numero di frattali sul livello e, in base al risultato, diamo priorità all'acquisto o alla vendita. Oppure determiniamo la somma delle accelerazioni sul livello, la confrontiamo con la stessa sulla storia ed effettuiamo un fattore di correzione in un'altra funzione. Eccetera eccetera.

Pertanto, il compito di un generatore di questo tipo è quello di ricombinare tali funzioni secondo un certo algoritmo. Solo così c'è la possibilità che appaia qualcosa di nuovo.

Cosa succede se un pezzo di codice (una funzione) offre di comprare e un altro di vendere. Come può il generatore combinare questi pezzi in una soluzione consolidata?

Oppure, supponiamo che una funzione A ritenga che il prezzo scenderà con la probabilità P(A) e un'altra funzione B ritenga che il prezzo salirà con la probabilità P(B), e allora? Dobbiamo applicare le formule della teoria della probabilità?

 
Yuriy Asaulenko:
Se cercate una strategia, non è più facile. Non so il resto, non ci ho pensato. Tuttavia, qualsiasi modellazione è più facile in ambienti speciali, non in MT. MT è un prodotto finale, non è stato progettato per la ricerca e non è molto adatto a questo scopo.
Dipende. Per me è più facile modellare la strategia in MT, e non è un problema aggiungervi algoritmi di stima.
 
Yuri Evseenkov:

Cosa succede se un pezzo di codice (funzione) offre di comprare e un altro di vendere. Come può il generatore combinare questi pezzi in una soluzione consolidata?

Oppure, supponiamo che una funzione A ritenga che il prezzo scenderà con la probabilità P(A) e un'altra funzione B ritenga che il prezzo salirà con la probabilità P(B), e allora? Dobbiamo applicare le formule della teoria della probabilità?

Per quanto ho capito, questi pezzi di codice (funzioni) hanno bisogno di valori analogici in uscita, e i valori binari - acquisto/vendita - saranno già nelle strategie di trading combinate da queste funzioni con l'aiuto della selezione genetica.
 
Youri Tarshecki:

Affogherete nei dettagli. Per funzioni intendo un certo pezzo di codice internamente coerente preparato in anticipo che, con l'aiuto di indicatori o in modo indipendente, è responsabile di una certa proprietà dell'Expert Advisor. Vale a dire, per una certa idea.

Ad esempio, un pezzo che definisce i frattali sulla storia. O un pezzo che conta tutto ciò che non gli si dà. O che definisce i tassi di variazione. O che determini i livelli.

Il compito del generatore è quello di combinare questi diversi pezzi in un'unica soluzione ingegneristica. Ad esempio, contiamo il numero di frattali sul livello e, in base al risultato, diamo priorità all'acquisto o alla vendita. Oppure determiniamo la somma delle accelerazioni sul livello, la confrontiamo con la stessa sulla storia ed effettuiamo un fattore di correzione in un'altra funzione. Ecc. ecc.

Se facciamo un'analogia con l'evoluzione della materia vivente, ci sono due tipi di mutazioni che forniscono materiale per la selezione. La prima è costituita dalle mutazioni puntiformi, che di fatto costituiscono la stragrande maggioranza dei cambiamenti nel genoma. Il problema è che di solito non portano a nulla. Ma poiché questo processo va avanti da miliardi di anni e su statistiche enormi, ci sono sempre quelle fortunate. Personalmente, non ho un milione di anni, né cento, né una dozzina, per fare una stupida ricerca.

Il secondo tipo di mutazioni è più raro, ma più interessante: è quando si verifica una ricombinazione, anch'essa spontanea, ma con soluzioni già pronte. Per esempio, alla formazione di un nuovo organismo sessuato si verifica un rimescolamento di diversi geni del padre e della madre. Oppure si verifica l'incorporazione di un virus nel genoma. Oppure viene assunto l'intero genoma di un organismo alieno indipendente. Oppure si verifica una fusione di interi cromosomi per formare una nuova specie (gli ominidi, per intenderci).

Il compito di un generatore di questo tipo è quindi quello di ricombinare tali funzioni secondo un certo algoritmo. Solo così c'è la possibilità che emerga qualcosa di nuovo.

Liberando il trader dalla routine, un generatore di questo tipo gli lascerebbe la parte creativa, ovvero l'opportunità di concentrarsi su nuove idee. Inoltre, la meccanizzazione riduce sempre il rischio di soggettività, aiuta a liberarsi dai timbri.

Ci sono davvero molte piccole cose.

Ho cercato di creare un sistema universale in modo da poter aggiungere diverse possibilità di analisi di indicatori, candele, ecc. con il minimo sforzo. Ogni funzione contiene informazioni su quali dati può lavorare e su quali dati verranno emessi. Verranno inoltre descritti gli indicatori e il tipo di dati che forniscono. I dati sono suddivisi in tipi, sia semplici che complessi, ad esempio {double} e {int,double}. Sono suddivisi in categorie, ad esempio "prezzo" e "posizione sul grafico", un altro esempio: "linea retta" (può essere utilizzata per definire i canali), ecc. Sono suddivisi per "tipo di scala", ad esempio "costante" (parametro della strategia), "indice" (esiste un minimo e un massimo), "rapporto" (esiste un solo punto di riferimento, ad esempio prezzo, volume), ecc. È necessario modificare la strategia in modo coerente, perché c'è una sfumatura tale che la modifica in un punto può influenzare le condizioni di modifica in un altro punto.

Proprio così... Per ridurre il numero di combinazioni della ricerca e utilizzato le restrizioni di cui sopra (tipo, scala, categoria), per ora sarà sufficiente e punto modifiche (aggiunta / rimozione di uno / pochi funzioni).

"Anche la ricombinazione è spontanea, ma di soluzioni intere già pronte" - mi è venuto in mente questo pensiero), è difficile immaginare come si possa realizzare. Un gruppo di funzioni combinate avrà molto probabilmente più connessioni con il "mondo esterno" rispetto a una singola funzione, quindi ci saranno meno opportunità di incastrare il tutto. L'algoritmo diventa molto complicato, rimandiamo a tempi migliori)).

Motivazione: