Discussão do artigo "Criando Indicadores de Ponto no MQL5"

 

Novo artigo Criando Indicadores de Ponto no MQL5 foi publicado:

Neste artigo, consideraremos a criação de dois indicadores: o indicador de tick, que plota o gráfico de tick do indicador de vela de tick e preço, que plota velas com o número específico de ticks. Cada um dos indicadores escreve os preços de entrada em um arquivo e usa os dados salvos após o reinício do indicador (estes dados também podem ser usados por outros programas).

Autor: Denis Zyatkevich

 

Obrigado por esse artigo interessante.

O uso de um arquivo para armazenar dados em buffer era obrigatório?

Não era possível armazenar dados de histórico na memória, usando uma matriz estatística?

Obrigado

 

Boa tarde!

Gostaria de ver gráficos de segundos - um candle é de alguns segundos (5 segundos, 6 segundos, 10, 12, 15). Para ver as mudanças de preço em relação ao tempo.

 
Silent:

Um erro de digitação?

No texto do artigo. No exemplo, está correto, AskBuffer
Sim, é um erro de digitação. Corrigido. Obrigado.
 

Bom dia!

É possível usar os arquivos de ticks recebidos pelo indicador proposto para teste de várias moedas no testador, desativando a criação de ticks virtuais no testador e fazendo a sincronização de dados sobre os preços dos instrumentos por tempo?

Muito obrigado.

Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
  • www.mql5.com
Получение рыночной информации / SymbolIsSynchronized - Документация по MQL5
 
robinz:

Boa tarde!

Gostaria de ver gráficos de segundos - um candle é de alguns segundos (5 segundos, 6 segundos, 10, 12, 15). Para ver as mudanças de preço em relação ao tempo.

Esses gráficos estão além do escopo deste artigo, portanto, sugiro que você mesmo os crie - não é mais complicado do que os descritos no artigo.
rrr:

Boa tarde!

É possível usar os arquivos de ticks recebidos pelo indicador proposto para teste de várias moedas no testador, desativando a criação de ticks virtuais no testador e fazendo a sincronização dos dados sobre os preços dos instrumentos por tempo?

Muito obrigado.

Os arquivos com cotações criados pelo indicador, é claro, podem ser usados para outros fins. Sugiro que você desative as funções desnecessárias (por exemplo, desenhar gráficos) e o processamento de dados (por exemplo, sincronização de dados de diferentes instrumentos). A propósito, na minha opinião, é mais fácil gravar cotações em um arquivo com a ajuda de um Expert Advisor (também está no arquivo anexo):

int h;
void OnInit()
  {
   string s;
   StringConcatenate(s,Symbol(),".txt");
   h=FileOpen(s,FILE_READ|FILE_WRITE|FILE_ANSI|FILE_SHARE_READ);
   FileSeek(h,0,SEEK_END);
  }

void OnTick()
  {
   string s;
   StringConcatenate(s,TimeCurrent(),"  ",DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_BID),_Digits)," ",DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_ASK),_Digits));
   FileWrite(h,s);
   FileFlush(h);
  }

void OnDeinit(const int reason)
  {
   FileClose(h);
  }
Arquivos anexados:
ticklog.mq5  1 kb
 

Ótimo artigo, obrigado pelos indicadores!

Estou com esse problema ao executar o tickindicator.mq5.

Compilei o indicador. Executo-o.

A janela do indicador é exibida. Ela tem uma escala com números grandes de mínimo e máximo. E o indicador se move ao longo da linha horizontal. Tentei corrigir o mínimo e o máximo do indicador. O indicador parece aparecer, mas há algumas linhas verticais no lance.


 
denkir:

Ótimo artigo, obrigado pelos indicadores!

Estou com esse problema ao executar o tickindicator.mq5.

Compilei o indicador. Executo-o.

A janela do indicador é exibida. Há uma escala com números grandes de mínimo e máximo. E o indicador se move ao longo da linha horizontal. Tentei corrigir o mínimo e o máximo do indicador. O indicador parece aparecer, mas há algumas linhas verticais no lance.

É necessário inicializar todos os valores no buffer do indicador.

Provavelmente IMHO - não dei uma olhada no código)

 

Diga-me onde devo consertar algo.

Em períodos de tempo superiores a M30, a escala começa a mostrar números estranhos.

 
fyords:

Diga-me onde devo consertar algo.

Em períodos de tempo superiores a M30, a escala começa a mostrar números estranhos.

Como sugeriu meu colega Dima_S, ao inicializar o indicador, vale a pena preencher os buffers com alguma coisa.

E como temos o código TickIndicator.mq5:

//+------------------------------------------------------------------+
//| Função OnInit()|
//+------------------------------------------------------------------+
void OnInit()
  {
// A matriz BidBuffer[] é um buffer de indicador
   SetIndexBuffer(0,BidBuffer,INDICATOR_DATA);
// A matriz AskBuffer[] é um buffer de indicador
   SetIndexBuffer(1,AskBuffer,INDICATOR_DATA);
// os valores zero da linha Bid não são desenhados
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0);
// os valores zero da linha Ask não são desenhados
   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0);
  }

É necessário inserir as seguintes linhas:

ArrayInitialize(BidBuffer,0);
ArrayInitialize(AskBuffer,0);
 
denkir:

Como sugeriu meu colega Dima_S, ao inicializar o indicador, vale a pena preencher os buffers com alguma coisa. Foi o que fiz:

ArrayInitialize(BidBuffer,EMPTY_VALUE);
ArrayInitialize(AskBuffer,EMPTY_VALUE);

Fiz isso, mas não ajudou.

ArrayInitialize(BidBuffer,0.0);
ArrayInitialize(AskBuffer,0.0);
Assim também.