Discussão do artigo "Símbolos personalizados: Fundamentos práticos"

 

Novo artigo Símbolos personalizados: Fundamentos práticos foi publicado:

O artigo é dedicado à geração programática de símbolos personalizados que são usados para demonstrar alguns métodos populares de exibição de cotações. Ele descreve uma variante sugerida da adaptação minimamente invasiva de Expert Advisors para negociar um símbolo real a partir de um gráfico de símbolo personalizado e derivado. Os códigos-fonte em MQL estão anexados a este artigo.

Além disso, o EA permite usar o modo de volume real para instrumentos de bolsa:

O gráfico original LKOH com o volume real de 10,000 por barra, gerado pelo EA EqualVolumeBars na MetaTrader 5

O gráfico de equivolume LKOH com o volume real de 10,000 por barra, gerado pelo EA EqualVolumeBars na MetaTrader 5

O gráfico LKOH original (a) e o equivolume (b) com o volume real de 10,000 por barra, gerado pelo EA EqualVolumeBars na MetaTrader 5

O período do símbolo no qual o EA está sendo executado não é importante, já que as barras M1 ou o histórico de ticks são sempre usados para cálculos.

O período dos gráficos de símbolos personalizados deve ser igual a M1 (o menor tempo gráfico disponível na plataforma). Assim, o tempo das barras, geralmente corresponde aproximadamente aos seus momentos de formação. No entanto, durante fortes movimentos do mercado, quando o número de ticks ou o tamanho dos volumes formam várias barras por minuto, o tempo das barras estará à frente do tempo atual. Quando o mercado se acalmar, os horários das barras de equivolume voltarão ao normal. Essa limitação da plataforma provavelmente não é particularmente crítica para barras de volume igual ou intervalo igual, uma vez que a própria ideia de tais gráficos é desvinculá-los do tempo absoluto.

Autor: Stanislav Korotky

 
No artigo, vi um recurso da MQL que eu não conhecia. Um exemplo de seu uso.
template <typename T>
void f( T& ) {}

// Funciona apenas para objetos de estruturas e classes.
template <typename T>
void OnlyObjects( T& )
{  
  const T Tmp;
  
  f((T)Tmp);
  
  // ....
}

void OnStart()
{
  int i;
  MqlTick Tick;
  
  OnlyObjects(Tick); // OK
  OnlyObjects(i);    // Erro
}
 
fxsaber:
No artigo, vi um recurso da MQL que eu não conhecia. Um exemplo de seu uso.

Ele provavelmente pertence a outro artigo ;-) - https://www.mql5.com/pt/articles/8028/ - os modelos foram usados lá, e o exemplo de lá foi simplesmente transferido para cá, já pronto.

Вычисление математических выражений (Часть 2). Парсеры Пратта и сортировочной станции
Вычисление математических выражений (Часть 2). Парсеры Пратта и сортировочной станции
  • www.mql5.com
В этой статье мы продолжаем изучать различные методы парсинга математических выражений и их реализацию на языке MQL. В первой части были рассмотрены парсеры рекурсивного спуска. Их главное достоинство — интуитивно понятное устройство, напрямую связанное с конкретной грамматикой выражений. Но если речь заходит об эффективности и технологичности...
 

Stanislav, obrigado por seu trabalho!

Por que os quatro tipos de gráfico (equi-, renge-, tick- e renko) não estão combinados em um único EA? Havia algum motivo para separá-los ou era mais fácil refazer algo já pronto?


К сожалению, имя исходного символа и созданного на его основе ренко никак нельзя связать средствами самой платформы. Было бы удобно иметь среди свойств пользовательского символа строковое поле "origin" (источник) или "parent" (родитель), в которое мы могли бы записать имя реального рабочего инструмента. По умолчанию оно было бы пустым, но если его заполнить, то платформа могла бы автоматически и прозрачно для пользователя подменять символ во всех торговых приказах и запросах истории.

Muito boa ideia. Além disso, a negociação com base no gráfico funcionaria de forma integrada.

Para quem devo enviar um e-mail? @Renat Fatkhullin @Slava

 
Andrey Khatimlianskii:

Por que os quatro tipos de gráfico (equi-, renge-, tick- e renko) não estão combinados em um único EA? Havia motivos para separá-los ou era mais fácil refazer algo já pronto?

Em primeiro lugar, historicamente, eles foram feitos separadamente (para começar, algumas coisas não são minhas ;-). Em segundo lugar, na minha opinião, cada tipo de gráfico tem seus próprios adeptos e eles não se sobrepõem muito (por exemplo, os fãs do tick não são fãs do renko, e o timeshift é uma música completamente diferente). Em terceiro lugar, eles têm em comum apenas a inicialização, e não completamente, porque a continuação da geração após a reinicialização deve ser feita de forma diferente. Houve uma ideia de colocar o comum em um includnik separado, mas levando em conta o ponto 2, é mais fácil para todos escolherem um arquivo sem dependências.

 
Stanislav Korotky:

Em primeiro lugar, historicamente, eles têm sido feitos separadamente (para começar, alguns não são minha praia ;-). Em segundo lugar, na minha opinião, cada tipo de gráfico tem seus próprios adeptos e eles não se sobrepõem muito (por exemplo, os fãs de tick não são fãs de renko, e timeshift é uma música separada). Em terceiro lugar, eles têm em comum apenas a inicialização, e não completamente, porque a continuação da geração após a reinicialização deve ser feita de forma diferente. Houve uma ideia de colocar o comum em um includnik separado, mas levando em conta o ponto 2, é mais fácil para todos escolherem um arquivo sem dependências.

Bem, todos eles têm o mesmo significado: pegar ticks (ou minutos) e criar um gráfico a partir deles sem uma linha do tempo.

A preparação do histórico (idealmente uma única vez, com continuação após uma pausa no lugar certo), a geração de novas barras e a emulação de ticks são semelhantes. Apenas as regras para "nova barra" são diferentes.

Mas entendo a resposta, eu também começaria com a adaptação de algo pronto, em vez de inventar uma bicicleta.

 
O MetaTrader 5 adicionou suporte ao histórico de ticks reais e a própria plataforma está posicionada, entre outras coisas, como uma ferramenta para negociação de alta frequência (HFT). <br/ translate="no">

Engraçado) e quem e onde a posiciona dessa forma?

O servidor MT5 da minha corretora não consegue executar uma ordem pendente em 100 ms, então como pode ser HFT).

Sem mencionar que as ordens pendentes são executadas como ordens de mercado.

 
secret:

Engraçado) e quem e onde está posicionando-o dessa forma?

O servidor MT5 da minha corretora não consegue executar uma ordem pendente em 100ms, o que é HFT).

Sem mencionar que as ordens pendentes são executadas como ordens de mercado.

https://www.mql5.com/en/welcome/en-metatrader-5-high-frequency-trading

MetaTrader 5 – the best solution for HFT traders!
MetaTrader 5 – the best solution for HFT traders!
  • www.mql5.com
Speed is a key attribute of High-Frequency Trading. Everything from data delivery and trade execution to the instant analysis based on huge amounts of data using hundreds of analytical tools must be as fast as possible. All this is available in MetaTrader 5! In MetaTrader 5, quotes are updated dozens of times per second. The quoting speed is an...
 
Stanislav Korotky:

Renko

Para criar gráficos renko, usamos o Expert Advisor RenkoTicks.mq5, que não é comercial. Ele gera renko na forma de cotações de um instrumento personalizado, processando ticks reais (disponíveis no MetaTrader 5 a partir de sua corretora). As cotações (barras) do símbolo original e o período de tempo do gráfico de trabalho onde o RenkoTicks é colocado não importam.

Uma alternativa aos símbolos personalizados ao plotar o renko poderia ser um indicador ou desenho (usando objetos ou na tela),mas em ambos os casos seria impossível aplicar indicadores ou scripts nesses pseudográficos.

Bem, por que ser tão categórico? Você pode desenhar na tela, gravar os valores no buffer do indicador e aplicar outros indicadores ao preço "Dados do indicador anterior". E essa é apenas uma das variantes mais primitivas. Há outras mais avançadas.





 
Nikolai Semko:

Bem, por que isso é tão categórico? Você pode desenhar na tela, gravar os valores no buffer do indicador e aplicar outros indicadores ao preço "Data of the previous indicator" (Dados do indicador anterior). E essa é apenas uma das variantes mais primitivas. Há outras mais avançadas.

Essa solução não abrange toda a variedade de ferramentas usadas na prática.

 
Andrey Khatimlianskii:

Esta solução não abrange toda a variedade de ferramentas usadas na prática.

Essa solução não pretende abranger toda a diversidade, mas apenas refutar a afirmação de que não há possibilidade de usar indicadores em um gráfico com um esquema de tempo de barranão padrão .
Repito: há soluções mais avançadas (embora muito mais complicadas) que já podem afirmar que abrangem "toda a diversidade".