História do Tick - página 18

 
Alexander:

Está jogando agora?

Não o temos, tentamos de acordo com sua descrição.

Após o "tratamento":

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

História do Tick

Karputov Vladimir, 2015.10.21 09:24

...

Agora estou testando a "cura" - vou apagar completamente os históricos das pastas "histórico" e "carrapatos" do servidor MetaQuotes-Demo.


O histórico de 500 ticks de profundidade é dado quase que instantaneamente, com o histórico geral da barra sendo trocado. O tamanho dos arquivos de carrapatos é de 200-400 Kb por 10 meses.

 

E eu queria ter carrapatos no testador, ele dá o que quer que seja :)

void OnTick()
  {
//---
 MqlTick ExTicks[];
 CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,D'2015.10.16 23:59',1);

 

Veja como funcionam os carrapatos na construção de 1194, onde foram acrescentados milissegundos e bandeiras.

No testador, os carrapatos não são dados até completarmos a integração total dos carrapatos no testador de estratégias comerciais no próximo lançamento.

 
MetaTrader 5 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Home (X86 based PC), IE 11.00, UAC, Intel Atom  Z3740 @ 1.33GHz, RAM: 218 / 1931 Mb, HDD: 20039 / 50235 Mb, GMT+02:00
authorized on MetaQuotes-Demo through Access Point EU (ping: 139.57 ms)

Testar a paginação de tick quando a conexão de internet é desconectada. O indicador de teste abaixo:

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version    "1.1"
#property indicator_chart_window
#property indicator_plots 0
//--- input parameter
input int   InpShowTicks=50;    // клубина истории тиков
//--- parameters
MqlTick     arr_mql_tick[];      // массив структур хранящий тики
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   Print(__FUNCTION__);
   Comment("");
   ResetLastError();
//--- новый размер массива структур тиков
   if(ArrayResize(arr_mql_tick,InpShowTicks)==-1)
     {
      Print("Error OnInit #1",GetLastError());
      return(INIT_FAILED);
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   static int count;
   string text  =IntegerToString(count)+"; ";
   int copied=CopyTicks(_Symbol,arr_mql_tick,COPY_TICKS_INFO,0,InpShowTicks);
   text+="Запрошено "+IntegerToString(InpShowTicks)+" тиков, скачано "+IntegerToString(copied);
   Comment(text);
   count++;
   return(rates_total);
  }
//+------------------------------------------------------------------+

O algoritmo é o seguinte:

Iniciar o indicador. Aguarde até que o número de ticks baixados seja igual ao valor solicitado.

Desconectar da Internet (o terminal deve emitir um bip). Ao mesmo tempo:

  1. teste nº 1, "contar" =40,
  2. teste nº 2, "contar" =47,
  3. teste nº 3, "contar" =12.

Ligar a Internet.

O indicador tenta baixar ticks, com um pedido de 50, mas 21-23 são baixados. Isto dura até que a "contagem" seja maior que 100.

A repetibilidade é boa, verificada mais de três vezes.

Arquivos anexados:
test.mq5  3 kb
 
Karputov Vladimir:

Testar o paging quando a conexão de internet está quebrada. O indicador testado está abaixo:


Tenha em mente que a solicitação de ticks no indicador funciona de forma ligeiramente diferente da solicitação de ticks no Expert Advisor.

O indicador não tem o direito de frear, portanto o indicador recebe o número de carrapatos disponíveis para o pedido de uma só vez.

O Expert Advisor trabalha em seu próprio fluxo, portanto, pode esperar um pouco. Para o Expert Advisor são feitas várias tentativas de troca de carrapatos por pedido.

 
Slawa:

Observe que a solicitação de carrapato no indicador funciona de forma ligeiramente diferente da solicitação de carrapato no Expert Advisor.

O indicador não tem o direito de frear, portanto o indicador recebe o número de carrapatos disponíveis para o pedido de uma só vez.

O Expert Advisor está trabalhando em sua própria linha, portanto, pode esperar um pouco. Várias tentativas são feitas para que o Expert Advisor troque carrapatos por consulta.

Isto é compreensível. Mas quanto tempo leva para se empilhar? No exemplo acima, o pedido é de 50 carrapatos. Se não houver carrapatos a serem carregados imediatamente, levará 30 segundos.

E fica pior. Eu faço um pedido de 500 ticks - os ticks são reabastecidos quase que instantaneamente (acho que é apenas porque solicitei esta quantia mais cedo) e depois faço um pedido de 5000 ticks - quatro minutos já passaram, mas apenas 2000 ticks de 5000 foram carregados e a quantia não aumenta.

 
Renat Fatkhullin:

Veja como funcionam os carrapatos na construção de 1194, onde foram acrescentados milissegundos e bandeiras.

No testador, os carrapatos não são dados até completarmos a integração total dos carrapatos no testador de estratégias comerciais no próximo lançamento.

Haverá mudanças similares para o MT4?
 

Verifiquei-o em outro computador à noite:

MetaTrader 5 x64 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Pro (x64 based PC), IE 11.00, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 1129 / 3981 Mb, HDD: 75614 / 234136 Mb, GMT+02:00
authorized on MetaQuotes-Demo through Access Point EU2 (ping: 59.54 ms)

Pré-carregado 200000000 ticks com um script - ticks carregados em cerca de 6 segundos. Não pude ver nenhuma diferença:

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

História do Tick

Karputov Vladimir, 2015.10.22 15:07

... Eu faço um pedido de 500 carrapatos - os carrapatos são carregados quase que instantaneamente (acho que isso se deve apenas ao fato de eu ter pedido anteriormente tal número), e depois faço um pedido de 5000 - passaram quatro minutos, e pouco menos de 2000 de 5000 são carregados e este número não cresce.

 
Não no MT4, infelizmente.
 
MetaTrader 5 build 1196 started (MetaQuotes Software Corp.)
authorized on MetaQuotes-Demo through Access Point EU1 (ping: 296.87 ms)

O campo das bandeiras da estrutura MqlTicks muitas vezes contém valores de "24" (modo de exibição "todos os ticks"):

1

- o que significa este valor?

Arquivos anexados: