Hi reinsley Thanks a lot The codes are a good help rvlv --- On Sun, 11/22/09, reinsley <[email protected]> wrote:
From: reinsley <[email protected]> Subject: Re: [amibroker] REQUIRED DIVERGENCE PLOT(MARK) ON THIS INDICATOR To: [email protected] Date: Sunday, November 22, 2009, 10:31 AM Hi, Please find two formulas to plot divergences you could adapt. For a visual check between price and macd. NB : Capital letters in a post means : to shout at sb Best regards // test divergence // with linearray // to draw a divergence line on price // http://www.amibroker.com/guide/afl/afl_view.php?id=250 // adapted by reinsley y2t=LastValue(Trough(L,0.5,2))-4; //_TRACE("y2t = "+y2t); y1t=LastValue(Trough(L,0.5,1))-4; //_TRACE("y1t = "+y1t); x2t=BarCount - 1 - LastValue(TroughBars(L,0.5,2)); //_TRACE("x2t = "+x2t); x1t=BarCount - 1 - LastValue(TroughBars(L,0.5,1)); //_TRACE("x1t = "+x1t); LineLo = LineArray( x2t, y2t, x1t, y1t, 0 ); // a = ( low2 - low1 ) / ( bars2 - bars1 ) pat = ( y2t - y1t ) / ( x2t - x1t ); //_TRACE("slope price trough = "+pat); DivColorLo=IIf(pat>=0,27,32); Plot(C, "Cl", colorBlack, styleCandle); Plot( LineLo, "TLlo", DivColorLo,styleLine+styleDots+styleThick); //_TRACE("BC = "+BarCount); _SECTION_BEGIN("ZIG - Zig"); P = ParamField( "Price field" ); change = Param("% change",0.5,0.1,25,0.1); Plot( Zig(P, change), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") ); _SECTION_END(); y2p=LastValue(Peak(H,0.5,2))+4; //_TRACE("y2p = "+y2p); y1p=LastValue(Peak(H,0.5,1))+4; //_TRACE("y1p = "+y1p); x2p=BarCount - 1 - LastValue(PeakBars(H,0.5,2)); //_TRACE("x2p = "+x2p); x1p=BarCount - 1 - LastValue(PeakBars(H,0.5,1)); //_TRACE("x1p = "+x1p); LineHi = LineArray( x2p, y2p, x1p, y1p, 0 ); // a = ( low2 - low1 ) / ( bars2 - bars1 ) // price a (slope) peak pap = ( y2p - y1p ) / ( x2p - x1p ); //_TRACE("slope price = "+pap); DivColorHi=IIf(pap>=0,27,32); Plot( LineHi, "TLhi", DivColorHi,styleLine+styleDots); --------------------------------------------------------- //MACD fast no cross 10 UT //v 1.1 //to find the no cross signal // adaptation by reinsley /////////////////Plot Price////////////////////// _N( Title = "MACD fast no cross 10 UT - " + StrFormat( "{{NAME}} - {{INTERVAL}} {{DATE}} " ) ); ///////////////////////////////////////////////// r1 = Param( "Fast avg", 5, 2, 200, 1 ); r2 = Param( "Slow avg", 10, 2, 200, 1 ); r3 = Param( "Signal avg", 3, 2, 200, 1 ); ml = MACD( r1, r2 ); sl = Signal( r1, r2, r3 ); // color macd and signal MACDcol = IIf( ml > sl, colorGreen, IIf( ml < sl, colorRed, colorGreen ) ); Sigcol = IIf( ml > sl, colorGreen, IIf( ml < sl, colorRed, colorGreen ) ); Plot( ml , StrFormat( _SECTION_NAME() + "(%g,%g)", r1, r2 ), MACDcol, styleThick );//("MACD style")//| styleNoLabel Plot( sl , "Signal" + _PARAM_VALUES(), Sigcol , styleDashed );//ParamStyle( "Signal style" ) );//| styleNoLabel Plot( mh = ml - sl, "MACD Histogram", ParamColor( "Histogram color", colorBlack ), styleNoTitle | ParamStyle( "Histogram style", styleHistogram | styleThick | styleNoLabel, maskHistogram ) );//| styleNoLabel _SECTION_BEGIN( "MACD" ); // color enveloppe histo bar mcol = IIf( mh > Ref( mh, -1 ), IIf( mh > 0, 27, 43 ), IIf( mh > 0, 32, 32 ) );// 43 bright green //mcol= IIf(mh>Ref(mh,-1),IIf(mh > 0,27,27),IIf(mh > 0,32,32));// 27 green : 32 red lastbar0 = Ref( mh, 0 ) > Ref( mh, - 1 )AND mh >= 0 ; lastbar1 = Ref( mh, - 1 ) < Ref( mh, - 2 )AND mh >= 0 ; lastbar2 = Ref( mh, - 2 ) < Ref( mh, - 3 )AND mh >= 0 ; lastbar3 = Ref( mh, - 3 ) < Ref( mh, - 4 )AND mh >= 0 ; signocrossup = IIf( lastbar0 AND lastbar1 AND lastbar2 , 1, 0 ); //color no cross histo bar in white barcolorup = IIf( signocrossup, 2, 1 );// 2 white lastbardn0 = Ref( mh, 0 ) < Ref( mh, - 1 )AND mh <= 0 ; lastbardn1 = Ref( mh, - 1 ) > Ref( mh, - 2 )AND mh <= 0 ; lastbardn2 = Ref( mh, - 2 ) > Ref( mh, - 3 )AND mh <= 0 ; lastbardn3 = Ref( mh, - 3 ) > Ref( mh, - 4 )AND mh <= 0 ; signocrossdown = IIf( lastbardn0 AND lastbardn1 AND lastbardn2 , 1, 0 ); //color no cross histo bar in white barcolordn = IIf( signocrossdown, 2, 1 ); //color histo bar zero line //Color=IIf(mh > 0,colorGreen,colorDarkRed); Color = IIf( mh > Ref( mh, -1 ), IIf( mh > 0, 27, 43 ), IIf( mh > 0, 32, 32 ) ); Graph2BarColor = IIf ( signocrossup, barcolorup, IIf( signocrossdown, barcolordn, Color ) ); Plot( mh, "MACDHistogram", mcol, 6 | styleNoTitle | 4096 );//32768| Plot( mh, "MACDHistogram", mcol, 5 | styleNoTitle | 4096 ); //32768| GraphXSpace = 5; m11 = MACD( r1, r2 ); percent = Param( "Zigpercnt", 2, 0.1, 5, 0.1 ); x22t = BarCount - 1 - LastValue( TroughBars( C, percent , 2 ) ); x11t = BarCount - 1 - LastValue( TroughBars( C, percent , 1 ) ); y22t = m11[x22t] - 2; y11t = m11[x11t] - 2; LineLow = LineArray( x22t, y22t, x11t, y11t, 0 ); // a = ( low2 - low1 ) / ( bars2 - bars1 ) at = ( y22t - y11t ) / ( x22t - x11t ); // color divergence line trough DivColorTrou = IIf( at >= 0, 27, 32 ); Plot( LineLow, "TLlow", DivColorTrou, styleLine + styleDots ); x22p = BarCount - 1 - LastValue( PeakBars( C, percent , 2 ) ); x11p = BarCount - 1 - LastValue( PeakBars( C, percent , 1 ) ); y22p = m11[x22p] + 2; y11p = m11[x11p] + 2; LineHigh = LineArray( x22p, y22p, x11p, y11p, 0 ); // a = ( low2 - low1 ) / ( bars2 - bars1 ) ap = ( y22p - y11p ) / ( x22p - x11p ); // color divergence line peak DivColorPeak = IIf( ap >= 0, 27, 32 ); Plot( LineHigh, "TLhigh", DivColorPeak, styleLine + styleDots ); _SECTION_END(); //SetChartBkGradientFill( ParamColor("BgTop", colorLightYellow),ParamColor("BgBottom", colorDarkGrey)); //colorLightGrey//colorCustom10 ------------------------------------ **** IMPORTANT PLEASE READ **** This group is for the discussion between users only. This is *NOT* technical support channel. TO GET TECHNICAL SUPPORT send an e-mail directly to SUPPORT {at} amibroker.com TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at http://www.amibroker.com/feedback/ (submissions sent via other channels won't be considered) For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: http://www.amibroker.com/devlog/ Yahoo! Groups Links
