Impulso - página 21

 
Karputov Vladimir:
  1. Bien. El tiempo de llegada de los ticks se puede registrar no en incrementos, sino directamente en microsegundos desde el inicio del programa MQL5. Así se calculará la pausa entre ticks.
  2. El segundo campo será entonces el precio del array close[] - es decir, la oferta.
  3. Tengo algunas dudas respecto a Ask. ¿Vale la pena recibirlo? El indicador recibe la matriz spread[] - se puede escribir. La persona que lo necesite calculará Pregunta.
  4. Nombre del archivo en este formato: Data_ticks_GBPUSD.f_2015.07.20 16_02_36.csv

Añadido: Esto resulta ser una tabla como esta:

No hay ninguna compatibilidad con versiones anteriores de los terminales. Para MT4 hay que rehacerlo completamente. ¿Qué le impide registrar la fecha y no una hora sintética? Puedes vincular la fecha a cualquier cosa, utilizarla sin recalcular con nada. ¿Por qué ensuciarlo deliberadamente en el futuro? No sabes qué más tendrás que hacer con el tiempo... Y aquí tenemos que recalcular/convertirlo también ...

¿Qué nos impide escribir el Ask actual en lugar del array spread[], que es inútil en MT4? ¿Se está cortando deliberadamente el pie hasta el cuello? :)))

 

De acuerdo. Este es el formato del archivo:

Время тика, микросекунд Время тика, секунд      Bid             Ask
76718                   20.07.2015 18:09        1.55962         1.55981
76838                   20.07.2015 18:09        1.55962         1.55981
190796                  20.07.2015 18:09        1.55961         1.55980
533045                  20.07.2015 18:09        1.55960         1.55979
989364                  20.07.2015 18:09        1.55961         1.55980
2058082                 20.07.2015 18:09        1.55960         1.55979
2397266                 20.07.2015 18:09        1.55961         1.55980
3498990                 20.07.2015 18:09        1.55962         1.55981
5276197                 20.07.2015 18:09        1.55962         1.55981
5276318                 20.07.2015 18:09        1.55962         1.55981
5714501                 20.07.2015 18:09        1.55967         1.55986
5825529                 20.07.2015 18:09        1.55968         1.55987
5825630                 20.07.2015 18:09        1.55968         1.55987
6095716                 20.07.2015 18:09        1.55969         1.55988
6419932                 20.07.2015 18:09        1.55968         1.55987
6795191                 20.07.2015 18:09        1.55969         1.55988
6972306                 20.07.2015 18:09        1.55968         1.55987
7017356                 20.07.2015 18:09        1.55967         1.55986
¿Es bueno?
 
Roman Shiredchenko:

Cualquier cosa que añadir sobre el tema...

Hay un enlace a un video - lo borraron - pensaron que era publicidad.

¿Cómo puedo compartir la estrategia de scalping en la que estoy escribiendo los indicadores?

¿Cómo puedo colocar el vídeo de youtube en "vídeos interesantes de julio"?

No publicaré el enlace, lo enviaré a Google: "Las principales características de la estrategia"Forex Speedometer" son la ausencia de indicadores y la simplicidad de las operaciones. Tipo de estrategia - scalping. La estrategia se puede utilizar en cualquier par de divisas, pero es aconsejable elegir los de alta volatilidad con un spread pequeño."

------------------------------------------------------------------------------------------

Este tema también se tocó aquí. Cómo contar la hora de llegada de cada tic en la matriz y cómo contar la velocidad...

Está claro que hay variantes. Está claro que en milisegundos el tiempo de cada tic atrapado será visible... (¿Cómo usar esto después? quizás...)

Artem escribe de nuevo para los especialmente dotados... :-)

Allí se ofrece exactamente contar ticks por segundo - aquí también se ofreció tal variante...

Hay otra cuestión: ¿cómo probarlo? Las cuentas ndd de mi broker con spread mínimo no tienen demo. Si quisiera utilizar la cuenta demo y real nd de mi broker habría comprobado el número de ticks - es el mismo...

Es decir, la pregunta será cómo procesar programáticamente los datos recogidos en las operaciones virtuales en archivo csv eexcel y ticks... de las cuentas reales.

La cuestión será procesar los datos recogidos para las operaciones virtuales, en archivo csv en eexsv y ticks de las cuentas reales... :-)

¿Cómo puedo incrustar los ticks del archivo csv en el historial para el probador de estrategias de MT4?

Intenté algo parecido (no esta estrategia, me inventé la mía) no hace mucho, pero lo abandoné. Tengo que probar un sistema de este tipo en tiempo real, porque el probador sólo simula ticks. He estado observando el Asesor Experto durante dos horas, luego he copiado el código durante 5 minutos y así sucesivamente. Los resultados no son muy buenos, muchas operaciones con pequeños beneficios, pero un stoploss muchas veces anula todos los beneficios. Como alternativa, hay que utilizar la martingala para evitar la acumulación de pérdidas en la renta variable. Yo tengo un Expert Advisor en un martin sin eso y su implementación es mucho más sencilla.
 

La base para registrar las garrapatas está ahí.

//+------------------------------------------------------------------+
//|                                             IndTickCollector.mq5 |
//|                              Copyright © 2015, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.01"
#property indicator_chart_window
#property description "Индикатор хранит тики. Время тика, микросекунд, Время тика, секунд , Bid, Ask"
#property indicator_buffers 0
#property indicator_plots   0
//+------------------------------------------------------------------+
//| Индикатор расчитывает скорость прихода тиков.                    |
//+------------------------------------------------------------------+
//--- parameters
int file_handle; // хэндл файла
string FileName; // имя файла
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- open file
//--- время начала сбора тиков - текущее
   datetime time_start=TimeCurrent();
//--- откроем файл для записи значений индикатора (если его нет, то создастся автоматически)
   ResetLastError();
   FileName="Data_ticks_"+Symbol()+"_"+TimeToString(time_start,TIME_DATE|TIME_MINUTES|TIME_SECONDS)+".csv";
   StringReplace(FileName,":","-");
   file_handle=FileOpen(FileName,FILE_READ|FILE_WRITE|FILE_CSV);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("Файл %s открыт для записи",FileName);
      PrintFormat("Путь к файлу: %s\\MQL5\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- запишем название колонок
      FileWrite(file_handle,"Время тика, микросекунд","Время тика, секунд","Bid","Ask");
     }
   else
      PrintFormat("Не удалось открыть файл %s, Код ошибки = %d",FileName,GetLastError());
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,      // размер массива price[]
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const int begin,            // откуда начинаются значимые данные
                 const double& price[]       // массив для расчета
                 )
  {
   ulong microsecond_count=GetMicrosecondCount(); // зафиксировали вход в OnCalculate()
   int start=0;
   if(prev_calculated!=0) // работаем только на пришедших тиках, так как на истории нет времени тиков
     {
      MqlTick last_tick;
      //---
      if(SymbolInfoTick(Symbol(),last_tick))
        {
         FileWrite(file_handle,microsecond_count,last_tick.time,
                   DoubleToString(last_tick.bid,Digits()),DoubleToString(last_tick.ask,Digits()));
        }
      else Print("SymbolInfoTick() failed, error = ",GetLastError());
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- закрываем файл
   FileClose(file_handle);
   PrintFormat("Данные записаны, файл %s закрыт",FileName);
//--- очищаем комментарии
   Comment("");
  }
//+------------------------------------------------------------------+


Formato del nombre del archivo:

Data_ticks_GBPUSD.f_2015.07.21 12-06-14.csv

El archivo tiene cuatro columnas:

Время тика, микросекунд Время тика, секунд      Bid             Ask
76718                   20.07.2015 18:09        1.55962         1.55981
76838                   20.07.2015 18:09        1.55962         1.55981
190796                  20.07.2015 18:09        1.55961         1.55980
533045                  20.07.2015 18:09        1.55960         1.55979
989364                  20.07.2015 18:09        1.55961         1.55980


Siguen existiendo dudas sobre la frecuencia con la que deben iniciarse los nuevos expedientes. Creo que cada archivo debería iniciarse cada hora. Esto facilitará el análisis posterior.

 
Karputov Vladimir:

La base para registrar las garrapatas está ahí.

Formato del nombre del archivo:

El archivo tiene cuatro columnas:

Las cuestiones que quedan por resolver son la frecuencia con la que deben iniciarse los nuevos expedientes. Creo que cada archivo debería iniciarse cada hora. Así será más fácil analizarlo después.

No es técnicamente óptimo. En primer lugar, ¿por qué escribir microsegundos? Este formato es mejor:

Время, DD.MM.YYY HH:mm:ss:sss     Bid    Ask
20.07.2015 18:09:323            1.55962  1.55981 

El formato CSV debería abandonarse en favor del XML. La tarea de serializar los datos de Object To Xml <--> XML To Object es obvia. En caso de necesidad, será fácil añadir nuevos parámetros. Para almacenar por día, por supuesto. 1 archivo - 1 día de historial de garrapatas.

 
En cuanto a la idea en sí, por supuesto que es un completo disparate (con todos los respetos). Estás haciendo una identidad entre volatilidad y momentum (movimiento direccional). Sin embargo, esto es fundamentalmente erróneo. Prácticamente no existe tal correlación y, por tanto, el enfoque elegido no llevará a ninguna parte.
 
Vasiliy Sokolov:
En cuanto a la idea en sí, por supuesto que es un completo disparate (con todo el respeto). Estás haciendo una identidad entre volatilidad y momentum (movimiento direccional). Sin embargo, esto es fundamentalmente erróneo. Prácticamente no existe tal correlación y, por tanto, el enfoque elegido no llevará a ninguna parte.

Lo principal es recoger datos sobre las tics. Esto es como la base de la investigación. Y ya sobre esta base se pueden probar diferentes modelos.

Añadido: Y sí, todavía no hay una definición clara de impulso.

 
Karputov Vladimir:

Lo principal es recoger datos sobre las tics. Esto es como la base de la investigación. Y ya sobre esta base se pueden probar diferentes modelos.

Añadido: Y sí, todavía no hay una definición clara de impulso.

Para ser más precisos: aquí no hay una formulación clara y necesaria... y al fin y al cabo es una base, una base realmente necesaria... sin dicha formulación todo se tambalea, se tambalea...

Por ejemplo, hay una formulación tan clara en la ingeniería de impulsos. Antes he puesto un ejemplo. Por supuesto, no puedes limitarte a una sola foto. Esta teoría es extensa, y será muy útil para su aplicación aquí.

 

Intentaré una vez más dejar claro mi punto de vista...

Aunque muy tosca, es una imagen que da una idea:



Los parámetros del pulso -variables- tienen que determinarse sobre la marcha.

 
Олег avtomat:

Intentaré explicar mi punto de vista una vez más...

Aunque muy tosca, es una imagen que da una idea:



Los parámetros -variables- de los pulsos deben determinarse sobre la marcha.

Oleg, ¿dónde está el pulso en esta foto? Entonces, descompóngalo en componentes de tiempo de tic, en lugar de proponer un gráfico de días.