Here is an attempt - presuming that all HHs & LLs need to be marked. But if we visually inspect the charts - there are cases where these HHs & LLs need not be a major turning point and there are other points that would qualify. I suppose that is the power of human brain.
There seems to be quite a few methods to draw a horizontal line and 2 methods given here seem to be the simplest. Feel free to change the shape, color and width of the horizontal lines.
There seems to be quite a few methods to draw a horizontal line and 2 methods given here seem to be the simplest. Feel free to change the shape, color and width of the horizontal lines.
Code:
_SECTION_BEGIN("HH");
Q = Param( "% Change", 2, 0.1, 10, 0.1 );
Z = Zig( C , q ) ;
HH = ( ( Z < Ref( Z, -1 ) AND Ref( Z, -1 ) > Ref( Z, -2 ) ) AND (Peak( z, q, 1 ) > Peak( Z, q, 2 ) ) );
LH = ( ( Z < Ref( Z, -1 ) AND Ref( Z, -1 ) > Ref( Z, -2 ) ) AND (Peak( Z, q, 1 ) < Peak( Z, q, 2 ) ) );
HL = ( ( Z > Ref( Z, -1 ) AND Ref( Z, -1 ) < Ref( Z, -2 ) ) AND (Trough( Z, q, 1 ) > Trough( Z, q, 2 ) ) );
LL = ( ( Z > Ref( Z, -1 ) AND Ref( Z, -1 ) < Ref( Z, -2 ) ) AND (Trough( Z, q, 1 ) < Trough( Z, q, 2 ) ) );
GraphXSpace = 5;
dist = 0.5 * ATR( 20 );
for ( i = 0; i < BarCount; i++ )
{
if ( HH[i] ){
PlotText( "HH", i, H[ i ] + dist[i], colorRed );
PlotText( "=======================", i, H[i], colorRed);
}
if ( LH[i] )
PlotText( "LH", i, H[ i ] + dist[i], colorRed );
if ( HL[i] )
PlotText( "HL", i, L[ i ] - dist[i], colorBrightGreen );
if ( LL[i] ) {
PlotText( "LL", i, L[ i ] - dist[i], colorBrightGreen );
PlotText( "=======================", i, L[i], colorBrightGreen);
}
}
/*
width=5;
for ( j = 0; j > width*-1; j--) {
PlotShapes( IIf(Ref(HH,j),shapeStar,shapeNone), colorRed, layer=0, yposition=Ref(H,j), Offset=0 );
PlotShapes( IIf(Ref(LL,j),shapeStar,shapeNone), colorBrightGreen, layer=0, yposition=Ref(L,j), Offset=0 );
}
*/
Filter=HH OR HL OR LH OR LL;
AddColumn(RSI(2),"RSI",1.2);
AddColumn(Close,"PRICE",1.2);
AddColumn(HH,"SHORT");
AddColumn(LH,"LH");
AddColumn(HL,"HL");
AddColumn(LL,"COVER");
AddColumn(V,"volume",1.0);
_SECTION_END();
_SECTION_BEGIN( "Price" );
SetChartOptions( 0, chartShowDates | chartShowArrows | chartLogarithmic | chartWrapTitle );
_N( Title = StrFormat( "{{NAME}} - " + SectorID( 1 ) + " - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " + WriteVal( V, 1.0 ) + " {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ) );
Plot( C, "Close", colorRose, styleCandle | styleNoTitle | ParamStyle( "Style" ) | GetPriceStyle() );
Plot( IIf(HL==1,Close,Null), "Close", colorPink, styleLine );
Plot( IIf(Ref(HL,-1)==1,Close,Null), "Close", colorPink, styleLine );
Plot( IIf(Ref(HL,-2)==1,Close,Null), "Close", colorPink, styleLine );
Plot( IIf(Ref(HL,-3)==1,Close,Null), "Close", colorPink, styleLine );
_SECTION_END();
Is it possible to have an exploration for the HH,HL,LH and LL values on a daily time frame or any time frame?