Prueba de los sistemas de previsión en tiempo real - página 73

 

un pequeño refinamiento en el oro:


La trayectoria más probable es la inferior (restando 30 min a la hora de publicación será el inicio de la previsión). Pero la previsión no es especialmente fiable, porque requiere ejecutar un procedimiento para identificar algunas características de la serie, que aún no he hecho (el procedimiento es puntual, pero funciona durante dos días)

 
grasn >> :

PD: Añadiría todas las trayectorias, pero no puedo transferir la matriz bidimensional del texto :o). Y cómo lo haces, no lo entiendo, o mejor dicho, no lo entiendo del todo. Ahora tengo el siguiente código (al menos así lo entiendo) que sospecho que se puede simplificar:

Para mostrar algunas trayectorias añadí algunas copias de mi propio indicador en la ventana, porque no quería molestarme en mostrar varios buffers a la vez, además su número está limitado a 8 en MT4. No entiendo muy bien por qué los datos se copian de un lado a otro a través de arrays dinámicos en tu código, ¿no es más fácil leerlos en el buffer del indicador? Debido a la ausencia del concepto de arrays en MQL, para llenar varios buffers hay que escribir un complejo if. ;-/ Algo así:

  // ViewCount - количество используемых буферов (1 - 8)
  // F1 ... F8 - индексные буфера
  for(int p = ForecastBars; p >= 0; p--)
  {
    if( ViewCount > 0)
      F1[ p] = GetData(0, p);
    if( ViewCount > 1)
      F2[ p] = GetData(1, p);
    ...
    if( ViewCount > 7)
      F8[ p] = GetData(7, p);
  }
 
marketeer >> :

Simplemente añadí varias instancias de mi indicador en la ventana para mostrar varias trayectorias, porque no quería molestarme en mostrar varios buffers a la vez, especialmente porque su número está limitado a 8 en MT4. No entiendo muy bien por qué los datos se copian de un lado a otro a través de arrays dinámicos en tu código, ¿no es más fácil leerlos en el buffer del indicador? Debido a la ausencia del concepto de arrays en MQL, para llenar varios buffers hay que escribir un complejo if. ;-/ Algo así:


Sólo quiero finalizar la previsión en MQL, es decir, calcular niveles y zonas. Sólo como experimento, todavía lo estoy estudiando.


Entiendo la idea de los topes, gracias.

 
El ORO cayó (previsión anterior) Sólo un poco :o( Habrá que mirar el criterio, tal vez no sea necesario elegir el valor extremo :0( OK, lo miraré
 
mpeugep >> :

Difícil porque obtengo los datos para el script que dibuja las curvas de previsión cada mañana en Deductor. Por lo tanto - sólo a mano =)

Aquí, una vez luché con Expert Advisor para Deductor v.5.0 Lite :)

Incluso es posible ejecutarlo en vis.tester, pero es necesario elegir el tiempo de retardo con mayor precisión

Archivos adjuntos:
 
Piboli >> :

Aquí, solía luchar con Expert for deductor v.5.0 Lite :)

Incluso puedes ejecutarlo en vis.tester, pero tendrás que afinar el tiempo de retardo

Ooh, gracias, voy a echar un vistazo este fin de semana =))

 

¡Buenos días a todos!

Hoy el panorama del instrumento FDAXZ9 (H1) es el siguiente:

Vender en la apertura del mercado, el objetivo es 5714, el stop en la zona es 5799.

Las operaciones se realizan con un lote de 0,1.

Cuenta: 642842
Contraseña de inversión: 1fisfwv
Servidor: BroCo-Demo

 

La posición se cerró en la toma:

 

Escribí un script para generar una matriz de realizaciones probables (es muy simple):

#property copyright ""
#property link      ""

#property show_inputs

extern int timeShift = 3;
extern int N = 101;

int start()
{
   int i;
   int idCount;

   int Handle;
   
   double realisation;
   
   string FILE="FORECAST.csv";
   string COUNT;

   Handle=FileOpen( FILE, FILE_CSV| FILE_READ,",");

   if( Handle<0)
   {
      if(GetLastError()==4103)
      {
         Alert("Нет файла с именем ", FILE);
      }
      else
      {
         Alert("Ошибка при открытии файла ", FILE);
      }

      return;
   }

   Handle=FileOpen( FILE, FILE_CSV| FILE_READ,",");
   
   ObjectsDeleteAll();

   idCount=0;
   i=0;

   while(FileIsEnding( Handle)==false)
   {
      if( i>= N)
      {
         i=0;
      }

      COUNT=FileReadString( Handle);
      realisation=NormalizeDouble(StrToDouble( COUNT), 5);

      ObjectCreate(DoubleToStr( idCount, 10), OBJ_ARROW, 0,
 (Time[0]- timeShift*15*60)+( i)*Period()*60+1, realisation);
      ObjectSet(DoubleToStr( idCount, 10), OBJPROP_ARROWCODE, 250);
      
      
      i= i+1;
      idCount= idCount+1;

      if(FileIsEnding( Handle)==true)
      {
         break;
      }
   }

   FileClose( Handle);

   return(0);
}

Así es como funciona el script:

Cómo determinar automáticamente la longitud de la muestra de probabilidad de un archivo de texto es un misterio para mí, hasta ahora se establece manualmente. Si tiene alguna idea, por favor, aconséjeme.

 
Puede ver el archivo forecast.csv
Razón de la queja: