Testando 'CopyTicks'.

 

Vamos começar com um simples - volume. Abaixo está uma imagem da falha detectada. Ocasionalmente aparecem "duplas" em volumes.


Win7-64

MT5-1085

Corretor "Otkritie", servidor real.

O principal ciclo indicador parece ser o seguinte:

//---------------------------------------------------------------------
//      Внешние задаваемые параметры:
//---------------------------------------------------------------------
input int                               TickCount = 2000;
input ENUM_TICK_TYPE                    TickType = ENUM_COPY_TICKS_ALL;
//---------------------------------------------------------------------
//---------------------------------------------------------------------
MqlTick         ticks_Arr[ ];
int             copied;
//---------------------------------------------------------------------
int
OnCalculate( const int _rates_total, const int _prev_calculated, const int _begin, const double& _price[ ] )
{
        if( _prev_calculated <= 0 )
        {
                ArrayInitialize( VolumeBuffer, 0 );
        }

        copied = CopyTicks( _Symbol, ticks_Arr, TickType, 0, TickCount );
        if( copied > 0 )
        {
                for( int i = copied - 1; i >= 0; i-- )
                {
                        MqlTick tick = ticks_Arr[ i ];

                        VolumeBuffer[ _rates_total - copied + i ] = ( double )tick.volume;
//                      Print( tick.volume );
                }
        }

        return( _rates_total );
}

Não encontrei nenhuma regularidade no aparecimento de "gêmeos". Espero que os desenvolvedores o consertem prontamente.

O indicador com o volume do tick está anexado (compilado no MT5-1100).

Arquivos anexados:
 
Dima_S:

Vamos começar com um fácil - volume. Abaixo está uma imagem da falha detectada. Ocasionalmente aparecem "duplas" em volumes.


Win7-64

MT5-1085

Corretor "Otkritie", servidor real.

O principal ciclo indicador parece ser o seguinte:

Não encontrei nenhuma regularidade no aparecimento de "gêmeos". Espero que os desenvolvedores o consertem prontamente.

O indicador com o volume do tick está anexado ( compilado no MT5-1100).

Dirigi-me ao Servicedesk sobre CopyTicks() (houve um erro nesta função)

Aqui está a resposta da SD:

Esta funcionalidade ainda está em desenvolvimento. Muitos componentes da plataforma estão sendo modificados para fornecer acesso completo ao fluxo de tick. Teremos que esperar mais algum tempo.

 
Mikalas:

Verifiquei com servicedesk sobre CopyTicks() (houve um erro com esta função)

Aqui está a resposta da SD:

Esta funcionalidade ainda está em desenvolvimento. Muitos componentes da plataforma estão sendo modificados para fornecer acesso total ao fluxo de tick. Teremos que esperar mais algum tempo.

Você tem sorte, eu ainda não tive notícias do Servicedesk sobre este recurso...
 
Mikalas:

Verifiquei com servicedesk sobre CopyTicks() (houve um erro com esta função)

Aqui está a resposta da SD:

Esta funcionalidade ainda está em desenvolvimento. Muitos componentes da plataforma estão sendo modificados para fornecer acesso total ao fluxo de tick. Teremos que esperar mais algum tempo.

Estou vendo. Portanto, por enquanto é um produto semi-acabado. Vamos esperar um pouco mais)))

Outra coisa que eu não entendo é porque eles quebraram algo que já estava funcionando - o modo estendido "tumbler".

 

Enquanto os desenvolvedores estão arranhando suas cabeças, vou sugerir uma variante da estrutura do MqlTick.

struct MqlTick
{
  datetime   time;           // Время последнего обновления цен
  uint       time_count;     // микросекунды ( крайне желательно брать с биржи )
  double     bid;            // Текущая цена Bid
  double     ask;            // Текущая цена Ask
  double     last;           // Текущая цена последней сделки (Last)
  ulong      volume;         // Объем для текущей цены Last
  ulong      interest;       // Текущая величина ОИ, после исполнения последней сделки Last
  ulong      buy_orders;     // Текущее число ордеров покупателей, после исполнения последней сделки Last
  ulong      sell_orders;    // Текущее число ордеров продавцов, после исполнения последней сделки Last
  ulong      buy_orders_vol; // Текущий объем ордеров покупателей, после исполнения последней сделки Last
  ulong      sell_orders_vol;// Текущий объем ордеров продавцов, после исполнения последней сделки Last
  char       action;         // Действие ( 'B' - покупка, 'S' - продажа )
 };

Tudo o mais na função pode ser deixado como está.

 
Dima_S:

Enquanto os desenvolvedores estão arranhando suas cabeças, vou sugerir uma variante da estrutura do MqlTick.

Tudo o mais na função pode ser deixado como está.

Legal! ! De acordo!
 
Dima_S:

Enquanto os desenvolvedores estão arranhando suas cabeças, vou sugerir uma variante da estrutura do MqlTick.

Tudo o mais na função pode ser deixado como está.

Eu acrescentaria a direção da transação. Quem foi o iniciador (vendedor ou comprador)
 
Prival-2:
Eu acrescentaria a direção da transação. Quem foi o iniciador (vendedor ou comprador)
Sim, omitido - adicionado.
 
E, de preferência, não a última hora de atualização de preços. Mais preciso seria provavelmente o tempo de troca de dados + adicionar o volume que está no bidê e o que está no copo aska (provavelmente melhor tudo de uma só vez).
 
Sim. E a capacidade de obter o histórico mais profundo acumulado pelo servidor para todos esses dados através dohttps://www.mql5.com/ru/docs/series/copyticks e testar estratégias usando-as no testador. Então os scalpers terão um Paraíso no MT5) E se acumularmos dados de cadaBookEvent- então o enorme tamanho do arquivo que não caberá no servidor sairá)
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyTicks - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Por que manter toda a história do rei das ervilhas no servidor? Você pode limitar a profundidade a uma quantidade razoável, por exemplo, uma semana. E um histórico mais profundo pode ser disponibilizado mediante solicitação (a partir do servidor de arquivos). Quem quiser a história do copo para o ano 2010, sem problemas, faça o download e depois deixe-os testá-lo até ficarem completamente azuis no rosto.

Ao mesmo tempo, tornando-o (histórico) disponível para outros através da tecnologia de torrentes. Há muitas soluções. Esta é apenas uma das opções.

Razão: