Discusión sobre el artículo "El enfoque econométrico en la búsqueda de leyes de mercado: autocorrelación, mapas de calor y diagramas de dispersión" - página 2

 
Maxim Dmitrievsky:

Hola, MetaQuotes ha cambiado python API, por lo que estas funciones no funcionan ahora. Tal vez más tarde voy a arreglar esto y adjuntar un nuevo cuaderno

También, usted puede comprobar la nueva documentación en este sitio

Muchas gracias Sr, por su rápida respuesta y su cooperación es muy apreciada


esperando su nuevo archivo.

 

¡Buen artículo! Gracias por compartir tu trabajo.

Espero que encuentres algo de tiempo para solucionar el problema con la API de Python.


/Rasoul

 

Cuaderno fijo

Archivos adjuntos:
 

Versión corregida del cuaderno, debido a un cambio en la api de python

Archivos adjuntos:
 
Maxim Dmitrievsky:

Versión corregida del cuaderno, debido a un cambio en la api de python

Adjunto al artículo

 

Cierre[-1] = (Cierre[0]-Cierre[lag]) - ((Cierre[lag]-Cierre[lag*2]) - (Cierre[lag-1]-Cierre[lag*2-1]))

Si la misma fórmula se aplicó aquí, entonces la situación es similar a la predicción MA, cuanto más largo sea el período, más precisa es la predicción MA un paso por delante.

Lo que hice fue tomar la MA de un período largo, predecir una barra por delante, luego calcular la predicción del precio a partir de eso. Calculé el error de predicción (precio real-pronóstico). Calculé los incrementos de precio. Como resultado, el error fue peor que los incrementos. Así que se puede decir que "hoy será como ayer" es la mejor predicción.

 
Rorschach:

Cierre[-1] = (Cierre[0]-Cierre[lag]) - ((Cierre[lag]-Cierre[lag*2]) - (Cierre[lag-1]-Cierre[lag*2-1])))

Si se aplicara la misma fórmula aquí, entonces la situación es similar a la predicción MA, cuanto más largo sea el período, más precisa será la predicción MA un paso por delante.

Lo que hice fue tomar la MA de un periodo largo, predecir una barra por delante, luego calcular la predicción del precio a partir de eso. Calculé el error de predicción (precio real-pronóstico). Calculé los incrementos de precio. Como resultado, el error fue peor que los incrementos. Así que se puede decir que "hoy será como ayer" es la mejor predicción.
.

Allí se utiliza la autoregresión sobre una serie filtrada (horas concretas, condicionalmente). Los incrementos de los relojes vecinos se toman como regresores. Sí, se trata de una predicción un paso por delante. No he hecho experimentos más detallados. Si crea un símbolo personalizado en mt5 para lobo al azar, usted puede probar con el bot del artículo. Desafortunadamente no soy amigo de ellos. Tal vez alguien va a hacer uno.
 
#property script_show_inputs
#include <Math\Stat\Math.mqh>
#include <rndxor128.mqh>//https://www.mql5.com/es/articles/273
//--- parámetros de entrada
input string   symbol_origin="EURUSD";// nombre del símbolo, a partir del cual se creará el símbolo personalizado 
input string   symbol_name="MySymbol";// nombre del usuario 
input datetime From=D'2019.01.01';
input datetime To=D'2020.01.01';

void OnStart()
  {
   CustomSymbolCreate(symbol_name,"",symbol_origin);
   SymbolSelect(symbol_name,true);
   int count=100;//Desviación estándar m1=sqrt(count)
   RNDXor128 xor;
   //xor.SRand(6);//(GetTickCount());
   MqlRates A[];
   double B[]; ArrayResize(B,count);
   int total=CopyRates(symbol_origin,PERIOD_M1,From,To,A);
   for(int i=0;i<total;i++)
     {for(int j=0;j<count;j++) {B[j]=(xor.Rand()<2147483648)?_Point:-_Point;}
      MathCumulativeSum(B);
      A[i].open=(i>0) ? A[i-1].close : 1.1;
      A[i].high=MathMax(B)+A[i].open;
      A[i].low=MathMin(B)+A[i].open;
      A[i].close=B[count-1]+A[i].open;
      A[i].tick_volume=count;
     }
   Print(CustomRatesReplace(symbol_name,From,To,A));
  }
En la configuración del gráfico (Ctrl+O) debe seleccionar el número de barras deseado.
 
Rorschach:
En los ajustes del gráfico (Ctrl+O) hay que seleccionar el número de barras deseado.

más tarde voy a hacer el mismo método con autoregresión, subir las series a python, construir el modelo.

 

Gracias por tus artículos, ¡he disfrutado mucho leyéndolos!

Me he dado cuenta de que en este ejemplo aplicas el .diff(lag) después de seleccionar la hora individual en todo el artículo, lo que significa que un lag de 25 corresponde en realidad a un lag de 25 días.

La excepción está en el gráfico 3D, donde se aplica el desfase antes de seleccionar la hora. ¿Ha sido intencionado?