Galateo del mercato o buone maniere in un campo minato - pagina 24

 
Neutron писал(а) >>

Questa è la verità! Basta non fare storie - la zuppa è separata.

Per quanto riguarda il bar, uso solo i prezzi di apertura - nessuna media. E farò quello che farà il saggio Prival: passare alle zecche. Tuttavia, dovrò smanettare con la modalità di risparmio e la raccolta dei dati. Ma se ne vale la pena, perché no?

... ...e poi tutto questo trambusto con NS non andrà ad un semplice bagarino. Trovo difficile credere che si possa cogliere, per esempio, un trend orario a livello di tick. Anche se, naturalmente, dipende da quante zecche... ma abbiamo una potenza di calcolo limitata qui...

 
YDzh >> :

Non sto facendo una tragedia :) L'utilità dei tic è riconosciuta nella letteratura... C'è odore di teoria del caos... Se vale la pena... Ne vale la pena? E dove lo consiglia Prival?

Controlla qui.

 
YDzh >> :

... e se tutto il trambusto con NS poi va al semplice scalper. Trovo difficile credere che si possa cogliere, per esempio, un trend orario a livello di tick. Anche se, naturalmente, dipende da quante zecche... ma abbiamo una potenza di calcolo limitata qui...

Beh, gli aerei hanno volato... una volta. E quanto scetticismo c'era...

 
YDzh писал(а) >>

... e se tutto il trambusto con NS poi va al semplice scalper. Trovo difficile credere che si possa cogliere, per esempio, un trend orario a livello di tick. Anche se, naturalmente, dipende da quante zecche... ma abbiamo una potenza di calcolo limitata qui...

È una questione di come ci si avvicina... Non c'è bisogno di guardare i tick di più di 5-10 minuti fa; ci sono abbastanza barre per l'analisi, e i tick delle ultime barre di un minuto possono essere memorizzati e calcolati. E non c'è bisogno di capacità così grandi.

 
FION >> :

Ecco come avvicinarsi... Non c'è bisogno di guardare più di 5-10 minuti di tick indietro, ci sono abbastanza barre per l'analisi, e i tick delle ultime barre di un minuto possono essere memorizzati e calcolati. E non avrete bisogno di una capacità così grande.

Sono stato insoddisfatto dei formati di rappresentazione dei dati in MT4 per molto tempo. Il timeframe è la prima cosa che ha attirato la mia attenzione fin dai primi giorni del mercato. Cioè, quando si guardano i timeframe di MT4, si capisce subito che c'è una ragione! Progettato per comodità, per così dire... -:)

Così, una volta che ho capito la griglia, i timeframes andranno dopo gli induks - f*ck it. In effetti, ho bisogno solo delle quotazioni e dell'interfaccia di trading di questo terminale. Il resto può essere gettato via senza alcun danno per il deposito.

 
paralocus писал(а) >>

Sono stato a lungo insoddisfatto dei formati di dati in MT4. I timeframe sono stati la prima cosa che ha attirato la mia attenzione fin dai primi giorni sul mercato. Cioè, quando si guardano i timeframe di MT4, si capisce subito che c'è una ragione! Progettato per comodità, per così dire... -:)

Quindi, una volta che ho capito la griglia, i timeframe andranno dopo gli indici. Infatti, ho bisogno solo delle quotazioni e dell'interfaccia di trading dal terminale. Il resto della roba può essere facilmente gettato via senza danneggiare il deposito.

Allora non preoccuparti, prendi una griglia già pronta, ce ne sono molte scritte in java, per esempio... Perché dovreste scervellarvi in MQL4 e reinventare la ruota...

 
YDzh >> :

Quindi non preoccupatevi, prendete una griglia già pronta - ce ne sono molte scritte in java, per esempio... Perché preoccuparsi di MQL4 e reinventare la ruota...

Solo per il gusto di sapere.

 
YDzh писал(а) >>

Quindi non preoccupatevi, prendete una griglia già pronta - ce ne sono molte scritte in java, per esempio... Perché preoccuparsi di MQL4 e reinventare la ruota...

Stai scherzando! - Non so perché sto analizzando i bloopers degli altri. Il mio algoritmo è più ottimizzato - è personalizzato per un certo scopo tattico).

paralocus ha scritto >>.

Beh, credo che sia tutto, fino a quando le bilance non saranno corrette.

for(int i = cikl; i >= 0; i--)
{
out = OUT2(i);---------------------------------------------------// Получаем вых. сигнал сетки
test = (Close[i]-Close[i+1])/Close[i+1];--------------------------// Получаем n+1-вый отсчет

d_2_out = test - out;---------------------------------------------// Ошибка на выходе сетки
d_2_in = d_2_out * (1 - out*out);--------------------------------// Ошибка на входе выходного нейрона

Correction2[0] += d_2_in * D2[0];---------------------------// Суммируем микрокоррекции
SquareCorrection2[0] += Correction2[0] * Correction2[0];----------// по каждому весу входящему в вых. нейрон
Correction2[1] += d_2_in * D2[1];---------------------------// и суммируем квадраты оных микрокоррекций
SquareCorrection2[1] += Correction2[1] * Correction2[1];
Correction2[2] += d_2_in * D2[2];
SquareCorrection2[2] += Correction2[2] * Correction2[2];

d_11_in = d_2_in * (1 - D2[1]*D2[1]);-----------------------------// Считаем ошибку на входах нейронов
d_12_in = d_2_in * (1 - D2[2]*D2[2]);-----------------------------// скрытого слоя

for (int k = 0; k < 17; k++)
{---------------------------------------------------------------// Сууммируем микрокоррекции для входов
Correction11[k] += d_11_in * D1[k];----------------------// первого нейрона
SquareCorrection11[k] += Correction11[k] * Correction11[k];
}

for (k = 0; k < 17; k++)
{---------------------------------------------------------------// Суммируем микрокоррекции для входов
Correction12[k] += d_12_in * D1[k];----------------------// второго нейрона
SquareCorrection12[k] += Correction12[k] * Correction12[k];
}
}
Paralocus , ora prendete la radice quadrata della somma dei quadrati di ogni peso e dividete per questo tasso ogni correzione del peso totale. Questo è quello che si aggiunge ad ogni peso! Questa è un'epoca. Ripeti questo tante volte quante sono le epoche di allenamento che hai pianificato. Ridurre gradualmente il contributo multiplo di ogni epoca a zero entro la fine della formazione.
 

Signori, ditemi come affrontate il volo in bassi locali poco profondi e pesi iniziali curvi. Capisco che all'inizio non influenzano l'allenamento, ma più tardi cominciano a influenzare molto i risultati.

 
Neutron >> :
...ora prendete la radice quadrata della somma dei quadrati per ogni peso e dividete per questa norma ogni correzione del peso totale. Questo è quello che si aggiunge ad ogni peso! Questa è un'epoca. Ripeti questo tante volte quante sono le epoche di allenamento che hai pianificato. Ridurre gradualmente il contributo multiplo di ogni epoca a zero entro la fine della formazione.

Fatto:

for(int q = 1; q <= 1000; q++)
  {
// ----------------------------------------- ЭПОХА ---------------------------------------------------  
   for(int i = cikl; i >= 0; i--)
     {
       out  = OUT2( i);                                                   // Получаем вых. сигнал сетки
       test = (Close[ i]-Close[ i+1])/Close[ i+1];                          // Получаем n+1-вый отсчет
       
       d_2_out = test - out;                                             // Ошибка на выходе сетки         
       d_2_in  = d_2_out * (1 - out* out);                                // Ошибка на входе выходного нейрона
       
       Correction2[0]       += d_2_in * D2[0];                           // Суммируем микрокоррекции
       SquareCorrection2[0] += Correction2[0] * Correction2[0];          // по каждому весу входящему в вых. нейрон
       Correction2[1]       += d_2_in * D2[1];                           // и суммируем квадраты оных микрокоррекций
       SquareCorrection2[1] += Correction2[1] * Correction2[1];     
       Correction2[2]       += d_2_in * D2[2];
       SquareCorrection2[2] += Correction2[2] * Correction2[2];   
       
       d_11_in = d_2_in * (1 - D2[1]* D2[1]);                             // Считаем ошибку на входах нейронов
       d_12_in = d_2_in * (1 - D2[2]* D2[2]);                             // скрытого слоя
       
       for (int k = 0; k < 17; k++)
         {                                                               // Сууммируем микрокоррекции для входов
          Correction11[ k]       += d_11_in * D1[ k];                      // первого нейрона
          SquareCorrection11[ k] += Correction11[ k] * Correction11[ k];  
         }                                    
         
       for ( k = 0; k < 17; k++)
         {                                                               // Суммируем микрокоррекции для входов
          Correction12[ k]       += d_12_in * D1[ k];                      // второго нейрона
          SquareCorrection12[ k] += Correction12[ k] * Correction12[ k];
         }   
     }
// ------------------------------------- КОНЕЦ ЭПОХИ --------------------------------------------------

// ----------------------------------- КОРРЕКЦИЯ ВЕСОВ ------------------------------------------------
         for( k = 0; k < 3; k++)
             W2[ k] += Correction2[ k]/MathSqrt( SquareCorrection2[ k]);  

         for( k = 0; k < 17; k++ )
           {
             W1[0, k] += Correction11[ k]/MathSqrt( SquareCorrection11[ k]);
             W1[1, k] += Correction12[ k]/MathSqrt( SquareCorrection12[ k]);
           }        

   }                                 


Sono un po' confuso su come ridurre il moltiplicatore di contributo di un epoch.... Alla fine dell'addestramento ottengo dei pesi di livello di uscita molto piccoli, mentre i pesi del livello nascosto diventano grandi.

Allarme: W2 [0] = -0,0414 W2 [1] = 0,0188 W2 [2] = -0,0539

Allarme: W1[1,0]=-27.0731 W1[1,1]=-30.2069 W1[1,2]=37.6292 W1[1,3]=30.4359 W1[1,4]=-22.7556 W1[1,5]=-37.5899
Motivazione: