how to Set the alarm for the default Ichimoku indicator when the 4 components are equal
how to Set the alarm for the default Ichimoku indicator when the 4 components are equal
14 Apr 2022, 08:40
hi
can you help me ?
i want to set alarm for ichimoku defaul indicator when : 4 Ichimoku components are equal . I want to give me alarm in the live bar ( candle ).
sourse code is below :
usingSystem;
usingcAlgo.API;
usingcAlgo.API.Indicators;
namespacecAlgo.Indicators
{
[Indicator(IsOverlay = true, AccessRights = AccessRights.None)]
publicclassIchimokuKinkoHyo : Indicator
{
[Parameter(DefaultValue = 9)]
publicintperiodFast { get; set; }
[Parameter(DefaultValue = 26)]
publicintperiodMedium { get; set; }
[Parameter(DefaultValue = 52)]
publicintperiodSlow { get; set; }
[Parameter(DefaultValue = 26)]
publicintDisplacementChikou { get; set; }
[Parameter(DefaultValue = 26)]
publicintDisplacementCloud { get; set; }
[Output("TenkanSen", Color = Colors.Red)]
publicIndicatorDataSeries TenkanSen { get; set; }
[Output("Kijunsen", Color = Colors.Blue)]
publicIndicatorDataSeries KijunSen { get; set; }
[Output("ChikouSpan", Color = Colors.DarkViolet)]
publicIndicatorDataSeries ChikouSpan { get; set; }
[Output("SenkouSpanB", Color = Colors.Red, LineStyle=LineStyle.Lines)]
publicIndicatorDataSeries SenkouSpanB { get; set; }
[Output("SenkouSpanA", Color = Colors.Green,LineStyle=LineStyle.Lines)]
publicIndicatorDataSeries SenkouSpanA { get; set; }
doublemaxfast,minfast,maxmedium,minmedium,maxslow,minslow;
publicoverridevoidCalculate(intindex)
{
if((index<periodFast)||(index<periodSlow)){return;}
maxfast = MarketSeries.High[index];
minfast = MarketSeries.Low[index];
maxmedium = MarketSeries.High[index];
minmedium = MarketSeries.Low[index];
maxslow = MarketSeries.High[index];
minslow = MarketSeries.Low[index];
for(inti=0;i<periodFast;i++)
{
if(maxfast< MarketSeries.High[index-i]){maxfast = MarketSeries.High[index-i];}
if(minfast> MarketSeries.Low[index-i]){minfast = MarketSeries.Low[index-i];}
}
for(inti=0;i<periodMedium;i++)
{
if(maxmedium< MarketSeries.High[index-i]){maxmedium = MarketSeries.High[index-i];}
if(minmedium> MarketSeries.Low[index-i]){minmedium = MarketSeries.Low[index-i];}
}
for(inti=0;i<periodSlow;i++)
{
if(maxslow< MarketSeries.High[index-i]){maxslow = MarketSeries.High[index-i];}
if(minslow> MarketSeries.Low[index-i]){minslow = MarketSeries.Low[index-i];}
}
TenkanSen[index] = (maxfast + minfast) /2;
KijunSen[index] = (maxmedium + minmedium) /2;
ChikouSpan[index-DisplacementChikou] = MarketSeries.Close[index];
SenkouSpanA[index+DisplacementCloud] = (TenkanSen[index] + KijunSen[index]) / 2;
SenkouSpanB[index+DisplacementCloud] = (maxslow + minslow) / 2;
}
}
}
