La etiqueta del mercado o los buenos modales en un campo de minas - página 24

 
Neutron писал(а) >>

¡Esa es la verdad! No hagas un escándalo, la sopa va por separado.

En cuanto a la barra, sólo utilizo los precios de apertura, sin promediar. Y voy a hacer lo que el sabio Prival hará: cambiar a las garrapatas. Sin embargo, tendré que trastear con el modo de ahorro y la recogida de datos. Pero si vale la pena, ¿por qué no?

... ...y entonces todo este alboroto con NS no irá a parar a un simple revendedor. Me cuesta creer que se pueda captar, por ejemplo, una tendencia horaria a nivel de ticks. Aunque, por supuesto, depende de cuántas garrapatas... pero aquí tenemos una potencia de cálculo limitada...

 
YDzh >> :

No estoy haciendo un escándalo :) La utilidad de las tics está reconocida en la literatura... Huele a teoría del caos... Sobre si vale la pena... ¿Merece la pena? ¿Y dónde lo aconseja Prival?

Compruébelo aquí.

 
YDzh >> :

... y si todo el alboroto con NS luego va al mero revendedor. Me cuesta creer que se pueda captar, por ejemplo, una tendencia horaria a nivel de ticks. Aunque, por supuesto, depende de cuántas garrapatas... pero aquí tenemos una potencia de cálculo limitada...

Bueno, los aviones volaron... una vez. Y cuánto escepticismo había...

 
YDzh писал(а) >>

... y si todo el alboroto con NS luego va al mero revendedor. Me cuesta creer que se pueda captar, por ejemplo, una tendencia horaria a nivel de ticks. Aunque, por supuesto, depende de cuántas garrapatas... pero aquí tenemos una potencia de cálculo limitada...

Es cuestión de cómo lo enfoques... No es necesario mirar los ticks de hace más de 5-10 minutos; hay suficientes barras para el análisis, y los ticks de las últimas barras de un minuto pueden ser memorizados y computados. Y no se necesitan capacidades tan grandes.

 
FION >> :

He aquí cómo abordar... No hay necesidad de mirar más de 5-10 minutos hacia atrás, hay suficientes barras para el análisis, y los ticks de las últimas barras de un minuto pueden ser memorizados y calculados. Y no necesitarás una capacidad tan grande.

Llevo mucho tiempo insatisfecho con los formatos de representación de datos en MT4. El marco temporal es lo primero que me llamó la atención desde los primeros días del mercado. Es decir, cuando se observan los plazos de MT4, se comprende rápidamente que hay una razón para ello. Diseñado para la comodidad, por así decirlo... -:)

Así que, una vez que entienda la red, los plazos irán tras los induks - f*ck it. De hecho, sólo necesito las cotizaciones y la interfaz de negociación de este terminal. El resto se puede tirar sin que el depósito sufra ningún daño.

 
paralocus писал(а) >>

Llevo mucho tiempo insatisfecho con los formatos de datos en MT4. Los plazos han sido lo primero que me ha llamado la atención desde los primeros días en el mercado. Es decir, cuando se observan los plazos de MT4, se comprende rápidamente que hay una razón para ello. Diseñado para la comodidad, por así decirlo... -:)

Por lo tanto, una vez que entienda la red, los plazos irán después de los índices. De hecho, sólo necesito las cotizaciones y la interfaz de negociación del terminal. El resto de las cosas se pueden tirar fácilmente sin perjudicar el depósito.

Entonces no te molestes, coge una rejilla ya hecha, hay muchas escritas en java, por ejemplo... ¿Por qué debería devanarse los sesos en MQL4 y reinventar la rueda...

 
YDzh >> :

Así que no te molestes, consigue una rejilla ya hecha - hay muchas escritas en java, por ejemplo... Para qué molestarse con MQL4 y reinventar la rueda...

Sólo por saber.

 
YDzh писал(а) >>

Así que no te molestes, consigue una rejilla ya hecha - hay muchas escritas en java, por ejemplo... Para qué molestarse con MQL4 y reinventar la rueda...

¡Estás bromeando! - No sé por qué estoy analizando las meteduras de pata de otras personas. Mi algoritmo está más optimizado: está personalizado para un determinado propósito táctico).

paralocus escribió >>

Bueno, supongo que eso es todo, hasta que se corrijan las escalas.

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 , toma ahora la raíz cuadrada de la suma de los cuadrados de cada peso y divide por esta tasa cada corrección del peso total. ¡Eso es lo que se añade a cada peso! Eso es una época. Repite esto tantas veces como hayas planificado tus épocas de entrenamiento. Reducir gradualmente la contribución múltiple de cada época a cero al final del entrenamiento.
 

Señores, díganme cómo se las arreglan para volar en bajas locales poco profundas y pesos iniciales curvos. Entiendo que al principio no afectan a la formación, pero después empiezan a afectar mucho a los resultados.

 
Neutron >> :
...ahora toma la raíz cuadrada de la suma de los cuadrados de cada peso y divide por esta norma cada corrección del peso total. ¡Eso es lo que se añade a cada peso! Eso es una época. Repite esto tantas veces como hayas planificado tus épocas de entrenamiento. Reducir gradualmente la contribución múltiple de cada época a cero al final del entrenamiento.

Hecho:

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]);
           }        

   }                                 


Estoy un poco confundido sobre cómo reducir el multiplicador de contribución de una época.... Obtengo pesos de la capa de salida muy pequeños al final del entrenamiento, mientras que los pesos de la capa oculta se vuelven grandes.

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

Alerta: 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