O histórico do tick está disponível no servidor? - página 4

 
Penso que existe uma base racional na sugestão de Scholand, mas pessoalmente eu preciso deles para pesquisa e receio não poder fornecer nada sério em uma semana, e tenho tal indicador apenas uma semana antes do aparecimento da filial, mas há um problema - ele apaga o arquivo com carrapatos após cada inicialização, e nem ele nem eu conseguimos terminar a tarefa. Ela forma barras de acordo com um volume fixo, porque às vezes vem um carrapato e o volume não mudou em 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);
  }
//+------------------------------------------------------------------+


 
Pessoalmente, me parece que os desenvolvedores inventam artificialmente problemas técnicos para se justificar na falta de vontade (ou impossibilidade) de melhorar a MT em termos de história do tick. <br / translate="no">
Marcar file string (Time,Close,Volume) = (int,double,double) = (4,8,8,) = 20 bytes.


As citações podem ser armazenadas como inteiros multiplicando-as por 10000 e 100 (para o japonês) de acordo.
Você também pode armazenar pontos-chave e o offset em relação à última cotação.
Todos estes problemas são técnicos.
O principal problema é estratégico.
Os cotadores NÃO QUEREM e, eu acho, não o farão. Somente se o terminal for apertado pela concorrência, haverá um pré-requisito para um terminal de ticking.
Há outro problema. Os clientes não pagam pelo terminal.
É pago pelos DTs que compram servidores, e os DTs NÃO estão INTERESSADOS no terminal de tick, porque haverá pipsers especializados que trabalharão em DT citando peculiaridades.
 
As corretoras não estão interessadas em um terminal de carrapatos, pois haverá corretores que trabalharão nas peculiaridades das cotações das corretoras.

É improvável que as corretoras pensem no terminal (tick ou terminal de tempo). Eles têm outros interesses. Tudo o que é necessário para as corretoras, eu acho, já é dado pelos desenvolvedores (permissão/exposição de auto-negociação, cancelamento de negócios a preços não de mercado e assim por diante). As estatísticas do Campeonato mostram que qualquer CD pode arranjar uma boa "cozinha" e a aparência de algum terminal especial de carrapato não mudará nada fundamental, pelo menos os CDs dificilmente se oporão à sua introdução, se for desenvolvido. Bem, como ainda não há nenhuma prova detalhada da necessidade de introduzir séries de carrapatos, a questão estará onde está agora.
Seria interessante observar os resultados das provas de tick da plataforma Omega, que "faz qualquer coisa - qualquer tick e prazo".

Embora a discussão dos corretores já esteja fora do escopo do fórum. Acho que eles vão limpar tudo agora?:o)
 
Penso que há uma base racional no que solandr sugeriu, mas pessoalmente preciso deles para pesquisa e temo não poder fornecer nada sério em uma semana...

"MQL4: Coletor de carrapatos
O Expert Advisor salva o histórico do tick para símbolos especificados
 
Sugiro que passemos do interminável e inútil debate verbal sobre a questão do tic-tac-toe para provas detalhadas. Para fazer isso, precisamos fazer o seguinte. Se você quiser, você pode escrever um script simples que gera uma série de carrapatos com a quantidade escolhida de carrapatos e escreve os dados em um arquivo CSV. Além disso, você pode abrir este arquivo no EXCEL e usar as ferramentas padrão do EXCEL para desenhar o diagrama da série de carrapatos. Se tal gráfico estiver disponível por uma semana, por exemplo, para um tick-frame específico, você pode compará-lo com um gráfico MT4 padrão e mostrar que o tick-frame deu alguns pontos adicionais de entrada/saída que não poderiam ter sido recebidos de alguma forma das séries temporais padrão, por exemplo, usando as linhas de suporte/resistência de tendência ou outra coisa.

Caro solandr!
Por que você está tão irritado com esta polêmica? Por que você persiste em acreditar que sabe tudo sobre o futuro - tanto o que fazer quanto o que não fazer?

O programa de "construção de provas" proposto por você está, em princípio, errado. Você quer fazer do sucesso do comércio de carrapatos o único argumento confiável. Se você raciocinar assim, então não é necessário nenhum dos t/fs existentes - ninguém ainda relatou sucesso radical graças a um t/f em particular.

Eu os informo. Há muito tempo escrevi um consultor especializado, que não só escreve a história do tick, mas também a exibe em tempo real no gráfico. Assim, tudo o que pode ser feito em outros quadros pode ser feito em uma tabela de carrapatos. Ele mostra mais uma vez o que é uma ferramenta poderosa MT4+MCL4. Também mostra que não é tão difícil incorporar este serviço.

Além disso, passei muito tempo pesquisando dados de carrapatos. Não importa absolutamente se fui bem sucedido no mercado por causa disso ou não. As pessoas conseguem algo ou não por causa de sua capacidade e trabalho árduo. Mas para que um resultado possa ser alcançado, eles devem PRIMEIRO ter a capacidade. Esta condição não é suficiente, mas necessária! :-)

Por que a questão é a possibilidade de trabalhar com prazos e não com quadros de tempo? Esta situação é compreensível devido às capacidades limitadas (tempo, mão de obra, etc.) dos desenvolvedores. Mas é completamente inaceitável em termos de integridade de serviço e estratégia. Portanto, se hoje se adequa mais ou menos ao mercado, não o fará amanhã.
 
2 Jhonny
Acho que há uma base racional na sugestão da Scholand, mas pessoalmente preciso deles para pesquisa e temo não poder fornecer nada sério em uma semana, mas tenho um indicador de pré-produção desse tipo


Exatamente! Esse é exatamente o meu ponto de vista.

A propósito, esta coisa deve ser implementada como uma EA. O indicador salta carrapatos !
Para evitar esfregar o arquivo ele tem que ser aberto assim: FILE_BIN|FILE_READ|FILE_WRITE
E antes de escrever nele, coloque o ponteiro de escrita no final do arquivo.
 
Yurixx, eu estava apenas expressando meu ponto de vista! Este é um fórum livre e todos têm o direito de expressar sua opinião, não é mesmo? Ou devemos sempre ouvir a opinião da maioria? Mas a maioria "vaza" - olha o Campeonato!

As pessoas pediram aos desenvolvedores que fizessem um histórico de ticking, os desenvolvedores recusaram categoricamente. Então, o que segue? Você vai apenas escrever aqui uma montanha de reclamações que os desenvolvedores não escutaram os "desejos do povo trabalhador"? Eu, de minha parte, simplesmente sugeri uma opção racional para exercer pressão sobre os desenvolvedores - isso é tudo! Se todos querem apenas reclamações verbais sem nenhum progresso real sobre o assunto, então, por favor, eu pessoalmente não tenho nada contra isso.
 
"MQL4: Coletor de carrapatos <br / translate="no"> O Expert Advisor guarda o histórico de carrapatos para os símbolos especificados


É claro, quero agradecer pelo Expert Advisor, mas acabei de procurar, ele salva dados em csv, enquanto o meu foi projetado para armazená-los na história e depois o gráfico pode ser aberto e analisado offline.
 
É claro que obrigado pelo Expert Advisor, mas acabei de procurar, ele economiza em csv, enquanto o meu foi projetado para economizar na história e este gráfico pode ser aberto e analisado offline.

"MQL4: simple_csv2fxt".
Conversor simples de csv para fxt.


É necessário combinar meu Expert Advisor e este roteiro, e remendá-lo um pouco - será perfeito ;)
 
Acho inútil perguntar se precisamos de dados de carrapatos porque a resposta é óbvia - quanto mais possibilidades forem fornecidas, mais completo e de alta qualidade o serviço é e sempre haverá pessoas que precisam de um ou de outro... A resposta à pergunta será esta característica implementada num futuro próximo? - Obviamente não... Há, em minha opinião, uma razão importante... Nomeadamente - será implementado apenas o que traz receita aos Metakvotes nesta fase sob a forma de novos contratos e isto é lógico e correto ... Como a renda traz empresas intermediárias (corretores, DC, etc.) então serão implementadas que simplificam suas vidas, mas não o que vai complicar suas vidas ...
Os dados dos carrapatos complicarão suas vidas pelas seguintes razões:
1. Se os dados do tick estiverem disponíveis, os Conselheiros Especialistas que comercializam o tick symbol certamente aparecerão e, portanto, haverá enormes dificuldades com a sobreposição de tais especialistas.
2) se houver dados de carrapato confiáveis disponíveis, a possibilidade de testar os especialistas em carrapato no testador ficará disponível (o que também aumentará seu número)
3. Após o acesso aos dados do tick, o público exigirá acesso aos volumes REAL :))))))
4. O 4º lugar é ocupado pela falta de vontade ou pela falta de trabalho dos desenvolvedores (se houvesse demanda das empresas de corretagem, elas a criariam em quinze dias :))
5. E finalmente um argumento "trunfo" sobre o tráfego insano e o espaço em disco.
Razão: