Boa tarde a todos,
Pessoal, estou querendo excluir meu próprio indicador através de um botão que coloquei no gráfico. A ideia é fazer essa operação de forma semelhante à remoção de um Script (aquele ícone no canto superior direito da tela), ou seja, sem ter que abrir a janela de indicadores (Ctrl+I).
A função ExpertRemove() não funcionou. Utilizei OnDeinit(REASON_REMOVE) e deletou todos meus objetos (está programada para isso), mas o indicador continuou na janela de indicadores.
É possível fazer essa exclusão via código?
Abraços
García
Olá,
veja se esse código atende!
void OnDeinit(const int reason) { long total_windows; if(ChartGetInteger(0,CHART_WINDOWS_TOTAL,0,total_windows)) for(int i=0;i<total_windows;i++) { long total_indicators=ChartIndicatorsTotal(0,i); for(int j=0;j<total_indicators;j++) { ChartIndicatorDelete(0,i,ChartIndicatorName(0,i,0)); } } }
Olá,
veja se esse código atende!
Perfect!
Contudo, esse código eliminaria todos os indicadores.
Já tinha visto a função ChartIndicatorDelete(), mas estava evitando por causa do "nome do indicador". Resolvi colocando em OnInit a função IndicatorSetString(INDICATOR_SHORTNAME,"meunome") e depois, ao clicar no botão: ChartIndicatorDelete(0, 0, "meunome").
Resolvido !
Abraços
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Boa tarde a todos,
Pessoal, estou querendo excluir meu próprio indicador através de um botão que coloquei no gráfico. A ideia é fazer essa operação de forma semelhante à remoção de um Script (aquele ícone no canto superior direito da tela), ou seja, sem ter que abrir a janela de indicadores (Ctrl+I).
A função ExpertRemove() não funcionou. Utilizei OnDeinit(REASON_REMOVE) e deletou todos meus objetos (está programada para isso), mas o indicador continuou na janela de indicadores.
É possível fazer essa exclusão via código?
Abraços
García