can't figure out how to do this basic stuff. What I'm trying to do is compose custom function with the standard functions (or other functions).
Below is example just illustrating what I'm trying to. I would expect it to work like this but apparently no. What is the missing step?
Indicator composing custom function with ema
Code: Select all
using System;
using System.Drawing;
using System.Linq;
using PowerLanguage.Function;
namespace PowerLanguage.Indicator{
public class Function_Composition_Test : IndicatorObject {
public Function_Composition_Test(object _ctx):base(_ctx){}
private IPlotObject plot1;
private FunctionCompositionTest functionCompositionTest;
private XAverage emaOfTest;
protected override void Create() {
plot1 = AddPlot(new PlotAttributes("", EPlotShapes.Line, Color.Red));
functionCompositionTest = new FunctionCompositionTest(this);
emaOfTest = new XAverage(functionCompositionTest);
}
protected override void StartCalc() {
emaOfTest.Length = 20;
}
protected override void CalcBar(){
// indicator logic
plot1.Set(emaOfTest[0]);
}
}
}
Code: Select all
using System;
using System.Drawing;
using System.Linq;
namespace PowerLanguage
{
namespace Function
{
public sealed class FunctionCompositionTest : FunctionSeries<System.Double>
{
public FunctionCompositionTest(CStudyControl _master) : base(_master) { }
public FunctionCompositionTest(CStudyControl _master, int _ds) : base(_master, _ds) { }
private int counter = 0;
protected override void Create()
{
this.counter = 0;
}
protected override void StartCalc()
{
}
protected override System.Double CalcBar()
{
this.counter++;
return (double) this.counter % 5;
}
}
}
}