where is thew code for the stochastic oscillator
10 Apr 2015, 10:38
where is thew code for the stochastic oscillator?
Replies
benyamin
29 May 2015, 15:42
RE:
lec0456 said:
They used to have it posted in the samples section. Anyway I found the code from when I downloaded it before..
Hey hey
I write it :
using cAlgo.API;
using cAlgo.API.Indicators;
namespace cAlgo
{
[Levels(20, 50, 80)]
[Indicator()]
public class AMIRSTOCHASTIC : Indicator
{
private IndicatorDataSeries _fastK;
private MovingAverage _slowK;
private MovingAverage _averageOnSlowK;
[Parameter("K Periods", DefaultValue = 15, MinValue = 1)]
public int KPeriods { get; set; }
[Parameter("K Slowing", DefaultValue = 3, MinValue = 2)]
public int KSlowing { get; set; }
[Parameter("D Periods", DefaultValue = 3, MinValue = 0)]
public int DPeriods { get; set; }
[Parameter("MA Type", DefaultValue = MovingAverageType.Simple)]
public MovingAverageType MAType { get; set; }
[Output("%D", Color = Colors.Lime, LineStyle = LineStyle.Lines)]
public IndicatorDataSeries PercentD { get; set; }
[Output("%K", Color = Colors.Red)]
public IndicatorDataSeries PercentK { get; set; }
// Added by amir for line !
// [Output("Overbought", Color = Colors.Turquoise)]
// public IndicatorDataSeries overbought { get; set; }
// [Output("Oversold", Color = Colors.Red)]
// public IndicatorDataSeries oversold { get; set; }
// [Output("over30", Color = Colors.Turquoise)]
// public IndicatorDataSeries over30 { get; set; }
[Output("Line34", Color = Colors.White, LineStyle = LineStyle.LinesDots)]
public IndicatorDataSeries Line34 { get; set; }
[Output("Line50", Color = Colors.Gray, LineStyle = LineStyle.LinesDots)]
public IndicatorDataSeries Line50 { get; set; }
[Output("Line66", Color = Colors.White, LineStyle = LineStyle.LinesDots)]
public IndicatorDataSeries Line66 { get; set; }
// [Output("over80", Color = Colors.Red)]
// public Line over80 { get; set; }
protected override void Initialize()
{
_fastK = CreateDataSeries();
_slowK = Indicators.MovingAverage(_fastK, KSlowing, MAType);
_averageOnSlowK = Indicators.MovingAverage(_slowK.Result, DPeriods, MAType);
}
public override void Calculate(int index)
{
Line34[index] = 34;
Line50[index] = 50;
Line66[index] = 66;
_fastK[index] = GetFastKValue(index);
PercentK[index] = _slowK.Result[index];
PercentD[index] = _averageOnSlowK.Result[index];
}
private double GetFastKValue(int index)
{
var lowestLow = MarketSeries.Low.Minimum(KPeriods);
var hightestHigh = MarketSeries.High.Maximum(KPeriods);
var currentClose = MarketSeries.Close[index];
return 100 * (currentClose - lowestLow) / (hightestHigh - lowestLow);
}
}
}
@benyamin

GunArm
15 Apr 2015, 21:38
It's built in, in the "StochasticOscillator" class. If you wanted to modify the code, you would probably need to re-implement it.
@GunArm