Discussão do artigo "Escrevendo um livro de ofertas de scalping com base na biblioteca gráfica CGraphic" - página 2

 
Konstantin Seredkin:

Você pode me dizer como encontrar o preço do volume máximo no vidro em sua implementação? Encontrei o volume em si, tudo está claro, mas como encontrar o preço no qual essa densidade máxima se encontra.

Estou interessado na implementação do software? O scalper de preço é baseado na classe CMarketBook. Ele permite que você obtenha propriedades comuns, incluindo o preço do volume máximo.
 
Vasiliy Sokolov:
Interessado em uma implementação de software? O scalper de preço é baseado na classe CMarketBook. Ela permite que você obtenha propriedades comuns, incluindo o preço do volume máximo.

Aha, nessa classe foi encontrado o volume máximo em si, estou interessado em como complementá-lo para que ele também determine o preço a partir do volume máximo encontrado.

O tópico é simplesmente interessante, por exemplo, você pode criar um indicador, no qual haverá uma variável Volume = 1000, assim que o volume mais próximo do preço >=1000 aparecer no vidro do gráfico, a esse preço aparecerá uma barra. Você pode fazer muitas coisas interessantes. Gostaria de saber se é possível expandir a classe funcional, pois vejo que há alguns dados que sua pilha não usa, OI e valores máximos para abertura de ordens em ambas as direções etc. também são necessários, mas o preço não é.... Se você puder adicioná-los, ficarei grato ou direto, nunca trabalhei com dados de pilha, mas me deparei com seu tópico e fiquei interessado, além disso, você tem tudo tão convenientemente organizado.

 

Boa noite, Vasily

Fiquei tão interessado no artigo que decidi me registrar e deixar meu comentário (nº 1).

Estou tentando entrar no comércio de algo, mas ainda me sinto como um iniciante.

Executei o código anexado no modo testador para me familiarizar com seu funcionamento. Mas, por algum motivo, a aposta não é exibida por completo, ou seja, o quadro e a legenda à direita são abertos, mas o gráfico e os botões estão ausentes. O testador funciona, não há indicação de erro no registro. O que eu fiz de errado? Ajude-me a me conectar.

Desde já, obrigado,

Alexander

 
AMK_robot:

Boa noite, Vasily

Fiquei tão interessado no artigo que decidi me registrar e deixar meu comentário (nº 1).

Estou tentando entrar no comércio de algo, mas ainda me sinto como um iniciante.

Executei o código anexado no modo testador para me familiarizar com seu funcionamento. Mas, por algum motivo, a aposta não é exibida por completo, ou seja, o quadro e a legenda à direita são abertos, mas o gráfico e os botões estão ausentes. O testador funciona, não há indicação de erro no registro. O que eu fiz de errado? Ajude-me a me conectar.

Desde já, obrigado,

Alexander

Boa tarde. Obrigado por seu interesse no artigo e em nossa comunidade. A resposta à sua pergunta está oculta no artigo. O testador de estratégia não representa o histórico da aposta, portanto, você pode executar a aposta somente em um gráfico no modo em tempo real. Além disso, no modo de teste, os componentes gráficos são exibidos com funcionalidade limitada, portanto, você não poderá exibir a pilha de preços no testador. Use o vidro de preço somente em um gráfico. Além disso, o vidro de preços não é transmitido para todos os mercados, portanto, você deve se conectar à Bolsa de Valores de Moscou ou usar uma conta de demonstração da MetaQuotes.

 

Há um mês, implementei sua classe em meus robôs e, é claro, não deixei de fazer melhorias globais, pois faltavam alguns métodos, mas tudo funcionou e funciona.

Tenho uma pergunta

Seu exemplo

//+------------------------------------------------------------------+
//|MarketBook.mq5
//| Copyright 2017, MetaQuotes Software Corp.
//| https://www.mql5.com
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots 0
#include <MarketBook.mqh>

CMarketBook MarketBook.mqh
double fake_buffer[];
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado
//+------------------------------------------------------------------+
int OnInit()
  {
   MarketBook.SetMarketBookSymbol(Symbol());
//--- mapeamento de buffers de indicadores
   SetIndexBuffer(0,fake_buffer,INDICATOR_CALCULATIONS);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Evento de alteração do MarketBook|
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
{
   if(symbol != MarketBook.GetMarketBookSymbol())
      return;
   MarketBook.Refresh();
   ChartRedraw();
}

Qual é a maneira correta de desinicializar a xícara?

Qual variante é a mais correta, pois parece funcionar das duas maneiras?

void OnDeinit(const int reason)
 { 

//|----------- 
   if(!MarketBookRelease((string)m_book_market.SetMarketBookSymbol(Symbol())))
   {
   if(Debug){Print("Error MarketBookRelease ",m_symbol.Name());}}
//|-----------


//|----------- 
   if(!m_book_market.SetMarketBookSymbol(Symbol()))  
   {
   if(Debug){Print("Error MarketBookRelease ",m_symbol.Name());}}
//||-----------

 }
 
Konstantin Seredkin:

Obrigado, Vasily, por seu trabalho árduo. Há um mês, implementei sua classe em meus robôs, é claro que não foi possível fazer melhorias globais, pois alguns métodos estavam faltando, mas tudo funcionou e funciona.

Tenho uma pergunta

Seu exemplo

E qual é a maneira correta de desinicializar o secador?

Qual opção é a mais correta, pois parece funcionar das duas maneiras?

Não estou entendendo. O que é isso?

CMarketBook MarketBook.mqh
 
Konstantin:

Não estou entendendo, o que é isso:

Alguma linha de código...
 
Konstantin Seredkin:
Uma linha de código...

Você me mostrou esse código, então estou perguntando o que é, pois a sintaxe não está clara.

//+------------------------------------------------------------------+
//|MarketBook.mq5
//| Copyright 2017, MetaQuotes Software Corp.
//| https://www.mql5.com
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots 0
#include <MarketBook.mqh>

CMarketBook MarketBook.mqh
double fake_buffer[];
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado
//+------------------------------------------------------------------+
int OnInit()
  {
   MarketBook.SetMarketBookSymbol(Symbol());
//--- mapeamento de buffers de indicadores
   SetIndexBuffer(0,fake_buffer,INDICATOR_CALCULATIONS);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Evento de alteração do MarketBook|
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
{
   if(symbol != MarketBook.GetMarketBookSymbol())
      return;
   MarketBook.Refresh();
   ChartRedraw();
}
 
Konstantin:

Você me mostrou esse código, então estou perguntando o que é, porque a sintaxe não está clara.

As palavras que escrevi em minha pergunta não significam nada?

Seu exemplo

Esse código foi publicado pelo autor do tópico na descrição da classe https://www.mql5.com/pt/articles/3336.

Portanto, essa pergunta não deve ser dirigida a mim, pelo menos...

Пишем скальперский стакан цен на основе графической библиотеки CGraphic
Пишем скальперский стакан цен на основе графической библиотеки CGraphic
  • 2017.06.23
  • Vasiliy Sokolov
  • www.mql5.com
Именно с этой, улучшенной и дополненной версией мы и начнем работать, чтобы постепенно превратить ее в скальперский стакан цен. Краткий обзор графической библиотеки CPanel Созданию пользовательских интерфейсов в MQL5 посвящено много статей. Среди них особенно выделяется серия Анатолия Кажарского "Графические интерфейсы", после которой сложно...
 

Deve ser um copypasta. Isso acontece. O autor provavelmente escreveu esse código parcialmente no navegador.

Em vez de

CMarketBook MarketBook.mqh

escreva

CMarketBook MarketBook;