Tem de fazerObjectsDeleteAll in OnDeinit - apagar por prefixo(no seu caso, o prefixo é "HLine")
intObjectsDeleteAll(
long chart_id, // идентификатор графикаconststring prefix, // префикс имени объектаint sub_window=-1, // индекс окнаint object_type=-1// тип объекта для удаления
);
intObjectsDeleteAll(
long chart_id, // идентификатор графикаconststring HLine, // префикс имени объектаint sub_window=-1, // индекс окнаint object_type=-1// тип объекта для удаления
);
Além disso, se carregar um indicador no gráfico, a segunda cópia já não funciona - OnInit() = nada é accionado e não se imprime. Mas se eu mudar "Parâmetros de entrada" para outros - funciona
#property indicator_separate_window#property indicator_plots0inputint MASlow = 21; // Период медленной МАinputint MAFast = 8; // Период быстрой МА//+------------------------------------------------------------------+string prog_name,short_name;
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+intOnInit(void)
{
prog_name=MQLInfoString(MQL_PROGRAM_NAME);
short_name="=Set ("+(string)MASlow+"/"+(string)MAFast+")";
IndicatorSetString(INDICATOR_SHORTNAME,short_name);
Print("INIT_SUCCEEDED");return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
//---//--- return value of prev_calculated for next callreturn(rates_total);
}
Além disso, se carregar um indicador no gráfico, a segunda cópia já não funciona - OnInit() = nada é accionado e não se imprime. Mas se eu mudar "Parâmetros de entrada" para outros - funciona
---
O que está errado, este código funciona em mt4.
Talvez seja só porque é demasiado curto? Sem mapeamento, sem buffers... Porquê fazer uma segunda cópia de tal indicador, para que o terminal fique arbitrário...
Além disso, se carregar um indicador no gráfico, a segunda cópia já não funciona - OnInit() = nada é accionado e não se imprime. Mas se eu mudar "Parâmetros de entrada" para outros - funciona
---
O que está errado, este código funciona em mt4.
Também tive um problema com isso, mas construí o indicador, está tudo bem.
falta alguma coisa - provavelmente algum tipo de propriedade, também confrontado com isto, mas aqui esbocei o indicador, está tudo bem
pode comentá-lo para procurar quando deixar de escrever o nome indicador na sub-janela... mas preguiçoso
Os dados são exibidos, mas de onde, se a funçãoOnInit() não tiver funcionado? Atiramos uma cópia na carta e o OnInit() pode ser accionado por acidente, mas se for outra cópia, é só isso, não há sequer uma impressão. Mas se alterarmos os parâmetros de entrada - então funciona.
No OnDeinit deve fazerObjectsDeleteAll- apagar por prefixo (no seu caso o prefixo é "HLine")
Em que linha deve ser escrito "HLine"?
Em que linha deve ser escrito "HLine"?
O que é que não está claro?
Fórum sobre Comércio, Sistemas de Comércio Automatizados e Testes de Estratégia
FAQ de Iniciantes MQL5 MT5 MetaTrader 5
Vladimir Karputov, 2021.09.10 15:53
Tem de fazerObjectsDeleteAll in OnDeinit - apagar por prefixo(no seu caso, o prefixo é "HLine")
O que é que não é exactamente claro?
Aqui já o fiz, ainda não o apagará.
o prefixo contém os nomes das etiquetas gráficas
sabe o que significa prefixo?
o prefixo contém os nomes das etiquetas gráficas
sabe o que significa prefixo?
Eu não conheço MQL de todo.... Pensei em arranjar apenas algumas linhas e mais nada.
Não sei nada sobre MQLs em absoluto.... Pensei em arranjar apenas algumas linhas e mais nada.
o código acima deve ajudar, caso contrário, olhar para o prefixo com que os objectos são criados
Qual é a razão para não mostrar o nome curto na subjanela no canto superior esquerdo?
Além disso, se carregar um indicador no gráfico, a segunda cópia já não funciona - OnInit() = nada é accionado e não se imprime. Mas se eu mudar "Parâmetros de entrada" para outros - funciona
---
O que está errado, em mt4 este código funciona.
Qual é a razão para não mostrar o nome curto na subjanela no canto superior esquerdo?
Além disso, se carregar um indicador no gráfico, a segunda cópia já não funciona - OnInit() = nada é accionado e não se imprime. Mas se eu mudar "Parâmetros de entrada" para outros - funciona
---
O que está errado, este código funciona em mt4.
Talvez seja só porque é demasiado curto? Sem mapeamento, sem buffers... Porquê fazer uma segunda cópia de tal indicador, para que o terminal fique arbitrário...
Qual é a razão para não mostrar o nome curto na subjanela no canto superior esquerdo?
Além disso, se carregar um indicador no gráfico, a segunda cópia já não funciona - OnInit() = nada é accionado e não se imprime. Mas se eu mudar "Parâmetros de entrada" para outros - funciona
---
O que está errado, este código funciona em mt4.
Também tive um problema com isso, mas construí o indicador, está tudo bem.
Posso comentá-lo para saber quando deixar de escrever o nome do indicador na sub-janela ... mas demasiado preguiçoso
falta alguma coisa - provavelmente algum tipo de propriedade, também confrontado com isto, mas aqui esbocei o indicador, está tudo bem
pode comentá-lo para procurar quando deixar de escrever o nome indicador na sub-janela... mas preguiçoso
Os dados são exibidos, mas de onde, se a funçãoOnInit() não tiver funcionado? Atiramos uma cópia na carta e o OnInit() pode ser accionado por acidente, mas se for outra cópia, é só isso, não há sequer uma impressão. Mas se alterarmos os parâmetros de entrada - então funciona.
---
Qual é a solução, porque é que o OnInit não funciona?