Erros, bugs, perguntas - página 1776
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
Erro de compilação
int f( const T& ) { return sizeof( T ); }
class A {};
void OnStart()
{
const A * const a = new A; //Error: 'T' - unexpected token
f( a );
}
No Metatrader 4 Ajuda sobre o indicador iGator()
[in] Источник данных, идентификатор одной из линий индикатора. Mожет быть любой из следующих величин:
MODE_GATORJAW - синяя линия (линия челюсти аллигатора),
MODE_GATORTEETH - красная линия (линия зубов аллигатора),
MODE_GATORLIPS - зеленая линия (линия губ аллигатора).
e abaixo é um exemplo
double diff=iGator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_UPPER,1);
Fonte de dados MODE_UPPER, compreendo que há um erro na ajuda
Erro de compilação (ou melhor, nenhuma mensagem de erro)
A() { ::ArrayResize( i1, 1 ); }
int i1[ ];
int i2[1];
void f1() const { i1[0] = 0; } //нет сообщения ошибки
void f2() const { i2[0] = 0; } //Error: 'i2' - member of the constant object cannot be modified
};
Encontrei dois erros ao processar o evento de clique do botão do rato.
1. manipulação do evento de clique da roda do rato em OnChartEvent(). A ideia é que a função gera o evento (id == CHARTEVENT_MOUSE_MOVE) quando o botão esquerdo do rato é clicado (com e sem segurar), o botão direito do rato (com e sem segurar), mas se a roda for clicada, o evento será gerado apenas quando a roda for segurada. Ou seja, se premir apenas a tecla do meio e a libertar imediatamente, o evento não será gerado!
2. Após processar o botão esquerdo do rato premir (sparam == "1") o evento sparam == "0" será gerado. Depois de clicar no botão direito do rato (sparam == "2"), por alguma razão o evento sparam == "0" não é gerado. Não deveriam todos os botões do rato ser manuseados da mesma maneira? Estou em silêncio quanto a clicar na roda, porque, como disse no ponto 1 - nenhum evento é gerado quando a roda é clicada.
Código de verificação:
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
return(rates_total);
}
//+------------------------------------------------------------------+
//| Обработка события графика |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
switch(id)
{
case CHARTEVENT_MOUSE_MOVE:
FuncMove(lparam,dparam,sparam);
break;
}
}
//+------------------------------------------------------------------+
//| Функция обработки события перемещения мыши |
//+------------------------------------------------------------------+
void FuncMove(const long lparam,// Х координата
const double dparam,// Y координата
const string sparam // Строковое значение статуса кнопки
)
{
Print(__FUNCTION__,": sparam = "+sparam);
}
//+------------------------------------------------------------------+
//| Функция деинициализации индикатора |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- Отписываемся от события передвижения мыши
ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,false);
}
//+------------------------------------------------------------------+
Erro de compilação (ou melhor, nenhuma mensagem de erro)
A() { ::ArrayResize( i1, 1 ); }
int i1[ ];
int i2[1];
void f1() const { i1[0] = 0; } //нет сообщения ошибки
void f2() const { i2[0] = 0; } //Error: 'i2' - member of the constant object cannot be modified
};
na função f2, o estado do objecto A muda, porque a matriz A::i2 não é dinâmica - todos os seus elementos pertencem ao objecto A
Erro de compilação
class B {
int A() { return 0; }
void f( int ) {}
void g() { f(A()); } //Error: 'A' - invalid cast operation
};
Dratuti. Pergunta: como enviar uma mensagem a um utilizador com o qual ainda não correspondi em navegadores móveis (andróide, maçã)? Já procurei em vários dispositivos diferentes - em lado nenhum existe um botão "enviar uma mensagem", bem como "adicionar a outros". A página do utilizador parece algo parecido com isto, sem botões:
Há muito tempo que venho dizendo que, até agora, não disseram nada.
Encontrei dois erros no tratamento de eventos com o botão do rato.
Verificar.
Obrigado, por favor verifique o número da primeira barra visível no gráfico: ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR );
A questão é que se desactivar a rolagem do gráfico e monitorizar a última barra visível, então no momento de uma nova vela o seu número muda por alguma razão, embora o gráfico não se mova! A TF é M1 a fim de poder verificar mais rapidamente. Comece a partir do indicador:
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Подписываемся на событие движения мыши
ChartSetInteger( 0, CHART_EVENT_MOUSE_MOVE, true );
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
return(rates_total);
}
//+------------------------------------------------------------------+
//| Обработка события графика |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
{
switch( id )
{
case CHARTEVENT_MOUSE_MOVE:
Print( __FUNCTION__," "+TimeToString( TimeCurrent(), TIME_DATE|TIME_SECONDS )+": sparam = "+sparam+", ",(int)ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR ));
break;
}
}