Cosa inserire nell'ingresso della rete neurale? Le vostre idee... - pagina 50

 
Ivan Butko #:



Sull'esempio di uno dei set: si può notare che le prese sono corte e i gomiti sono più forti. Se si posiziona in modo eccessivo, lascia un "moccolo" verde sotto forma di cedimento dell'equity. Ma se trova un buon punto sul grafico, può chiudere in tempo e quindi mostrare una certa stabilità.

Ottimizzazione - anno: 2021-2022, EURUSD H1

Grazie per le tue ricerche e i tuoi sviluppi (per averli condivisi) - molto interessanti... rileggendoli (io stesso sono in materia) mi viene voglia di continuare a fare esercizi con loro (NS)... :-)

 
Roman Shiredchenko #:

Grazie per la vostra ricerca e gli sviluppi (per la condivisione) - molto interessante.... rileggendo (io stesso in materia), c'è il desiderio di continuare gli esercizi con loro (NS)... :-)







Grazie per il tuo feedback. Ho un ramo di NS semplice, fatto sul mio ginocchio, basato su articoli semplici qui,https://www.mql5.com/ru/articles/497, qui più complicati https://www.mql5.com/ru/articles/5486, e questo a volte uso https://www.mql5.com/ru/articles/830 Expert Advisor, che modifico per adattarsi alle idee - anche da lì. Nonostante il fatto che non c'è una soluzione sicura, gli esperimenti sono affascinanti.


Нейронные сети - от теории к практике
Нейронные сети - от теории к практике
  • www.mql5.com
В наше время, наверное, каждый трейдер слышал о нейронных сетях и знает, как это круто. В представлении большинства те, которые в них разбираются, это какие-то чуть ли не сверхчеловеки. В этой статье я постараюсь рассказать, как устроена нейросеть, что с ней можно делать и покажу практические примеры её использования.
 
Ivan Butko #:

Un altro aspetto potenzialmente positivo è la dimensione intraday degli scambi: almeno non si tratta di scambi su una singola candela, ma a volte sono estesi nel tempo. Inoltre, gli scambi vengono effettuati in entrambi i sensi, ACQUISTO e VENDITA. L'eterno problema dell'approssimazione (se uso il termine correttamente) è che NS sceglie quali operazioni guadagnano di più e costruisce dei pesi per esse. Di conseguenza, se la tendenza sulla sezione ottimizzata è al ribasso e un terzo della sua sezione è al rialzo, si verifica un cedimento globale sulla parte anteriore o posteriore.

Credo che questo non sia l'eterno problema dell'approssimazione, ma l'eterno problema della classificazione sullo strato di uscita. È bene che non si manifesti in questo caso.

 
Andrey Dik #:

Credo che non si tratti di un problema di approssimazione perenne, ma di un problema di classificazione perenne sullo strato di uscita. È bene che non si presenti in questo caso.





Qual è il meccanismo del fenomeno? Perché l'ottimizzatore MT5 sceglie pesi tali da rifiutare di operare in acquisto su un periodo a lungo termine (in cui ci sono molte tendenze al rialzo - è tempo perso, potenziale profitto, è necessario esplorare quest'area), e opera solo in vendita. Non tutti i set, ma quelli superiori, che sono i più importanti. Quando si inizia, ci sono solo vendite. Anche se i set che si trovano in basso fanno trading in entrambi i sensi, ma male.

 
Ivan Butko #:





Perché l'ottimizzatore MT5 sceglie pesi tali da rifiutarsi di negoziare in acquisto su un periodo di lungo termine (in cui ci sono molte tendenze al rialzo - questo è un periodo di inattività, un potenziale profitto, è necessario esplorare quest'area), e negoziare solo in vendita. Non tutti i set, ma quelli principali, che sono i più importanti. Quando si inizia, ci sono solo vendite. Anche se i set che si trovano in basso sono scambiati in entrambi i sensi, ma male.

Il meccanismo è abbastanza semplice.

Il primo fattore: vedo che l'allenamento si svolge su EURUSD, su cui le vendite sono più redditizie a parità di altre condizioni (l'ho notato molte volte su diversi TS).

Il secondo fattore, più importante: la funzione di fitness non tiene conto del rapporto acquisto/vendita, i segnali "rotolano" verso la vendita in quanto più efficaci e alla fine portano a una completa assenza di acquisto (su altri simboli ci può essere un rotolamento verso l'acquisto).

In altre parole, dobbiamo capire cosa sta imparando esattamente il NN, e il criterio del suo apprendimento è sempre la funzione di fitness. Il passo logico è moltiplicare il criterio personalizzato per il rapporto min/max, dove min è il numero minimo di operazioni di acquisto o vendita e max - viceversa, rispettivamente.

FF = Fcustom * MathMin (buys, sells) / MathMax (buys, sells);

Ora vediamo che se c'è uno skewness del 100%, tale FF sarà uguale a 0, e a parità di altre condizioni, il valore migliore sarà quello in cui il numero di direzioni in entrambe le direzioni è lo stesso.

Questo, ovviamente, non è una panacea, ma vale sicuramente la pena di provare.

Tra l'altro, questo è uno dei modi per modificare la forma della superficie FF in modo che l'optimum desiderato sia globale per un'interpretazione univoca.

Per stimolare ulteriormente l'apprendimento verso un maggior numero di operazioni, è possibile procedere come segue:

if (FF == 0) FF = -DBL_MAX;
 
Stavo sfogliando un vecchio sito, un articolo di 10 anni fa sulle reti neurali nel forex. Suggeriscono di inserire...











l'angolo tra la chiusura delle N candele precedenti e il prezzo attuale. È assurdo, ma mi piace! Non l'ho ancora provato, ma lo farò sicuramente, non appena capirò come trovare questo maledetto angolo La seconda variante è anche con pre-podvypodvert, ci ho appena pensato: il prezzo può scendere o salire di due candele di fila.

Di solito, questo significa fornire agli ingressi numeri normalizzati adiacenti. Ma, poiché stiamo usando una finestra di offset, tagliare il valore dell'impulso alla fine influenzerà drasticamente il numero normalizzato, letteralmente in un passo una candela con il numero 0,7 si trasformerà in -0,3, anche se la variazione sulla nuova candela potrebbe essere zero. Questo è il problema delle finestre.

E, come ho accennato in precedenza, i pesi hanno un problema simile, quando si inserisce una sequenza di numeri, che viene anch'essa interrotta alla fine di un nuovo passo e viene aggiunto un nuovo valore: sul grafico potrebbe non cambiare nulla, ma i pesi sono diversi e cambiano drasticamente il segnale. Sull'esempio di un numero normalizzato per ogni ingresso possiamo farne uno aggiuntivo: si tratta deltasso di variazione.

Dopo tutto, la tendenza potrebbe iniziare a svanire, i prezzi potrebbero iniziare a diminuire gradualmente, e nella finestra di input qualsiasi aumento sarà l'opposto - mostrando valori sempre crescenti. L'input aggiuntivo rifletterà l'accelerazione - se c'è, è più da 0 a 1, se si sta affievolendo, è da 0 a -1.
 
Ivan Butko #:
Non l'ho ancora provato, ma lo farò sicuramente una volta che avrò capito come trovare questo maledetto angolo.

Calcolatelo come percentuale - da zero al prezzo di apertura della barra corrente - in sostanza, sarà un analogo.

 
Aleksey Vyazmikin #:

Conteggio in percentuale - da zero al prezzo di apertura della barra corrente - essenzialmente l'analogo sarà.

Grazie per la risposta, ci penserò.
 



Di solito, dopo un mostruoso fattore di recupero di 68, l'equilibrio scende al di sotto della soglia di riferimento.

Ma in questo caso è sceso leggermente, per poi risalire per un anno intero. Il backtest è incasinato (che è in fondo, per ottimizzazione), non sono riuscito a ripeterlo su altre coppie e periodi. Per ora.

Allo stesso tempo, gli scambi sono enormi, anche intraday, e lo spread non ha alcun effetto (Zig è goffo e lento). Un sogno


 

Sono riuscito a capire come alimentare l'angolo all'ingresso


Non posso dire nulla sui vantaggi, i risultati sono diversi per i vari terminali.



Sembra che dipenda dalle quotazioni, dagli spread e dalle commissioni, ma è sicuramente meglio degli incrementi di prezzo. Vorrei notare una particolarità: valori elevati dell'angolo non indicano una tendenza forte o lunga, ma un impulso - un salto o un cedimento dei prezzi estremamente brusco, grande e a breve termine.

Mentre una finestra normalizzata (un altro tipo di dati di input) anche con un angolo estremamente acuto (movimento quasi piatto) mostrerà valori elevati, se l'ultimo prezzo è più alto di tutti gli altri. In altre parole, l'angolo ha i suoi vantaggi informativi. Inoltre, è simile a una funzione non lineare quando i valori estremi vengono annullati. Infatti, non otterremo mai un valore di 0,95 o di 0,99.

Si dice che l'angolo è quasi rettilineo, il che equivale al fatto che il prezzo è volato nella stratosfera. In generale, ci sono altri spunti di riflessione sull'angolo.


    int i = 0;
    double radians, angle, C1, C5, C20, C80;
    
    C1  = iClose(NULL, PERIOD_CURRENT, 1);  
    C5  = iClose(NULL, PERIOD_CURRENT, 5); 
    C20 = iClose(NULL, PERIOD_CURRENT, 20); 
    C80 = iClose(NULL, PERIOD_CURRENT, 80);   
    
    radians = atan(   ((C1 - C5) / _Point) / 5);   // Вычисляем арктангенс высоты к длине основания в радианах
    angle = radians * 180 / M_PI / 90;             // Конвертируем радианы в градусы и преобразуем в диапазон [-1..1]
    inputs[i] = angle;       i++; 
    
    radians = atan(   ((C1 - C20) / _Point) / 20); 
    angle = radians * 180 / M_PI / 90; 
    inputs[i] = angle;       i++; 
    
    radians = atan(   ((C1 - C80) / _Point) / 80); 
    angle = radians * 180 / M_PI / 90; 
    inputs[i] = angle;       i++;  

    //  Print("Угол: ", angle, " градусов");