Símbolos personalizados. Erros, bugs, perguntas, sugestões. - página 11

 
fxsaber:

2033:

2063:

 
fxsaber:

Bug 07.

O Testador gera barras por último para símbolos personalizados de estoque com preço Bid para construir barras.

De forma correspondente, o histórico do bar no Terminal e do Testador é completamente diferente. E se alguém usa barras no TS (indicadores, por exemplo), o resultado do backtest é aleatório para ele/ela.

Se por um instrumento de troca entendemos uma ferramenta com uma profundidade não zero do copo, a construção de barras neste caso foi corrigida.

Ou dê seu próprio exemplo.

 
fxsaber:

Bug 01.

A tabela de caracteres personalizada está aberta. Se, por exemplo, você apagar manualmente todas as barras e o histórico de tick, a janela do gráfico simplesmente fica pendurada - sem atualização.

Comportamento esperado como com um símbolo de costume vazio.

Explique com mais detalhes o que você quer dizer com

Apagado todo o histórico da barra, o gráfico de símbolos personalizados está vazio com "À espera de atualização" escrito nele. O que está errado?

 

Bug 13.

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

MetaTrader 5 plataforma beta build 2055: Integração com Python e melhorias maciças no testador de estratégia

fxsaber, 2019.05.25 10:33

Reprodução de bug visual (torção do gráfico) aplicação ChartSetSymbolPeriod

// Пример создания "живого" символа.

#include <Symbol.mqh> // https://www.mql5.com/ru/code/18855

const bool Init = EventSetMillisecondTimer(20); // С такой частотой будем пробрасывать тики

void OnInit()
{
  MathSrand((int)TimeLocal());
}

long Chart2 = 0;

void OnTimer()
{
  static bool FirstRun = true;

  static const SYMBOL Symb("CUSTOM_" + _Symbol + (string)MathRand()); // Создали символ
  
  static MqlTick Ticks[];
  static int Pos = 0;
    
  if (FirstRun)
  {
    Symb.DeleteHistory();       // Мало ли что-то было в истории - грохнули
    Symb.Delete(true);          // Символ тоже прибьем, чтобы исключить наличие тика в Обзоре рынка
    Symb.Create(NULL, _Symbol); // Воскресили девственно чистым.
    
    if (Symb.IsExist() && Symb.On())   // Если все отлично
    {     
      Chart2 = ChartOpen(Symb.Name, PERIOD_M1); // Открыли чарт
      CopyTicksRange(_Symbol, Ticks, COPY_TICKS_INFO, (ulong)D'2019.05.20' * 1000); // Взяли тики для проброса
    }
      
    FirstRun = false;
  }
  else if (Pos < ArraySize(Ticks))
  {
    Symb += Ticks[Pos++]; // Пробрасываем по тику
    
    // Для обновления чарта.
    ChartSetSymbolPeriod(Chart2, Symb.Name, PERIOD_M1); // Без этой строки дерганья графика прекращаются
    ChartRedraw(Chart2);    
  }
}

A animação mostra o gráfico se contorcendo. Se você remover o ChartSetSymbolPeriod, os tremores param.

 
Slava:

Explique com mais detalhes o que você quer dizer com isto.

Apagado todo o histórico da barra, o gráfico do símbolo personalizado está vazio com "À espera de atualização" escrito nele. O que está errado?

Execute esta EA. Após algumas barras, desativá-lo sem fechar a tabela. Use CTRL+U para excluir todas as barras.

 
fxsaber:

Bug 13.

O mesmo Expert Advisor também reproduz o seguinte bug

À esquerda - a tabela, à direita - sua janela de propriedades (F8).

 

Bug 15.

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

MetaTrader 5 plataforma beta build 2055: Integração com Python e melhorias maciças no testador de estratégia

fxsaber, 2019.05.25 10:54

Após cada aplicação de CustomRatesUpdate há uma zeragem de indicadores pré-calculados que estão rodando no símbolo personalizado correspondente.

Isto é um erro. prev_calculado deve traduzir-se na primeira barra que foi aplicada em CustomRatesUpdate.


ZY O mesmo erro com CustomRatesReplace.

No símbolo deste EA (com o ChartSetSymbolPeriod-row removido) lançamos o seguinte indicador

#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots indicator_buffers

int OnCalculate( const int rates_total, const int prev_calculated, const int, const double &[] )
{
  Print(prev_calculated);
  
  return(rates_total);
}

Devolve apenas zeros.

 
Slava:

Se por um instrumento de estoque se entende um instrumento com uma profundidade não zero do copo, a construção da barra, neste caso, foi corrigida.

Dê seu exemplo.

Agora (2067) tenho tudo correto com isto, Obrigado.

 
fxsaber:

2063:

2069: