A noob question, I know, but how do I sum up indicator values to create a custom indicator (without creating it in a Builder, but just in code)? I naively thought '+' operator would be overloaded, but it doesn't seem to be. 
Something like:
    
    
    
    Something like:
CODE:
ind1 = new EMA(bars.Close,26); ind2 = new EMA(bars.Close,13); PlotIndicator(ind1+ind2, WLColor.FromArgb(255,128,128,128), PlotStyle.Line);
        Rename
    
CODE:
ind2 = EMA.Series(bars.Close,26); ind1 = EMA.Series(bars.Close,13); ind3 = ind1 + ind2; PlotIndicator(ind3, WLColor.FromArgb(255,128,128,128), PlotStyle.Line);
Alternatively, since what you've created is not an indicator you should call PlotTimeSeries on it:
CODE:
PlotTimeSeries(ind1 + ind2, "sum", "sum", WLColor.FromArgb(255, 128, 128, 128), PlotStyle.Line);
QUOTE:
since what you've created is not an indicator
Did you follow that?
So the "+" and "-" operators are overloaded for a TimeSeries, but not an indicator. Since an indicator is also a TimeSeries, C# converts the indicator to a TimeSeries before applying the "+" operator. But the resulting sum is now a TimeSeries, so you need to use PlotTimeSeries (not PlotIndicator) to plot the sum.
Indicators contain additional field variables that help methods like PlotIndicator() set defaults. But once you morph them with a "+" operator, some of those field variables are now undefined, so the result reverts to a simpler TimeSeries without those undefined indicator field variables.
You wouldn't know this unless you studied the internals of the TimeSeries and Indicator class objects, which you will do if you eventually write your own class libraries. Happy computing.
        Thanks all!
    
    
            Your Response
            
            Post
        
        
        
    
            Edit Post
            
        
        
        
    
            Login is required