![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Mesmo se você os tornar virtuais , não poderá fazer uma sobrecarga normal sem acesso total aos membros da classe CGraphics, portanto, todos eles (a maioria) devem ser declarados como protegidos.
e estas funções ***Plot são apenas protegidas
e estas funções ***Plot são igualmente protegidas
{
private:
CArrayObj m_arr_curves;
CCanvas m_canvas;
//--- parameters background
int m_height;
int m_width;
//--- parameters work space
int m_left;
int m_right;
int m_up;
int m_down;
//--- default parameters work space
int m_left0;
int m_right0;
int m_up0;
int m_down0;
//--- size of dash on the axes
int m_mark_size;
//--- scaling parameters
double m_dx;
double m_dy;
Eu estava falando dos membros da classe CGraphic, agora eles são todos privados, e sem acesso a m_canvas, m_dx, m_dy e outros membros na descendência, a sobrecarga não vai funcionar.
OK, então tudo está em suas mãos) Vou esperar.
Até agora, eu o mudei temporariamente localmente
Em algumas funções (não em todos os lugares), se houver uma divisão, ela é sem um cheque 0.
por exemplo
{
...
...
double x_size=(m_x.Max()-m_x.Min());
double xf_size=xf2-xf1;
//--- keep scaling parameters
m_dx=xf_size/x_size;
aqui zero_devide ocorrerá se x.Max() == Min()
também em Axis::CalcStepSize / CalcBoundedStepSize / SelectAxisScale etc.
Em algumas funções (não em todos os lugares), se houver uma divisão, ela é sem um cheque 0.
por exemplo
{
...
...
double x_size=(m_x.Max()-m_x.Min());
double xf_size=xf2-xf1;
//--- keep scaling parameters
m_dx=xf_size/x_size;
zero_devide ocorrerá se x.Max() == Min()
também em Axis::CalcStepSize / CalcBoundedStepSize / SelectAxisScale etc.
Obrigado, vou corrigi-lo.
Para não sobrecarregar a biblioteca com numerosas verificações, tentei levar em conta todos os casos do Eixo::SelectAxisScal método.
1. este parece ser o arquivo sem as edições desta manhã no enum ENUM_AXIS_TYPE
---
2. ENUM_AXIS_TYPE testado da página anterior
já que você está fazendo ValuesFunctionFormat em estilo de função de retorno, você tem que retornar algum parâmetro vazio* na função.
em CAxis para acrescentar
void* m_cbdata; // <---
...
// изменить
void ValuesFunctionFormat(DoubleToStringFunction func, void* cbdata) { m_values_func=func; m_cbdata=cbdata; }
// добавить получение этого void*
void* ValuesFunctionFormatCBData(void) const { return m_c bdata; }
em CGraphic::CalculateXAxis
void* cbdata=m_x.ValuesFunctionFormatCBData(); // <---
...
case AXIS_TYPE_CUSTOM:
{
m_xvalues[i]=(xfunc==NULL) ? NULL : xfunc(x, cbdata); // <---
----
Este parâmetro de retorno é necessário para passar um ponteiro para um objeto que sabe onde está a matriz arrX.
Como a função é essencialmente estática, é impossível saber o que exatamente a chamou.
ZS.
E aqui está o resultado das séries cronológicas já exibidas (vou perguntar mais sobre linhas com leituras mais tarde, há um inconveniente de se conseguir coordenadas lá :)
E é isto que o resultado das séries cronológicas já se parece em princípio (vou perguntar mais sobre as linhas com leituras mais tarde, há o embaraço de conseguir coordenadas lá :)
Por favor, faça um vídeo ou uma animação mais longa a partir do momento do gráfico vazio. Não recebo isso do GIF.
isso é melhor?
este especialista trabalha na tela de roman + CGraphic
Neste caso, estou construindo um P/L a partir de várias ferramentaseste especialista trabalha em Roman's Canvas + CGraphic
Neste caso, eu construo P/L a partir de vários instrumentosMais claro agora. A cristais (e possivelmente outra interatividade) é uma funcionalidade embutida (necessária) da biblioteca de Roman, ou você a herdou?
Quero ver elementos de interatividade nos gráficos SB - mira, zoom (em ambas as direções) e destaque dos valores do cursor.
Isto é, eu faço GraphPlot via EA/indicador, e obtenho tal funcionalidade de uma só vez.
Agora para ser mais claro. A crista (e possivelmente outra interatividade) é uma funcionalidade embutida (necessária) da bíblia de Roman, ou você a herdou?
Sim, eu a herdei.
Quero ver alguns elementos de interatividade nos gráficos SB - retículo, zoom (ambos os lados) e destaque dos valores do cursor.
Vamos ter uma conversa com o principal. Eu também preciso de algo.
- A retroiluminação (se não for necessária, pelo menos a função GetNearY/X) é necessária. É melhor implementar o destaque por herança de qualquer maneira. É diferente em cada uma de nossas representações )
- ainda não precisam da mira em si, porque é o resultado de eventos de gráficos que ainda não têm nada a ver com a biblioteca.
- A obtenção de valores de escala - que são determinados por coordenadas de pixel - é uma obrigação.
- Com o zoomo, é complicado. Como não há barras de rolagem. E para ser honesto, eu não gostaria que eles fossem implementados nesta classe. Neste momento ele só usa CCanvas e não pede por nenhum outro objeto. E isto é muito bom.
Pretendo implementar o zoom independentemente por herança, colocar barras de rolagem e rescalque conforme necessário.