Spin
Well-known member
- Joined
- May 22, 2019
- Posts
- 510
- Likes
- 219
Hello world 
For my newest study I need to compare the values of the HMA against other MA's. So I downloaded the HMA code that the friendly MotiveWave-people were so kind to share.
This HMA uses CalculateValues and OnBarUpdate. I then added a 'Calculate' section where I calculate & draw 4 other MA's:
 
	
	
	
		
I cannot seem to get the Calculate and the CalculateValues functions to run at the same time in my study: either I comment the entire CalculateValues section, so Calculate works and my 4 MA's get drawn or I uncomment CalculateValues and only the HMA gets drawn.
In the study log I only see the debug-statement "Hi21=" printed once. So it seems the Calculate function is only run once (or for one bar).
What do I need to change / add to have both the 4 MA's and the HMA drawn ??
All help welcome !
				
			
For my newest study I need to compare the values of the HMA against other MA's. So I downloaded the HMA code that the friendly MotiveWave-people were so kind to share.
This HMA uses CalculateValues and OnBarUpdate. I then added a 'Calculate' section where I calculate & draw 4 other MA's:
		Code:
	
	@Override  
  protected void calculate(int index, DataContext ctx)
          {
      
      debug("Inside calculate " );
          DataSeries series = ctx.getDataSeries();
          int EMA21HiPeriod=getSettings().getInteger(EMA_21_Hi_Period);
          //debug ("testing: Periods =  " + EMA21HiPeriod + " index " + index);
          int EMA21LoPeriod=getSettings().getInteger(EMA_21_Lo_Period);
          int EMA144Period=getSettings().getInteger(EMA_144_Period);
          int EMA544Period=getSettings().getInteger(EMA_544_Period);
                    
          // EMA's
          Double Hi21=series.ma(getSettings().getMAMethod(EMA_21_Hi_Method), index, EMA21HiPeriod, getSettings().getInput(EMA_21_Hi_Input));
          Double Lo21=series.ma(getSettings().getMAMethod(EMA_21_Lo_Method), index, EMA21LoPeriod, getSettings().getInput(EMA_21_Lo_Input));
          Double E144=series.ma(getSettings().getMAMethod(EMA_144_Method), index, EMA144Period, getSettings().getInput(EMA_144_Input));
          Double E544=series.ma(getSettings().getMAMethod(EMA_544_Method), index, EMA544Period, getSettings().getInput(EMA_544_Input));
          //Double HMA=series.ma(getSettings().getMAMethod(HMA_METHOD), index, HMAPeriod, getSettings().getInput(HMA_INPUT));
        
          // 'safety check' to see if values exist already
          if (Hi21 == null) return;
          if (Lo21 == null) return;
          if (E144 == null) return;
          if (E544 == null) return;
        
          
      debug ("Hi21 == " + Hi21);
          
 
      //set values for current bar
          series.setDouble(index, Values.EMA_21_Hi, Hi21);
          series.setDouble(index, Values.EMA_21_Lo, Lo21);
          series.setDouble(index, Values.EMA_144, E144);
          series.setDouble(index, Values.EMA_544, E544);
         
series.setComplete(index);      
    }I cannot seem to get the Calculate and the CalculateValues functions to run at the same time in my study: either I comment the entire CalculateValues section, so Calculate works and my 4 MA's get drawn or I uncomment CalculateValues and only the HMA gets drawn.
In the study log I only see the debug-statement "Hi21=" printed once. So it seems the Calculate function is only run once (or for one bar).
What do I need to change / add to have both the 4 MA's and the HMA drawn ??

All help welcome !
 
				 
 
		 
 
		


 )
)

 
 
		
