L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 320

 
Mihail Marchukajtes:

<Grafici>.

Accorcerei le date di ottimizzazione di un fattore sei, in modo che l'ottimizzatore veda solo la punta di tutti questi grafici, e ottimizzerei con una data di rollover nei parametri come ho scritto sopra.

E poi per controllare i migliori risultati trovati già eseguire il test su diversi mesi di dati, puramente visivamente valutare.

 
Mihail Marchukajtes:

Il punto è che non stiamo parlando di NS, ma di Sequent, quindi guardate la sua equità con diversi valori di input nello stesso periodo di lavoro. Non l'ho ottimizzato, l'ho solo esaminato a mano.

5-5

6-6

7-7

Questo caso è ancora più interessante con il 4-8, stesso periodo. E funziona con uno stop-loss di 300 pips.

Questo è dal 1° gennaio ad oggi. Confesso che ho scelto l'ultima schermata con l'ottimizzatore, beh, ci sono solo 49 passaggi nell'ottimizzatore. Quindi, in effetti, devo imparare a scegliere correttamente i parametri necessari non dall'insieme senza dimensione, ma dall'insieme finito con una quantità così piccola di varianti. So..........


Perché non usate la RNN di Reshetov ma il classificatore? Ha un nucleo logico interessante, e il bot può essere fatto funzionare di default

Ora c'è un compito simile, per alimentare l'ingresso di NS con oscillatore e pendenza di regressione per un dato numero di barre. In teoria, gli oscillatori funzionano solo in piano, e si riversano nel trend. Se aggiungiamo valori normalizzati della pendenza della regressione, la griglia terrà conto della pendenza della tendenza. Qui non ho ancora deciso se prendere i valori in gradi o in punti. Per il momento è in punti, e da quanti a quanti punti normalizzarli :)

double CalcRegression(double &PricesArray[])
     {
      double Summ_x=0.0;
      double Summ_y=0.0;
      double Summ_xy=0.0;
      double Summ_x_2=0.0;
      int jcount;
      for(int xcount=1; xcount<=глубина_анализа && !IsStopped(); xcount++)
        {
         jcount=глубина_анализа-xcount;
         Summ_x+=xcount;
         Summ_y+=PricesArray[jcount];
         Summ_xy+=xcount*PricesArray[jcount];
         Summ_x_2+=MathPow(xcount,2);
        }

      double bcoef=(глубина_анализа*Summ_xy-Summ_x*Summ_y)/(глубина_анализа*Summ_x_2-MathPow(Summ_x,2));  
      return(bcoef);
     }

E questo è il neurone RNN stesso; solo 3 valori dell'oscillatore sono alimentati all'ingresso, che naturalmente non è molto corretto

double RNN(double p1,double p2,double p3)
  {
//--- вероятности для правил из базы знаний экспертной системы
   double y0 = x0; // Вероятность правила №0 в процентах
   double y1 = x1; // Вероятность правила №1 в процентах
   double y2 = x2; // Вероятность правила №2 в процентах
   double y3 = x3; // Вероятность правила №3 в процентах
   double y4 = x4; // Вероятность правила №4 в процентах
   double y5 = x5; // Вероятность правила №5 в процентах
   double y6 = x6; // Вероятность правила №6 в процентах
   double y7 = x7; // Вероятность правила №7 в процентах

//--- база знаний, состоящая из набора взаимоисключающих правил
   double probability=
                      (1.0 - p1) * (1.0 - p2) * (1.0 - p3) * y0 + // Правило №0
                      (1.0 - p1) * (1.0 - p2) * p3 * y1 +         // Правило №1
                      (1.0 - p1) * p2 * (1.0 - p3) * y2 +         // Правило №2
                      (1.0 - p1) * p2 * p3 * y3 +                 // Правило №3
                      p1 * (1.0 - p2) * (1.0 - p3) * y4 +         // Правило №4
                      p1 * (1.0 - p2) * p3 * y5 +                 // Правило №5
                      p1 * p2 * (1.0 - p3) * y6 +                 // Правило №6
                      p1 * p2 * p3 * y7;                          // Правило №7

//--- конвертируем проценты в вероятности 
   probability=probability/100.0;

//--- возвращаем результат в виде вероятности
   return(probability);
  }
 
Maxim Dmitrievsky:


Perché non usate RNN di Reshetov? Ha un motore logico interessante e potete far funzionare il bot di default

La teoria è che gli oscillatori funzionano solo nel piatto, mentre nel trend si riversano. In teoria, gli oscillatori funzionano solo nel piatto, mentre versano nel trend. Se aggiungiamo valori normalizzati della pendenza della regressione, la griglia terrà conto della pendenza della tendenza. Qui non ho ancora deciso, se prendere i valori in gradi o in punti. Per il momento, è in punti, e da quanti a quanti normalizzarli :)

E questo è il neurone RNN stesso - solo 3 valori dell'oscillatore sono alimentati ad esso, che non è molto corretto


Grazie per il suggerimento, lo proverò sicuramente oggi sui miei dati.

Per favore ditemi dove trovarlo, non riesco a trovarlo impudentemente. Non riesco a trovarlo curiosando in giro.

 
Mihail Marchukajtes:


Grazie per il suggerimento, lo proverò sicuramente oggi sui miei dati.

Per favore, ditemi da dove scaricarlo, non riesco a trovarlo. Grazie!

C'è RNN e RNN3 e il suo articolo inedito in MQL5, ma è inutile. RNN funziona meglio nell'ottimizzatore rispetto a RNN3.
File:
RNN_MT5.zip  223 kb
 
Maxim Dmitrievsky:

E questo è il neurone RNN stesso, solo 3 valori di oscillatore sono alimentati all'ingresso, che naturalmente non è molto corretto

Codice interessante, grazie. E anche per l'articolo.


RNN(double p1,double p2,double p3)

Tutti i valori dei parametri p1, p2, p3 dovrebbero essere da 0 a 1. Se passate B dalla regressione a uno di questi parametri, assicuratevi di normalizzarlo allo stesso intervallo [0;1].


Generalmente, questa strategia si basa sulla teoria che un alto valore di RSI significa che il prezzo sta per scendere. Per una previsione accurata si prendono tre valori RSI, e con alcune regole della teoria della probabilità si ottiene una stima da tre parametri.
Quindi, se invece del terzo RSI date il vostro segnale, allora il valore alto di questo segnale deve significare che il prezzo scenderà. Altrimenti romperete la strategia.

 
Ildottor Trader:

Codice interessante, grazie. E anche per l'articolo.

Se si passa un valore B dalla regressione in uno di questi parametri, deve essere normalizzato allo stesso intervallo [0;1].


Sì, è corretto. Solo dovremmo invertire i valori di regressione se vogliamo che compri su un mercato in salita e venda su uno in discesa, perché comprerà se la probabilità <0,5 all'uscita del neurone, mentre l'rsi dovrebbe tendere a zero e la regressione cadrà anche quando <0,5, mentre noi vogliamo che cresca >0,5
 
Ildottor Trader:

Generalmente, questa strategia si basa sulla teoria che un alto valore di RSI significa che il prezzo scenderà. Per fare una previsione accurata abbiamo preso tre valori RSI, quindi secondo la teoria delle probabilità otteniamo la stessa stima da tre parametri.
Quindi, se invece del terzo RSI date il vostro segnale, allora il valore alto di questo segnale deve significare che il prezzo scenderà. Altrimenti romperete la strategia.


Sì, esattamente, l'ho appena scritto sopra :)

Griglia predefinita ottimizzata su m5 messa in monitoraggio https://www.mql5.com/ru/signals/297732

Poi sperimenterò di più con diversi input per il neurone

Торговые сигналы для MetaTrader 5: NEUROSHELL test
Торговые сигналы для MetaTrader 5: NEUROSHELL test
  • Maxim Dmitrievsky
  • www.mql5.com
Торговый Сигнал NEUROSHELL test для MetaTrader 5: копирование сделок, мониторинг счета, автоматическое исполнение сигналов и социальный трейдинг
 

https://www.mql5.com/ru/code/127

ma c'è un errore nel codice, credo che l'indicatore sia razionato in modo errato

Наклон линейной регрессии
Наклон линейной регрессии
  • voti: 24
  • 2010.07.05
  • Vladimir
  • www.mql5.com
Наклон линейной регрессии, нормализованный к SMA
 
Maxim Dmitrievsky:
C'è RNN e RNN3 e il suo articolo inedito in MQL5. RNN funziona meglio nell'ottimizzatore rispetto a RNN3.


Grazie!!! È un peccato che sia un 5, ma lo proverò comunque con i miei dati....

 
Mihail Marchukajtes:


Grazie!!! È un peccato che sia un cinque, ma lo proverò comunque con i miei dati....


la versione 5 è comoda perché si possono fare test in avanti, è proprio la cosa giusta per NS, e per la versione 4 la stessa cosa, secondo me, era nella codebase, se si guarda

https://www.mql5.com/ru/code/10616

RNN_MT4
RNN_MT4
  • voti: 2
  • 2012.02.20
  • Yury Reshetov
  • www.mql5.com
Советник со встроенной экспертной системой