¿Está disponible el historial de garrapatas en el servidor? - página 4

 
Creo que hay una base racional en lo sugerido por Soland, pero personalmente los necesito para la investigación y me temo que difícilmente puedo aportar algo serio en una semana, y tengo un indicador de este tipo justo una semana antes de la aparición de la rama, uno de mis amigos escribió, pero hay un problema - borra el archivo con ticks después de cada inicialización, y ni él ni yo pudimos terminar el trabajo. Forma barras según un volumen fijo, porque a veces llega un tick y el volumen no ha cambiado en 1.
//+------------------------------------------------------------------+
//|                                                    TickSaver.mq4 |
//|                               Copyright © 2006, Cherednikov K.M. |
//|                                            mailto:chkm76@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Cherednikov K.M."
#property link      "mailto:chkm76@mail.ru"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black

#include <WinUser32.mqh>
//---- input parameters
extern int NumTicksPerBar=3;
extern int Minutes_for_HSTfilename=3;

//---- buffers
double ExtMapBuffer1[];

//---- глобальные переменные
int hFile=-1;
int iFilePos;
int CurrTickNumber=0;
datetime i_time, i_time_bar0;
double d_open, d_low, d_high, d_close, d_volume;
double d_low_bar0, d_high_bar0, d_volume_bar0;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   int    nVersion=400;
   string szCopyright;
   string szSymbol=Symbol();
   int    iDigits=Digits;
   int    iUnused[13];

   //---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   hFile=FileOpenHistory(szSymbol + Minutes_for_HSTfilename + ".hst", FILE_READ);
   if(FileSize(hFile)<0){
   // Дабы не затереть реальные файлы историй, в имя файла добавлен "0" перед периодом
   hFile=FileOpenHistory(szSymbol + Minutes_for_HSTfilename + ".hst", FILE_BIN|FILE_WRITE);
   if(hFile < 0) return(-1);
   //---- Записать заголовок hst-файла
   szCopyright="(C)opyright 2003, MetaQuotes Software Corp.";
   FileWriteInteger(hFile, nVersion, LONG_VALUE);
   FileWriteString(hFile, szCopyright, 64);
   FileWriteString(hFile, szSymbol, 12);
   FileWriteInteger(hFile, Minutes_for_HSTfilename, LONG_VALUE);  //  файл - М2
   FileWriteInteger(hFile, iDigits, LONG_VALUE);
   FileWriteInteger(hFile, 0, LONG_VALUE);
   FileWriteInteger(hFile, 0, LONG_VALUE);
   FileWriteArray(hFile, iUnused, 0, 13);
   FileFlush(hFile);
   iFilePos=FileTell(hFile);
    }
    
    else{ iFilePos=FileTell(hFile); }
   i_time = CurTime();
   i_time_bar0 = Time[0];
   d_open = Close[0];
   d_low = d_open;
   d_high = d_open;
   d_close = d_open;
   d_volume = 1;
   d_volume_bar0 = Volume[0];

   /*d_low_bar0 = Low[0];
   d_high_bar0 = High[0];*/
   
   //----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   if(hFile>=0)
    { 
      FileClose(hFile); 
      hFile=-1; 
    }
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   CurrTickNumber++;
   //********* Обновление данных в переменных текущего бара **************
   d_close = Close[0];
   if (d_low > d_close) d_low = d_close;
   if (d_high < d_close) d_high = d_close;

   // Объем
   if (i_time_bar0!=Time[0])  // если на реальном графике появился новый бар, а для 
                              //   нас еще не набралось тиков закончить тиковый бар...
    { //расчитать изменение объема с учетом пополнения предыдущего реального бара
      d_volume += Volume[1] + Volume[0] - d_volume_bar0;
      i_time_bar0 = Time[0];
    }
   else
    { //расчитать изменение объема только с учетом текущего реального бара
      d_volume += Volume[0] - d_volume_bar0;
    }
   d_volume_bar0 = Volume[0];

   // Обновление данных последнего бара
   FileSeek(hFile, iFilePos, SEEK_SET);
   FileWriteInteger(hFile, i_time, LONG_VALUE);
   FileWriteDouble(hFile, d_open, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_low, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_high, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_close, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_volume, DOUBLE_VALUE);

   if (CurrTickNumber==NumTicksPerBar)
   {
      iFilePos=FileTell(hFile);
      CurrTickNumber=0;
      i_time = CurTime();// / 60 / Minutes_for_HSTfilename;
      //i_time *= 60 * Minutes_for_HSTfilename;
      d_open = Close[0];
      d_low = d_open;
      d_high = d_open;
      d_close = d_open;
      d_volume = 1;
      FileWriteInteger(hFile, i_time, LONG_VALUE);
      FileWriteDouble(hFile, d_open, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_low, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_high, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_close, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_volume, DOUBLE_VALUE);
   }
   FileFlush(hFile);

   // Обновление окна автономно открытого файла
   int hwnd=WindowHandle(Symbol(), Minutes_for_HSTfilename);
   if (hwnd!=0) PostMessageA(hwnd, WM_COMMAND, 33324, 0);

   Comment("Отладочная Инфа: \n"+
           "Тиков в баре: " + CurrTickNumber +
           "\nOpen=" + d_open + "    Close=" + d_close +
           "\nHigh=" + d_high + "    Low=" + d_low +
           "\nVol=" + d_volume +
           "\nПозиция файла: " + iFilePos
   );

   return(0);
  }
//+------------------------------------------------------------------+


 
Personalmente me parece que los desarrolladores inventan artificialmente los problemas técnicos para justificarse en la falta de voluntad (o la imposibilidad) de mejorar la MT en términos de historial de garrapatas. <br / translate="no">
Cadena de archivos de ticks (Tiempo,Cierre,Volumen) = (int,doble,doble) = (4,8,8,) = 20 bytes.


Las comillas pueden almacenarse en números enteros multiplicándolas por 10000 y 100 (para el japonés) según corresponda.
También puede almacenar los puntos clave y el desplazamiento relativo a la última cita.
Todos estos problemas son técnicos.
El principal problema es estratégico.
Los cotizantes NO QUIEREN y, creo, no lo harán. Sólo si la terminal es presionada por los competidores, habrá un requisito previo para una terminal de tic-tac.
Hay otro problema. Los clientes no pagan por el terminal.
Lo pagan los DT que compran servidores, y a los DT NO LES INTERESA el terminal de tick, porque habrá expertos pipsers que trabajen en las peculiaridades de las cotizaciones de los DT.
 
A las empresas de corretaje no les interesa un terminal de garrapatas, porque habrá pipseros que trabajen en las peculiaridades de las cotizaciones de las empresas de corretaje.

Es poco probable que las empresas de corretaje piensen en el terminal (tick o terminal de tiempo). Tienen otros intereses. Todo lo que es necesario para las empresas de corretaje, creo, ya lo dan los promotores (permiso/prohibición de autocomercio, cancelación de operaciones a precios no de mercado, etc.). Las estadísticas del Campeonato demuestran que cualquier DC puede organizar una buena "cocina" y la aparición de algún terminal especial de tick no cambiará nada fundamental, al menos los DCs difícilmente se opondrán a la introducción del mismo, si se desarrolla. Pues bien, como todavía no hay pruebas detalladas de la necesidad de introducir series de garrapatas, el asunto estará donde está ahora.
Sería interesante observar los resultados de las pruebas de ticks de la plataforma Omega, que "hace cualquier cosa, cualquier ticks y marco temporal".

Aunque la discusión de los corredores ya está fuera del alcance del foro. Supongo que ahora lo limpiarán todo...:o)
 
Creo que hay una base racional en lo que sugirió solandr, pero personalmente los necesito para investigar y me temo que no podré aportar nada serio en una semana...

"MQL4: Colector de garrapatas
El Asesor Experto guarda el historial de ticks de los símbolos especificados
 
Propongo que pasemos del interminable e inútil debate verbal sobre el tema del tic-tac a las pruebas detalladas. Para ello, tenemos que hacer lo siguiente. Si lo desea, puede escribir un sencillo script que genere series de ticks con la cantidad de ticks elegida y escriba los datos en un archivo CSV. Además, puede abrir este archivo en EXCEL y utilizar las herramientas estándar de EXCEL para dibujar el diagrama de series de ticks. Si dicho gráfico está disponible para una semana, por ejemplo para un tick-frame específico, puede compararlo con un gráfico estándar de MT4 y mostrar que el gráfico de tick-frame ha dado algunos puntos adicionales de entrada/salida que no podrían haber sido recibidos de alguna manera de las series de tiempo estándar, por ejemplo usando las líneas de soporte/resistencia de la tendencia o algo más.

¡Estimado solandr!
¿Por qué te irrita tanto esta polémica? ¿Por qué te empeñas en creer que lo sabes todo sobre el futuro, tanto lo que hay que hacer como lo que no?

El programa de "construcción de pruebas" propuesto por usted es erróneo en principio. Quieres hacer del éxito del tick trading el único argumento creíble. Si se razona así, entonces no se necesita ninguna de las t/f existentes: nadie ha informado todavía de un éxito radical gracias a una t/f concreta.

Te informo. Hace tiempo que escribí un Asesor Experto, que no sólo escribe el historial de ticks, sino que también lo muestra en tiempo real en el gráfico, utilizando period_converter como base. Así, todo lo que se puede hacer en otros marcos se puede hacer en un gráfico de ticks. Una vez más se demuestra lo potente que es la herramienta MT4+MCL4. También demuestra que no es tan difícil incorporar este servicio.

Además, he dedicado mucho tiempo a investigar los datos de las garrapatas. No importa en absoluto si he tenido éxito en el mercado gracias a ello o no. Las personas consiguen algo o no gracias a su capacidad y a su trabajo duro. Pero para que se consiga un resultado, primero hay que tener la capacidad. Esta condición no es suficiente, sino necesaria. :-)

¿Por qué la pregunta es que existe la posibilidad de trabajar con marcos temporales y no con marcos de tildes? Esta situación es comprensible debido a las limitadas capacidades (tiempo, mano de obra, etc.) de los desarrolladores. Pero es totalmente inaceptable en cuanto a la integridad del servicio y la estrategia. Por tanto, si hoy se adapta más o menos al mercado, mañana no lo hará.
 
2 Jhonny
Creo que hay una base racional en la sugerencia de Scholand, pero personalmente los necesito para investigar y me temo que no podré aportar nada serio en una semana, pero tengo un indicador de preproducción de ese tipo


¡Exactamente! Ese es exactamente mi punto de vista.

Por cierto, esto debería implementarse como un EA. ¡El indicador se salta los ticks !
Para evitar que se roce el archivo hay que abrirlo así: FILE_BIN|FILE_READ|FILE_WRITE
Y antes de escribir en él, pon el puntero de escritura al final del archivo.
 
Yurixx, ¡sólo estaba expresando mi punto de vista! Este es un foro libre y todo el mundo tiene derecho a expresar su opinión, ¿no es así? ¿O debemos escuchar siempre la opinión de la mayoría? Pero la mayoría "se filtra": ¡mira el Campeonato!

La gente ha pedido a los desarrolladores que hagan una historia de tic-tac, los desarrolladores se negaron categóricamente. ¿Y ahora qué? ¿Simplemente escribirá aquí una montaña de quejas de que los promotores no han escuchado los "deseos del pueblo trabajador"? Yo, por mi parte, simplemente sugerí una opción racional para presionar a los promotores, ¡eso es todo! Si todo el mundo sólo quiere interminables quejas verbales sin ningún progreso real en el tema, entonces, por favor, yo personalmente no tengo nada en contra.
 
"MQL4: Tick collector <br / translate="no"> El Asesor Experto guarda el historial de ticks para los símbolos especificados


Por supuesto, quiero agradecer el Expert Advisor, pero acabo de buscarlo, guarda los datos en csv, mientras que el mío fue diseñado para almacenarlos en el historial y luego el gráfico puede ser abierto y analizado sin conexión.
 
Por supuesto gracias por el Expert Advisor, pero acabo de buscarlo, guarda en csv, mientras que el mío fue diseñado para guardar en el historial y este gráfico se puede abrir y analizar sin conexión.

"MQL4: simple_csv2fxt".
Convertidor simple de csv a fxt.


Es necesario combinar mi Asesor Experto y este script, y parchearlo un poco - será perfecto ;)
 
Me parece que preguntar si necesitamos los datos de las garrapatas es inútil porque la respuesta es obvia: cuantas más posibilidades se ofrezcan, más completo y de mayor calidad será el servicio y siempre habrá personas que necesiten uno u otro... La respuesta a la pregunta ¿se implementará esta función en un futuro próximo? - Obviamente no... Hay, en mi opinión, una razón importante... A saber - se aplicará sólo lo que trae Metakvotes ingresos en esta etapa en forma de nuevos contratos y esto es lógico y correcto ... A medida que los ingresos traen a las empresas intermediarias (corredores, DC, etc.) entonces se implementará lo que simplifica sus vidas, pero no lo que va a complicar sus vidas ...
Los datos de las garrapatas les complicarán la vida por las siguientes razones:
1. Si los datos de los ticks están disponibles, los Asesores Expertos que operan en el símbolo de los ticks seguramente aparecerán, y por lo tanto habrá grandes dificultades con la superposición de dichos expertos.
2) si se dispone de datos fiables sobre las garrapatas, existirá la posibilidad de probar a los expertos en garrapatas en el probador (lo que también aumentará su número)
3. Tras el acceso a los datos de los ticks, el público exigirá el acceso a los volúmenes REALES :))))))
4. El cuarto lugar lo ocupa la falta de voluntad o la ocupación de los promotores (si hubiera demanda de empresas de corretaje, la crearían en quince días :))
5. Y por último un argumento de "triunfo" sobre el tráfico insano y el espacio en disco...