Supertrend Composite Indicator provides the information about the overall net performance of the Supertrend strategy with Nifty 50 stocks. This composite indicator adds the value “1” to the indicator if the any of the stocks are in buy mode and subracts “1” from the indicator if the stock turns to sell mode. And the computed values are plotted in Histogram format.
[wp_ad_camp_5]
Rules
If the Histogram turns green from red then it means bulls are dominating the market
If the Historgram turns Red from green then it means bears are dominating the marekt.
only Change of Colors indicates who is dominating the market. Its not a everyday signal.
So overall this indicator computes and indicates the breath of the Nifty 50 stocks. It shows the net buy or sell signals generated by supertrend on the whole i.e who is more dominant a bull or a bear? For Example The Breath Value of “0” indicates 25 stocks are in Buy mode and 25 Stocks are in sell mode. The Current value of the supertend indicator as per the above chart is 34. 34+8=42 stocks are in buy mode and 8 stocks are in sell mode currently resulting in the breadth value of 34.
This indicator is currently added to EODSignals (Nifty EOD Charts) and will be autoupdated everyday after 6.00PM.
Please provide the afl file for super trend breath
thank you
@Santhanam
Code is not available for public download as iam using custom version of supertrend in my website. Logic is very simple as explained in the post. Just tweak the code of Supertrend AFL code. Refer here for how to make such indicators http://www.amibroker.org/userkb/2007/11/12/new-highsnew-lows-indicator-v3/
Hi Raj,
Good Job. A small suggestion. Instead of giving a value of 1 to each stock, consider giving the actual weightage of each stock in nifty. For eg., Infy has a weightage of 9.5 versus 0.28 of Rpower… So i think this will give more clear picture…
Thanks
Vinod D
super trend giving good signal but scaling has some problem. actual size of candle is not displaying and it is contracted in small area . how to configure properly
Can you assist me on the “tweaked”/modified parameters of SuperTrend to make it useful for EOD?
Pls provide ur custom version of supertrend………….. I’m not able to make using the link.
@Kalyan
I havent faced any such issues. May be the chart you are using could be due to the target lines which affects the scaling.
@Dexter and Samartha
The Custom version of supertrend is not opensource and not even for sale as some people are misusing the free stuff.
[email protected]……….my mail id. pls provide it to my mail……. may this is the afl which I needed …. we had some discussion with other afl’s earlier., may for this type I want. I knew tht type ppl r ther. I hv super trend but hw to add second part.
best time frame for supertrend indicator
thnks
RAJANDRAN SIR
For Intraday 5 min is the best timeframe
@Samartha
Code is not for public download.
K… sir. hw can i make tht Super Trend Breadth the below chart……..pls assist me in this over to mail atleast.
Ok Sir……. Pls guide me atleast how make tht below chart Super Trend Breadth……..atleast to my mail if not here. I tried lot with tht given link……but I’m nt able too.
I am getting an error and blank screen after logging for super trend live at the market hours.Pl. help
@hrishikes
Which version of Amibroker you are using? And where you had downloaded as my site has multiple version of supertrend it is recommended to download ” Non Repainting Supertrend optimized version” if you are using 5.4 or above version. For lower version it is advisable to download older version of supertrend
Respected sir Sir,
attatched AMI afl NAME is HURST BAND, can we add BUY / SELL signal in this afl ?
[B]Buy — When price above the upper band or line
Sell — When price below the lower band or line[/B]
[B][COLOR=”Red”]1st code……both works good. Enjoy ur trade.[/COLOR][/B]
_SECTION_BEGIN(“SAM”);
/*Gann HiLo*/
per=Optimize(“Per”,Param(“Per”,42,1,55,1),1,55,1);
Hld = IIf(C > Ref(MA(H, per), -1), 1, IIf(C Hilo, colorCustom9, colorCustom5);
Plot(C,””,1,128);
Plot(Hilo, _DEFAULT_NAME(), Trigger, styleStaircase);
SetPositionSize( 50, spsShares );
Buy=Cross(C,Hilo);
Sell=Cross(Hilo,C);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorGreen, 0,L, Offset=-25);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorRed, 0,H, Offset=-25);
_SECTION_END();
_SECTION_BEGIN(“SAM”);
P = ParamField(“Price field”,-1);
Periods = Param(“Periods”, 19, 2, 300, 1 );
Width = Param(“Width”, 2.1, 0, 10, 0.05 );
Color = ParamColor(“Color”, colorBlue );
Style = ParamStyle(“Style”, styleLine | styleNoLabel);
CenterLine = MA( P, Periods );
KTop = CenterLine + Width * ATR( Periods );
KBot = CenterLine – Width * ATR( Periods );
Plot( KTop, “KBTop” + _PARAM_VALUES(), Color, Style );
Plot( KBot, “KBBot” + _PARAM_VALUES(), Color, Style );
_SECTION_END();
[B][COLOR=”Red”]And my second code
[/COLOR][/B]
_SECTION_BEGIN(“Background_Setting”);
SetChartBkGradientFill( ParamColor(“BgTop”, colorWhite),
ParamColor(“BgBottom”, colorAqua),ParamColor(“titleblock”,colorYellow ));
_SECTION_BEGIN(“SAM”);
//——————————————————————————
// Both indicator and exploration code for combination of fibonacci
// retracements identified in “Fibonacci for the Active Trader” by Derrik
// Hobbes. Determines pivots, draws retracements, and explores for them.
//——————————————————————————
// **************************
// BEING EXPLORATION CODE
// **************************
// — what will be our lookback range for the hh and ll?
nBars = Param(“Number of bars”, 20, 5, 40);
bTrace = Param(“Include trace output”, 1, 0, 1);
nNoPivsInSetup = Param(“No. Pivs in Setup”, 4, 3, 4, 1);
bShowTCZ = Param(“Show TCZ”, 1, 0, 1);
nMinBarsBtwPivs = Param(“Min. number of bars btw. pivots”, 1, 1, 10, 1);
nMinPctBtwPivs = Param(“Min. percent diff. btw. pivots”, .05, .04, .2, .01);
bLastBarCanBePiv = Param(“Last bar can be a pivot”, 1, 0, 1);
retrcTolerance = .01;
tczTolerance = .005;
nNumBarsToScan = 120;
// — added from exploration version 20040204
nExploreBarIdx = 0;
nExploreDate = 0;
nCurDateNum = 0;
DN = DateNum();
DT = DateTime();
// — key exploration variables
bTCZLong = False;
bTCZShort = False;
nAnchorPivIdx = 0;
ADX8 = ADX(8);
// 1 – INDICATOR, 2 – COMMENTARY, 3 – SCAN,
// 4 – EXPLORATION, 5 – BACKTEST / Optimize
if(Status(“action”)==1) {
bDraw = True;
bUseLastVis = Param(“Use last visible bar”, 1, 0, 1);
} else {
bDraw = False;
bUseLastVis = False;
bTrace = False;
nExploreDate = Status(“rangetodate”);
for (i=LastValue(BarIndex());i>=0;i–) {
nCurDateNum = DN[i];
if (nCurDateNum == nExploreDate) {
nExploreBarIdx = i;
}
}
// — if(Status(“action”)==1…
}
GraphXSpace=7;
// — basic candle chart
// — if this appears inside if block, strange
// drawing results!
PlotOHLC(Open, High, Low, Close,
“BIdx = ” + BarIndex() +
”
” + “O = ” + O + ”
“+”H = “+ H + ”
“+”L = ” + L
+ ”
“+”C “,
colorBlack, styleCandle);
if (bDraw) {
Plot(MA(C, 15), “15 bar MA”, colorRed,
styleLine+styleNoRescale+styleNoLabel);
Plot(MA(C, 55), “55 bar MA”, colorBlack,
styleLine+styleNoRescale+styleNoLabel);
//Plot(MA(C, 233), “233 bar MA”, colorDarkRed,
// styleLine+styleNoRescale+styleNoLabel);
}
// — Create 0-initialized arrays the size of barcount
aHPivs = H – H;
aLPivs = L – L;
aHPivHighs = H – H;
aLPivLows = L – L;
aHPivIdxs = H – H;
aLPivIdxs = L – L;
aAddedHPivs = H – H;
aAddedLPivs = L – L;
aLegVol = H – H;
aRetrcVol = H – H;
nHPivs = 0;
nLPivs = 0;
lastHPIdx = 0;
lastLPIdx = 0;
lastHPH = 0;
lastLPL = 0;
curPivBarIdx = 0;
// — looking back from the current bar, how many bars
// back were the hhv and llv values of the previous
// n bars, etc.?
aHHVBars = HHVBars(H, nBars);
aLLVBars = LLVBars(L, nBars);
aHHV = HHV(H, nBars);
aLLV = LLV(L, nBars);
// — Initialize value of curTrend
nLastVisBar = LastValue(
Highest(IIf(Status(“barvisible”), BarIndex(), 0)));
curBar = IIf(nlastVisBar > 0 AND bUseLastVis, nlastVisBar,
IIf(Status(“action”)==4 AND nExploreBarIdx > 0, nExploreBarIdx,
LastValue(BarIndex())));
curTrend = “”;
if (aLLVBars[curBar] = nNumBarsToScan) {
for (i=0; i 0 AND bUseLastVis,
nlastVisBar-i,
IIf(Status(“action”)==4 AND nExploreBarIdx > 0,
nExploreBarIdx-i,
LastValue(BarIndex())-i));
// — Have we identified a pivot? If trend is down…
if (aLLVBars[curBar] 0 AND bUseLastVis,
nlastVisBar,
IIf(Status(“action”)==4 AND nExploreBarIdx > 0,
nExploreBarIdx,
LastValue(BarIndex()))
);
// — Make sure I found at least two of each above.
if (nHPivs >= 2 AND nLPivs >= 2) {
lastLPIdx = aLPivIdxs[0];
lastLPL = aLPivLows[0];
lastHPIdx = aHPivIdxs[0];
lastHPH = aHPivHighs[0];
nLastHOrLPivIdx = Max(lastLPIdx, lastHPIdx);
nAddPivsRng = curBar – nLastHOrLPivIdx;
aLLVAfterLastPiv = LLV(L, nAddPivsRng);
nLLVAfterLastPiv = aLLVAfterLastPiv[curBar];
aLLVIdxAfterLastPiv = LLVBars(L, nAddPivsRng);
nLLVIdxAfterLastPiv = curBar – aLLVIdxAfterLastPiv[curBar];
aHHVAfterLastPiv = HHV(H, nAddPivsRng);
nHHVAfterLastPiv = aHHVAfterLastPiv[curBar];
aHHVIdxAfterLastPiv = HHVBars(H, nAddPivsRng);
nHHVIdxAfterLastPiv = curBar – aHHVIdxAfterLastPiv[curBar];
// — Later want to add last high pivot only if
// not in buy mode from last and still in trade
/*
Note – I’m only interested in adding pivots if I’m in
a higher-highs or lower-lows scenario
*/
// — OK, let’s start where the last high pivot occurs after the
// last Low pivot
if (lastHPIdx > lastLPIdx) {
/* There are at least two possibilities here. One is that
the previous high was higher, indicating that this is a
possible short retracement or one in the making.
The other is that the previous high was lower, indicating
that this is a possible long retracement in the working.
However, both depend on opposing pivots. E.g., if I find
higher highs, what if I have lower lows?
If the highs are descending, then I can consider:
– a lower low, and leave it at that
– a higher high and higher low
– a lower low and another lower high
*/
if (aHPivHighs[0] < aHPivHighs[1]) {
if (nLLVAfterLastPiv = nMinBarsBtwPivs
AND nLLVIdxAfterLastPiv != curBar ) {
// — OK, we’ll add this as a pivot.
// Mark it for plotting…
aLPivs[nLLVIdxAfterLastPiv] = 1;
aAddedLPivs[nLLVIdxAfterLastPiv] = 1;
// …and then rearrange elements in the
// pivot information arrays
for (j=0; j aLPivLows[0] AND
(nLLVIdxAfterLastPiv – lastHPIdx – 1) >= nMinBarsBtwPivs
AND nLLVIdxAfterLastPiv != curBar ) {
// — OK, we’ll add this as a pivot.
// Mark it for plotting…
aLPivs[nLLVIdxAfterLastPiv] = 1;
aAddedLPivs[nLLVIdxAfterLastPiv] = 1;
// …and then rearrange elements in the
// pivot information arrays
for (j=0; j<nLPivs; j++) {
aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];
aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];
}
aLPivLows[0] = nLLVAfterLastPiv;
aLPivIdxs[0] = nLLVIdxAfterLastPiv;
nLPivs++;
// — Test whether to add piv given last piv is high
// AND we have lower highs
}
// — The last piv is a high and we have higher highs
// OR lower highs
}
/* ****************************************************************
Still finding missed pivot(s). Here, the last piv is a low piv.
**************************************************************** */
} else {
// — First case, lower highs
if (aHPivHighs[0] < aHPivHighs[1]) {
if (nHHVAfterLastPiv = nMinBarsBtwPivs
AND nHHVIdxAfterLastPiv != curBar ) {
// — OK, we’ll add this as a pivot.
// Mark that for plotting
aHPivs[nHHVIdxAfterLastPiv] = 1;
aAddedHPivs[nHHVIdxAfterLastPiv] = 1;
// …and then rearrange elements in the
// pivot information arrays
for (j=0; j aHPivHighs[0] AND
(nHHVIdxAfterLastPiv – lastLPIdx – 1) >= nMinBarsBtwPivs
AND nHHVIdxAfterLastPiv != curBar ) {
// — OK, we’ll add this as a pivot.
// Mark it for plotting…
aHPivs[nHHVIdxAfterLastPiv] = 1;
aAddedHPivs[nHHVIdxAfterLastPiv] = 1;
// …and then rearrange elements in the
// pivot information arrays
for (j=0; j= 2 AND
nLPivs >=2 AND
aHPivHighs[0] > aHPivHighs[1] AND
aLPivLows[0] > aLPivLows[1]) {
tcz500 =
(aHPivHighs[0] –
(.5 * (aHPivHighs[0] – aLPivLows[1])));
tcz618 =
(aHPivHighs[0] –
(.618 * (aHPivHighs[0] – aLPivLows[1])));
tcz786 =
(aHPivHighs[0] –
(.786 * (aHPivHighs[0] – aLPivLows[0])));
retrcRng = curBar – aHPivIdxs[0];
aRetrcPrc = LLV(L, retrcRng);
retrcPrc = aRetrcPrc[curBar];
aRetrcPrcBars = LLVBars(L, retrcRng);
retrcBarIdx = curBar – aRetrcPrcBars[curBar];
retrcClose = aRetrcClose[retrcBarIdx];
// — bTCZLong setup?
bTCZLong = (
// — Are retracement levels arranged in
// tcz order?
tcz500 >= (tcz786 * (1 – tczTolerance))
AND
// .681 is below .786 for long setups
tcz618 = low of tcz range
// and low = ((1 – retrcTolerance) * tcz618)
AND
retrcPrc = 2 AND nLPivs >=2
AND aHPivHighs[0] < aHPivHighs[1]
AND aLPivLows[0] < aLPivLows[1]) {
tcz500 =
(aHPivHighs[1] –
(.5 * (aHPivHighs[1] – aLPivLows[0])));
tcz618 =
(aHPivHighs[0] –
(.618 * (aHPivHighs[1] – aLPivLows[0])));
tcz786 =
(aHPivHighs[0] –
(.786 * (aHPivHighs[0] – aLPivLows[0])));
retrcRng = curBar – aLPivIdxs[0];
aRetrcPrc = HHV(H, retrcRng);
retrcPrc = aRetrcPrc[curBar];
aRetrcPrcBars = HHVBars(H, retrcRng);
retrcBarIdx = curBar – aRetrcPrcBars[curBar];
retrcClose = aRetrcClose[retrcBarIdx];
bTCZShort = (
// — Are retracement levels arranged in
// tcz order?
// .500 is below .786 for short setups
tcz500 = (tcz786 * (1 – tczTolerance))
AND
// — Is the close = low of tcz range
retrcClose = ((1 – retrcTolerance) * tcz500)
);
// — Risk would be top of zone – low of signal bar
//risk = 0;
}
Filter = (bTCZShort OR bTCZLong);
AddColumn(C, “Close”);
AddColumn(IIf(bTCZLong, 76, 83), “L/S”, formatChar);
// **************************
// END EXPLORATION CODE
// **************************
// **************************
// BEGIN INDICATOR CODE
// **************************
// — what will be our lookback range for the hh and ll?
nBars = Param(“Number of bars”, 20, 5, 40);
bTrace = Param(“Include trace output”, 1, 0, 1);
nNoPivsInSetup = Param(“No. Pivs in Setup”, 4, 3, 4, 1);
bShowTCZ = Param(“Show TCZ”, 1, 0, 1);
nMinBarsBtwPivs = Param(“Min. number of bars btw. pivots”, 1, 1, 10, 1);
nMinPctBtwPivs = Param(“Min. percent diff. btw. pivots”, .05, .04, .2, .01);
bLastBarCanBePiv = Param(“Last bar can be a pivot”, 1, 0, 1);
retrcTolerance = .01;
tczTolerance = .005;
nNumBarsToScan = 120;
// — added from exploration version 20040204
nExploreBarIdx = 0;
nExploreDate = 0;
nCurDateNum = 0;
DN = DateNum();
DT = DateTime();
// — key exploration variables
bTCZLong = False;
bTCZShort = False;
nAnchorPivIdx = 0;
ADX8 = ADX(8);
// 1 – INDICATOR, 2 – COMMENTARY, 3 – SCAN,
// 4 – EXPLORATION, 5 – BACKTEST / Optimize
if(Status(“action”)==1) {
bDraw = True;
bUseLastVis = Param(“Use last visible bar”, 1, 0, 1);
} else {
bDraw = False;
bUseLastVis = False;
bTrace = False;
nExploreDate = Status(“rangetodate”);
for (i=LastValue(BarIndex());i>=0;i–) {
nCurDateNum = DN[i];
if (nCurDateNum == nExploreDate) {
nExploreBarIdx = i;
}
}
// — if(Status(“action”)==1…
}
GraphXSpace=7;
// — basic candle chart
// — if this appears inside if block, strange
// drawing results!
PlotOHLC(Open, High, Low, Close,
“BIdx = ” + BarIndex() +
”
” + “O = ” + O + ”
“+”H = “+ H + ”
“+”L = ” + L
+ ”
“+”C “,
colorBlack, styleCandle);
if (bDraw) {
Plot(MA(C, 15), “15 bar MA”, colorRed,
styleLine+styleNoRescale+styleNoLabel);
Plot(MA(C, 55), “55 bar MA”, colorBlack,
styleLine+styleNoRescale+styleNoLabel);
//Plot(MA(C, 233), “233 bar MA”, colorDarkRed,
// styleLine+styleNoRescale+styleNoLabel);
}
// — Create 0-initialized arrays the size of barcount
aHPivs = H – H;
aLPivs = L – L;
aHPivHighs = H – H;
aLPivLows = L – L;
aHPivIdxs = H – H;
aLPivIdxs = L – L;
aAddedHPivs = H – H;
aAddedLPivs = L – L;
aLegVol = H – H;
aRetrcVol = H – H;
nHPivs = 0;
nLPivs = 0;
lastHPIdx = 0;
lastLPIdx = 0;
lastHPH = 0;
lastLPL = 0;
curPivBarIdx = 0;
// — looking back from the current bar, how many bars
// back were the hhv and llv values of the previous
// n bars, etc.?
aHHVBars = HHVBars(H, nBars);
aLLVBars = LLVBars(L, nBars);
aHHV = HHV(H, nBars);
aLLV = LLV(L, nBars);
// — Initialize value of curTrend
nLastVisBar = LastValue(
Highest(IIf(Status(“barvisible”), BarIndex(), 0)));
curBar = IIf(nlastVisBar > 0 AND bUseLastVis, nlastVisBar,
IIf(Status(“action”)==4 AND nExploreBarIdx > 0, nExploreBarIdx,
LastValue(BarIndex())));
curTrend = “”;
if (aLLVBars[curBar] = nNumBarsToScan) {
for (i=0; i 0 AND bUseLastVis,
nlastVisBar-i,
IIf(Status(“action”)==4 AND nExploreBarIdx > 0,
nExploreBarIdx-i,
LastValue(BarIndex())-i));
// — Have we identified a pivot? If trend is down…
if (aLLVBars[curBar] 0 AND bUseLastVis,
nlastVisBar,
IIf(Status(“action”)==4 AND nExploreBarIdx > 0,
nExploreBarIdx,
LastValue(BarIndex()))
);
// — Make sure I found at least two of each above.
if (nHPivs >= 2 AND nLPivs >= 2) {
lastLPIdx = aLPivIdxs[0];
lastLPL = aLPivLows[0];
lastHPIdx = aHPivIdxs[0];
lastHPH = aHPivHighs[0];
nLastHOrLPivIdx = Max(lastLPIdx, lastHPIdx);
nAddPivsRng = curBar – nLastHOrLPivIdx;
aLLVAfterLastPiv = LLV(L, nAddPivsRng);
nLLVAfterLastPiv = aLLVAfterLastPiv[curBar];
aLLVIdxAfterLastPiv = LLVBars(L, nAddPivsRng);
nLLVIdxAfterLastPiv = curBar – aLLVIdxAfterLastPiv[curBar];
aHHVAfterLastPiv = HHV(H, nAddPivsRng);
nHHVAfterLastPiv = aHHVAfterLastPiv[curBar];
aHHVIdxAfterLastPiv = HHVBars(H, nAddPivsRng);
nHHVIdxAfterLastPiv = curBar – aHHVIdxAfterLastPiv[curBar];
// — Later want to add last high pivot only if
// not in buy mode from last and still in trade
/*
Note – I’m only interested in adding pivots if I’m in
a higher-highs or lower-lows scenario
*/
// — OK, let’s start where the last high pivot occurs after the
// last Low pivot
if (lastHPIdx > lastLPIdx) {
/* There are at least two possibilities here. One is that
the previous high was higher, indicating that this is a
possible short retracement or one in the making.
The other is that the previous high was lower, indicating
that this is a possible long retracement in the working.
However, both depend on opposing pivots. E.g., if I find
higher highs, what if I have lower lows?
If the highs are descending, then I can consider:
– a lower low, and leave it at that
– a higher high and higher low
– a lower low and another lower high
*/
if (aHPivHighs[0] < aHPivHighs[1]) {
if (nLLVAfterLastPiv = nMinBarsBtwPivs
AND nLLVIdxAfterLastPiv != curBar ) {
// — OK, we’ll add this as a pivot.
// Mark it for plotting…
aLPivs[nLLVIdxAfterLastPiv] = 1;
aAddedLPivs[nLLVIdxAfterLastPiv] = 1;
// …and then rearrange elements in the
// pivot information arrays
for (j=0; j aLPivLows[0] AND
(nLLVIdxAfterLastPiv – lastHPIdx – 1) >= nMinBarsBtwPivs
AND nLLVIdxAfterLastPiv != curBar ) {
// — OK, we’ll add this as a pivot.
// Mark it for plotting…
aLPivs[nLLVIdxAfterLastPiv] = 1;
aAddedLPivs[nLLVIdxAfterLastPiv] = 1;
// …and then rearrange elements in the
// pivot information arrays
for (j=0; j<nLPivs; j++) {
aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];
aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];
}
aLPivLows[0] = nLLVAfterLastPiv;
aLPivIdxs[0] = nLLVIdxAfterLastPiv;
nLPivs++;
// — Test whether to add piv given last piv is high
// AND we have lower highs
}
// — The last piv is a high and we have higher highs
// OR lower highs
}
/* ****************************************************************
Still finding missed pivot(s). Here, the last piv is a low piv.
**************************************************************** */
} else {
// — First case, lower highs
if (aHPivHighs[0] < aHPivHighs[1]) {
if (nHHVAfterLastPiv = nMinBarsBtwPivs
AND nHHVIdxAfterLastPiv != curBar ) {
// — OK, we’ll add this as a pivot.
// Mark that for plotting
aHPivs[nHHVIdxAfterLastPiv] = 1;
aAddedHPivs[nHHVIdxAfterLastPiv] = 1;
// …and then rearrange elements in the
// pivot information arrays
for (j=0; j aHPivHighs[0] AND
(nHHVIdxAfterLastPiv – lastLPIdx – 1) >= nMinBarsBtwPivs
AND nHHVIdxAfterLastPiv != curBar ) {
// — OK, we’ll add this as a pivot.
// Mark it for plotting…
aHPivs[nHHVIdxAfterLastPiv] = 1;
aAddedHPivs[nHHVIdxAfterLastPiv] = 1;
// …and then rearrange elements in the
// pivot information arrays
for (j=0; j= 2 AND
nLPivs >=2 AND
aHPivHighs[0] > aHPivHighs[1] AND
aLPivLows[0] > aLPivLows[1]) {
tcz500 =
(aHPivHighs[0] –
(.5 * (aHPivHighs[0] – aLPivLows[1])));
tcz618 =
(aHPivHighs[0] –
(.618 * (aHPivHighs[0] – aLPivLows[1])));
tcz786 =
(aHPivHighs[0] –
(.786 * (aHPivHighs[0] – aLPivLows[0])));
retrcRng = curBar – aHPivIdxs[0];
aRetrcPrc = LLV(L, retrcRng);
aRetrcPrcBars = LLVBars(L, retrcRng);
retrcPrc = aRetrcPrc[curBar];
retrcBarIdx = curBar – aRetrcPrcBars[curBar];
retrcClose = aRetrcClose[retrcBarIdx];
// — bTCZLong setup?
bTCZLong = (
// — Are retracement levels arranged in
// tcz order?
// .500 is above .786 for long setups
tcz500 >= (tcz786 * (1 – tczTolerance))
AND
// .681 is below .786 for long setups
tcz618 = low of tcz range
// and low = ((1 – retrcTolerance) * tcz618)
AND
retrcPrc = 2 AND nLPivs >=2
AND aHPivHighs[0] < aHPivHighs[1]
AND aLPivLows[0] < aLPivLows[1]) {
tcz500 =
(aHPivHighs[1] –
(.5 * (aHPivHighs[1] – aLPivLows[0])));
tcz618 =
(aHPivHighs[0] –
(.618 * (aHPivHighs[1] – aLPivLows[0])));
tcz786 =
(aHPivHighs[0] –
(.786 * (aHPivHighs[0] – aLPivLows[0])));
retrcRng = curBar – aLPivIdxs[0];
aRetrcPrc = HHV(H, retrcRng);
retrcPrc = aRetrcPrc[curBar];
aRetrcPrcBars = HHVBars(H, retrcRng);
retrcBarIdx = curBar – aRetrcPrcBars[curBar];
retrcClose = aRetrcClose[retrcBarIdx];
bTCZShort = (
// — Are retracement levels arranged in
// tcz order?
// .500 is below .786 for short setups
tcz500 = (tcz786 * (1 – tczTolerance))
AND
// — Is the close = low of tcz range
retrcClose = ((1 – retrcTolerance) * tcz500)
);
// — Risk would be top of zone – low of signal bar
//risk = 0;
}
// — Show zone if present
if (bTCZShort OR bTCZLong) {
// — Be prepared to see symmetry
if (bTCZShort) {
if (aLPivIdxs[0] > aHPivIdxs[0]) {
// — Valuable, useful symmetry information
nRtrc0Pts = aHPivHighs[0] – aLPivLows[1];
nRtrc0Bars = aHPivIdxs[0] – aLPivIdxs[1] + 1;
nRtrc1Pts = retrcPrc – aLPivLows[0];
nRtrc1Bars = retrcBarIdx – aLPivIdxs[0] + 1;
} else {
nRtrc0Pts = aHPivHighs[1] – aLPivLows[1];
nRtrc0Bars = aHPivIdxs[1] – aLPivIdxs[1] + 1;
nRtrc1Pts = aHPivHighs[0] – aLPivLows[0];
nRtrc1Bars = aHPivIdxs[0] – aLPivIdxs[0] + 1;
}
} else { // bLongSetup
if (aLPivIdxs[0] > aHPivIdxs[0]) {
nRtrc0Pts = aHPivHighs[0] – aLPivLows[1];
nRtrc0Bars = aHPivIdxs[0] – aLPivIdxs[1] + 1;
nRtrc1Pts = retrcPrc – aLPivLows[0];
nRtrc1Bars = retrcBarIdx – aLPivIdxs[0] + 1;
} else {
nRtrc0Pts = aHPivHighs[1] – aLPivLows[0];
nRtrc0Bars = aLPivIdxs[0] – aHPivIdxs[1] + 1;
nRtrc1Pts = aHPivHighs[0] – aLPivLows[0];
nRtrc1Bars = aLPivIdxs[0] – aHPivIdxs[0] + 1;
}
}
if (bShowTCZ) {
Plot(
LineArray( IIf(bTCZLong, aHPivIdxs[0], aLPivIdxs[0]),
tcz500, curBar, tcz500 , 0),
“tcz500”, colorPaleBlue, styleLine);
Plot(
LineArray( IIf(bTCZLong, aHPivIdxs[0], aLPivIdxs[0]),
tcz618, curBar, tcz618, 0),
“tcz618”, colorPaleBlue, styleLine);
Plot(
LineArray( IIf(bTCZLong, aHPivIdxs[0], aLPivIdxs[0]),
tcz786, curBar, tcz786, 0),
“tcz786″, colorTurquoise, styleLine);
}
// — if (bShowTCZ)
}
if (bDraw) {
Title = Name() + ” (” + StrLeft(FullName(), 10) +
“) ATR: ” + NumToStr(ATR(1), 4.2) + ” ( ” +
NumToStr((C – Ref(C, -1)), 4.2) + ” / ” +
NumToStr((((C – Ref(C, -1)) / Ref(C, -1)) * 100), 2.1) + “% ) ” +
WriteVal( SelectedValue( DateTime() ), formatDateTime) +
”
O: ” + Open +
“,
H: ” + High +
“,
L: ” + Low +
“,
C: ” + Close + “,
” +
// “Risk: ” + WriteVal(risk, 2.1) + “%
” +
“Rtrc 0/1 Pts: ” + WriteVal(nRtrc0Pts, 2.1) + “/” +
WriteVal(nRtrc1Pts, 2.1) + ”
” +
“Rtrc 0/1 Bars: ” + WriteVal(nRtrc0Bars, 2.0) + “/” +
WriteVal(nRtrc1Bars, 2.0);
}
// **************************
// END INDICATOR CODE
// **************************
_SECTION_END();
_SECTION_BEGIN(“SAM”);
P = ParamField(“Price field”,-1);
Periods = Param(“Periods”, 19, 2, 300, 1 );
Width = Param(“Width”, 2.1, 0, 10, 0.05 );
Color = ParamColor(“Color”, colorBlue );
Style = ParamStyle(“Style”, styleLine | styleNoLabel);
CenterLine = MA( P, Periods );
KTop = CenterLine + Width * ATR( Periods );
KBot = CenterLine – Width * ATR( Periods );
Plot( KTop, “KBTop” + _PARAM_VALUES(), Color, Style );
Plot( KBot, “KBBot” + _PARAM_VALUES(), Color, Style );
_SECTION_END();
@Samartha
can you post the chart for the indicator above?
hi sir i am new to this post and would like to know more about supertrend and how it works
thanks in advance
@Mayur
Watch the Live action of supertrend here
http://www.marketcalls.in/livecharts/nifty-futures
Sir,
Its equallent to A/D line ?
Naren,
It is similar to A/D line but here the breadth of the nifty is decided based on the supertrend strategy
Hi Rajandran,
Thanx for all the knowlege u impart. Would like to know the basic concept of supertrend please
Dear Sir
please guide the supretrend indicator afl on eod basis
Please provide the afl file for super trend breath