Como somar e subtrair dois Handle?

 

Olá pessoal.

Alguém saberia informar como faço para realizar soma de Handle?

Estou tentando fazer do modo clássico, porém o resultado não é o esperado.


   avgHandle = iMA(Symbol(), Period(), 20, 0, MODE_EMA, PRICE_OPEN);

   devHandle = iStdDev(Symbol(), Period(), avgHandle, 0, MODE_EMA, PRICE_OPEN);

   

   smaxHandle = avgHandle + devHandle;

   sminHandle = avgHandle - devHandle;


Grato pela atenção

 

Bom Dia.

Para conseguir os valores primeiro você tem que copiar os buffers do handle para uma variável.

Segue exemplo para o iMA. Adapte conforme os seus períodos.

   double IMAArray[];
   
   int IMADEF = iMA(_Symbol,_Period,2,0,MODE_EMA,PRICE_CLOSE);
   ArraySetAsSeries(IMAArray,true);
   CopyBuffer(IMADEF,0,0,1,IMAArray);
         
   double A0 = NormalizeDouble(IMAArray[0],2);      
     
 
Ivan Ronchi:

Bom Dia.

Para conseguir os valores primeiro você tem que copiar os buffers do handle para uma variável.

Segue exemplo para o iMA. Adapte conforme os seus períodos.


Obrigado Ivan pela atenção. 

Fiz assim para fazer a soma e subtração dos dois indicadores

Teria outra forma de resolver?

 

   ArraySetAsSeries(avgArray, true);
   ArraySetAsSeries(devArray, true);

   CopyBuffer(avgHandle, 0, 0, 5, avgArray);

   CopyBuffer(devHandle, 0, 0, 5, devArray);

  

   double smaxHandle_0 = avgArray[0] + devArray[0];

   double sminHandle_0 = avgArray[0] - devArray[0];

   double smaxHandle_1 = avgArray[1] + devArray[1];

   double sminHandle_1 = avgArray[1] - devArray[1];
 

Marcelo,

Acho que ficou bom assim.

Razão: