Thanks Ed. Excellent Coding & simple displays. great !!
On Mon, Sep 6, 2010 at 2:12 PM, Edward Pottasch <[email protected]>wrote: > > > 1 line was missing: > > // E.M.Pottasch 09/06/10 > SetBarsRequired(*sbrAll*,*sbrAll*); > nbar = Param("nbar",4,2,50,1); > > PHigh = *H* > Ref(HHV(*H*,nbar),-1) *AND* Ref(HHV(*H*,nbar),nbar) < *H*; > PHighPrice0 = ValueWhen(PHigh,*H*); > PHighPrice1 = IIf(PHighPrice0 *AND* BarsSince(PHigh) > nbar,PHighPrice0,* > Null*); > PHighPrice2 = IIf(PHighPrice0 *AND* BarsSince(PHigh) <= nbar,PHighPrice0,* > Null*); > PLow = *L* < Ref(LLV(*L*,nbar),-1) *AND* Ref(LLV(*L*,nbar),nbar) > *L*; > PLowPrice0 = ValueWhen(PLow,*L*); > PLowPrice1 = IIf(PLowPrice0 *AND* BarsSince(Plow) > nbar,PLowPrice0,*Null*); > > PLowPrice2 = IIf(PLowPrice0 *AND* BarsSince(Plow) <= nbar,PLowPrice0,*Null > *); > > *GraphXSpace* = 5; > SetChartOptions(0, *chartShowDates*); > Plot(*C*,"\nLast",*colorWhite*,*styleCandle*); > PlotShapes(*shapeSmallCircle**PLow,*colorGreen*,0,*L*,-10); > PlotShapes(*shapeSmallCircle**PHigh,*colorRed*,0,*H*,10); > PlotShapes(*shapeUpArrow**PLow,*colorGreen*,0,*L*,-25); > PlotShapes(*shapeDownArrow**PHigh,*colorRed*,0,*H*,-25); > > Plot(PHighPrice1,"\nPHighPrice",*colorOrange*,*styleThick*); > Plot(PHighPrice2,""! ,*colorOrange*,*styleDots* | *styleNoLine*); > Plot(PLowPrice1,"\nPLowPrice",*colorBrightGreen*,*styleThick* > ); > Plot(PLowPrice2,"",*colorBrightGreen*,*styleDots* | *styleNoLine*); > > *From:* Edward Pottasch <[email protected]> > *Sent:* Monday, September 06, 2010 10:40 AM > *To:* [email protected] > *Subject:* Re: [amibroker] Plotting Arrows on "Prices of Pivot Chart" > > > > Mav, > > I admit I did not plough through the code you posted in detail but it seems > to me it is unavoidable that future quotes are needed to be able to > determine that a bottom or top has been found. > > below I added a little extension. Only where the horizontal lines are solid > it does not use future quotes, regards, Ed > > // E.M.Pottasch 09/06/10 > SetBarsRequired(*sbrAll*,*sbrAll*); > nbar = Param("nbar",4,2,50,1); > > PHigh = *H* > Ref(HHV(*H*,nbar),-1) *AND* Ref(HHV(*H*,nbar),nbar) < *H*; > PHighPrice0 = ValueWhen(PHigh,*H*); > PHighPrice1 = IIf(PHighPrice0 *AND* BarsSince(PHigh) > nbar,PHighPrice0,* > Null*); > PHighPrice2 = IIf(PHighPrice0 *AND* BarsSince(PHigh) <= nbar,PHighPrice0,* > Null*); > PLow = *L* < Ref(LLV(*L*,nbar),-1) *AND* Ref(LLV(*L*,nbar),nbar) > *L*; > PLowPrice0 = ValueWhen(PLow,*L*); > PLowPrice1 = IIf(PLowPrice0 *AND* BarsSince(Plow) > nbar,PLowPrice0,*Null*); > > PLowPrice2 = IIf(PLowPrice0 *AND* BarsSince(Plow) <= nbar,PLowPrice0,*Null > *); > > *GraphXSpace* = 5; > SetChartOptions(0, *chartShowDates*); > Plot(*C*,"\nLast",*colorWhite*,*styleCandle*); > PlotShapes(*shapeSmallCircle**PLow,*colorGreen*,0,*L*,-10); > PlotShapes(*shapeSmallCircle**PHigh,*colorRed*,0,*H*,10); > PlotShapes(*shapeUpArrow**PLow,*colorGreen*,0,*L*,-25); > PlotShapes(*shapeDownArrow**PHigh,*colorRed*,0,*H*,-25); > > Plot(PHighPrice1,"\nPHighPrice",*colorOrange*,*styleThick*); > Plot(PHighPrice2,""! ,*colorOrange*,*styleDots* | *styleNoLine*); > Plot(PLowPrice1,"\nPLowPrice",*colorBrightGreen*,*styleThick*); > > > > > *From:* Mubashar Virk <[email protected]> > *Sent:* Monday, September 06, 2010 10:22 AM > *To:* [email protected] > *Subject:* Re: [amibroker] Plotting Arrows on "Prices of Pivot Chart" > > > > Edward, > > WOW! > Beautiful! > > Edward, the only differece between your and Reinsley Codes is that future > is referenced in your code. > But the concept of PH & PL is such that future referencing does not make > any difference. > > Thank you very much for this easy to understand beauty. > > Best regards, > Mav > > > On 9/6/2010 12:18 PM, Edward Pottasch wrote: > > > > hi, > > I don't see why you need this complicated code. Code below gives same > result (arrows included), rgds, Ed > > // E.M.Pottasch 09/06/10 > SetBarsRequired(*sbrAll*,*sbrAll*); > nbar = Param("nbar",4,2,50,1); > > PHigh = *H* > Ref(HHV(*H*,nbar),-1) *AND* Ref(HHV(*H*,nbar),nbar) < *H*; > PHighPrice = ValueWhen(PHigh,*H*); > PLow = *L* < Ref(LLV(*L*,nbar),-1) *AND* Ref(LLV(*L*,nbar),nbar) > *L*; > PLowPrice = ValueWhen(PLow,*L*); > > *GraphXSpace* = 5; > SetChartOptions(0, *chartShowDates*); > Plot(*C*,"\nLast",*colorWhite*,*style! Candle*); > PlotShapes(*shapeSmallCircle**PLow,*colorGreen*,0,*L*,-10); > PlotShapes(*shapeSmallCircle**PHigh,*colorRed*,0,*H*,10); > PlotShapes(*shapeUpArrow**PLow,*colorGreen*,0,*L*,-25); > PlotShapes(*shapeDownArrow**PHigh,*colorRed*,0,*H*,-25); > > > > *From:* Mubashar Virk <[email protected]> > *Sent:* Monday, September 06, 2010 8:44 AM > *To:* [email protected] > *Subject:* [amibroker] Plotting Arrows on "Prices of Pivot Chart" > > > > HI Reinsley, > > I have tried to mark PH& PL with arrows instead of "stars" in the below > AFL of yours. I tried various combination of plotshape but failed in > every instance. Can you please help? > > Thanks, > Mav > > ---------------------------------------------------------- > // pivots and prices > // based on Pramod's comments > http://www.amibroker.com/library/detail.php?id=617 > // adapted by Reinsley : Prices on Pivot and ajustable digits # > // mod by Sanjiv Bansal : take care of Highs or Lows when two adjacent bars > are equal > // does not reference to future > > SetChartOptions( 0, chartShowDates ); > > _SECTION_BEGIN( "Price" ); > _N( Title = StrFormat( "{{NAME}} - {{INTERVAL}} {{DATE}} \nOp %g, \nHi > %g, \nLo > %g, \nCl %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) > ) ) ); > Plot( C, "Close", ParamColor( "Color", colorBlack ), styleNoTitle | > styleCandle > | styleThick ); > _SECTION_END(); > > _SECTION_BEGIN( "pivot" ); > price = ParamToggle( "Plot Price", "Off|On", 1 ); > num = Param( "trend", 4, 1, 10, 1 ); > dist = 0.5 * ATR( 10 ); > rightfig = Param( "rightfig ", 7, 1, 10, 1 ); > xspace = Param( "GraphXSpace ", 10, 1, 20, 1 ); > > mHHV = HHV( H, num ); > mLLV = LLV( L, num ); > > FirstVisibleBar = Status( "FirstVisibleBar" ); > Lastvisiblebar = Status( "LastVisibleBar" ); > > for ( b = Firstvisiblebar + num; b<= Lastvisiblebar AND b< BarCount - > num; b++ ) > { > i = num; > ml = 0; > mu = 0; > > while ( i> 0 ) > { > > if ( L[b]< L[b+i] ) > { > ml++; > } > > if ( H[b]> H[b+i] ) > { > mu++; > } > > i--; > } > > if ( ml == num AND L[B] == mLLV[B] ) > { > PlotText( "\n *\n", b, L[b], colorGreen ); > > if ( price == 1 ) > { > p = StrRight( NumToStr( L[b], 4.1 ), rightfig ); > PlotText( "\n\n" + p, b - 2 , L[b] , colorGreen ); > } > } > > if ( mu == num AND H[B] == mHHV[B] ) > { > PlotText( " *\n", b, H[b], colorRed ); > > if ( price == 1 ) > { > p = StrRight( NumToStr( H[b], 4.1 ), rightfig ); > PlotText( p , b - 2 , H[b] + dist[b] + 1, colorRed ); > } > } > } > _SECTION_END(); > > > > -- -
