I have developed an indicator that plots swing tops and bottoms on a chart. I call it "SwingIndicator". I would like to pass the results "swing tops and bottoms" to another indicator for further manipulation.
The problem is that a swing top or bottom can only be identified in retrospect. For example if you have a series of up bars, a swing top is only confirmed when a down bar occurs.
Therefore I have to use:
BarsBack1 = CurrentBar-LastUpDayBar;
BarsBack2 = CurrentBar-LastDownDayBar;
tops.Set(BarsBack, High[BarsBack1]);
bottoms.Set(BarsBack, Low[BarsBack2]);
In my second indicator I would like to iterate through my swing tops and bottoms.
I was planning to achieve this with the following code:
public class MyPlot : Indicator
{
private DataSeries myTops;
private DataSeries myBottoms;
protected override void Initialize()
{
myTops = new DataSeries(this);
myBottoms = new DataSeries(this);
// I am exposing two data series objects in SwingIndicator
myTops = SwingIndicator().Tops;
myBottoms = SwingIndicator().Bottoms;
}
protected override void OnBarUpdate()
{
If (High[0] == myTops[0] {do something;}
}
I was hoping that calling SwingIndicator from Initialize() will populate myTops and myBottoms with swing tops/bottoms so I can use them in my new indicator.
For every bar i will know in advance if it is a swing top or bottom and I will be able to act accordingly. Obviousely this is only applicable for historical data and backtesting.
The code does not behave as expected. I would appreciate any suggestions and guidance.
Cheers,
Miha
Comment