Carregar o mesmo indicador duas vezes no gráfico

 
Comentários que não se relacionam com "Obter o volume no Painel de Negociação", foram movidos para este tópico.
 
Pessoal, é possível carregar o mesmo indicador duas vezes sendo que ao carregar a primeira vez, ele recebe em um parametro com valor X e ao carregar a segunda vez ele recebe nesse mesmo parâmetro o valor Y. Em determinado momento, ao acontecer um evento eu quero excluir o indicador que foi carregado com o parâmetro cujo valor é o X e um outro evento quero excluir o indicador carregado com o valor Y.  Meu objetivo não é fazer dois indicadores. Na carga do indicador eu já uso a função iCustom e na exclusão eu uso a função ChartIndicatorDelete após varrer os objetos.
 
limamr #Pessoal, é possível carregar o mesmo indicador duas vezes sendo que ao carregar a primeira vez, ele recebe em um parametro com valor X e ao carregar a segunda vez ele recebe nesse mesmo parâmetro o valor Y. Em determinado momento, ao acontecer um evento eu quero excluir o indicador que foi carregado com o parâmetro cujo valor é o X e um outro evento quero excluir o indicador carregado com o valor Y.  Meu objetivo não é fazer dois indicadores. Na carga do indicador eu já uso a função iCustom e na exclusão eu uso a função ChartIndicatorDelete após varrer os objetos.

Não sei se entendi corretamente o problema, mas se entendi, tente o seguinte:

      // Variáveis globais
      int handleX, handleY;
      ulong chart;
      int  window;

      // No OnInit() (ou onde for mais adequado ao seu caso...)
      chart  = ChartID();
      window = 0;

      handleX = iCustom(_Symbol, _Period, "NomeDoIndicador.ex5", /*... parâmetros ...*/, X);
      handleY = iCustom(_Symbol, _Period, "NomeDoIndicador.ex5", /*... parâmetros ...*/, Y);

      // . . .

      // Quando quiser adicionar uma ou outra instância:
      ChartIndicatorAdd(chart, window, handleX);
      ChartIndicatorAdd(chart, window, handleY);

      // . . .

      // Quando quiser deletar o indicador:
      ChartIndicatorDelete(chart, window, "NomeReduzidoDoIndicador");
 

Não sei se entendi corretamente o problema, mas se entendi, tente o seguinte:

Obrigado Vinicius pela ajuda.  Só fiquei com dúvidas quanto a rotina de deletar pois se eu usar o "NomeReduzidoDoIndicador" não vai deletar as duas instâncias do "NomeDoIndicador"?
Tem como passar para a rotina de deleção o handleX ou handleY para que a deleção seja direcionada ao indicador?
 
limamr #Obrigado Vinicius pela ajuda.  Só fiquei com dúvidas quanto a rotina de deletar pois se eu usar o "NomeReduzidoDoIndicador" não vai deletar as duas instâncias do "NomeDoIndicador"?
Tem como passar para a rotina de deleção o handleX ou handleY para que a deleção seja direcionada ao indicador?

OK, eu considerei que sempre estaria carregada uma ou outra instância (não as duas simultaneamente)... Nesse caso, se você tiver o código do indicador, você pode salvar o SHORTNAME com os valores dos parâmetros, como é sugerido e exemplificado aqui na documentação... Você tem o código do indicador? Isso resolve? Se não, a gente busca outra forma.

 
limamr #:
Obrigado Vinicius pela ajuda.  Só fiquei com dúvidas quanto a rotina de deletar pois se eu usar o "NomeReduzidoDoIndicador" não vai deletar as duas instâncias do "NomeDoIndicador"?
Tem como passar para a rotina de deleção o handleX ou handleY para que a deleção seja direcionada ao indicador?
Tu também pode controlar a subjanela para deletar todos de uma subjanela. Normalmente os indicadores são colocados em subjanelas que seria o segundo parametro da funcao de delete.