Tabela de todos os ofícios. Acesso via MQL5 - página 2

 
prostotrader:
Encontrou um bug e otimizou a operação.

Um bom exemplo, embora ainda haja um longo caminho a percorrer antes de um ótimo desempenho. Até agora, os freios principais são três:

1. CopyTiks cada OnBookEvent copia todos os carrapatos desde o início:

int copied= CopyTicks(Symbol(),ticks,COPY_TICKS_ALL,start_time,0);

Isto pode realmente ser otimizado através de cortes dinâmicos.

2. Enumeração completa de todos os carrapatos recebidos no OnBookEvent

for(int i=1; i<copied; i++)
{
   if(( ticks[i].flags  &TICK_FLAG_BUY)==TICK_FLAG_BUY)
   {
      buy_deals++;
   }
   else
   if(( ticks[i].flags  &TICK_FLAG_SELL)==TICK_FLAG_SELL)
   {
      sell_deals++;
   }
}

Isto também pode ser corrigido, se você desejar.

3. Enumeração completa de todas as barras no OnCalculation:

for(int i=rates_total-1; i>0; i--)
{
   SellBuffer[i]= SellBuffer[i-1];
   BuyBuffer[i] = BuyBuffer[i-1];
}
 
A pedido dos membros do fórum, eu finalizei o indicador
Arquivos anexados:
DealsLent.mq5  9 kb
 
Vasiliy Sokolov:

Um bom exemplo, embora ainda haja um longo caminho a percorrer antes de um ótimo desempenho. Até agora, os freios principais são dois:

1. CopyTiks cada OnBookEvent copia todos os carrapatos desde o início:

Isto pode realmente ser otimizado através de cortes dinâmicos.

2. Enumeração completa de todos os carrapatos recebidos no OnBookEvent

Isto também pode ser corrigido, se você desejar.

3. Enumeração completa de todas as barras no OnCalculation:

Obrigado, mas você não está certo em todos os lugares.

1. Nem todos os carrapatos (olhe com cuidado).

2. Como você quer fazer isso?

3. Fácil de fazer

Agora, vamos afinar...

 
Aqui, afinado.
Arquivos anexados:
DealsLent.mq5  9 kb
 
prostotrader:

Obrigado, mas você não está certo sobre tudo.

1. Nem todos os carrapatos (olhe com cuidado)

2. Fácil de fazer

3. Fácil de fazer.

Agora estamos acertando...

Sim, na verdade nem todos os carrapatos.

Sobre o terceiro ponto, não tenho certeza se será fácil de fazer. O indicador é no sentido tic-tac e, portanto, requer uma séria renderização.

Mas, no geral, está tudo bem. Obrigado pelo exemplo.

 
prostotrader:
Aqui, eu o afinei.
Obrigado.
 
Vasiliy Sokolov:

Sim, na verdade nem todos os carrapatos.

Sobre o terceiro ponto, não tenho certeza se seria fácil de se fazer. Porque o indicador é um indicador de carrapato e, portanto, requer alguma reformulação séria.

Mas, no geral, está tudo bem. Obrigado pelo exemplo.

De fato, o indicador é baseado em carrapatos, portanto somente os dados atuais (recentes) são importantes.

Se o usuário quiser tirar um histórico mais longo dos amortecedores,

é muito fácil de fazer.

Sec.

 

Aqui, o usuário pode escolher o tamanho dos dados em que está interessado.

Se ActSize = 0 - todo o histórico disponível

Arquivos anexados:
DealsLent.mq5  9 kb
 
O toque final...
Arquivos anexados:
DealsLent.mq5  10 kb
 

Alguém sabe qual é o erro?

O indicador funciona corretamente, mas mais barras são exibidas,

do que foi criado.

Razão: