Stock Portfolio Organizer
The ultimate porfolio management solution.
Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
SuperTrend for Amibroker (AFL)
Copy & Paste Friendly
Back
_SECTION_BEGIN("Modified SuperTrend Code @ Fazal"); _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) )); SetChartOptions(1,chartShowArrows|chartShowDates|chartWrapTitle); function GetSecondNum() { Time = Now( 4 ); Seconds = int( Time % 100 ); Minutes = int( Time / 100 % 100 ); Hours = int( Time / 10000 % 100 ); SecondNum = int( Hours * 60 * 60 + Minutes * 60 + Seconds ); return SecondNum; } function PopupWindowEx( popupID, bodytext, captiontext, timeout, left, top ) { displayText = bodytext + captiontext; if ( ( StaticVarGetText( "prevPopup" + popupID ) != displayText) OR ( StaticVarGet( "prevPopupTime" + popupID ) < GetSecondNum() ) ) { StaticVarSetText( "prevPopup" + popupID, displayText); StaticVarSet( "prevPopupTime" + popupID, GetSecondNum() + timeout ); PopupWindow( bodytext, Captiontext + popupID, timeout, Left, top ); Say("crossover.. action"); } } GraphXSpace = 15; SetBarFillColor(IIf(C>O,ParamColor("Candle UP Color", colorGreen),IIf(C<=O,ParamColor("Candle Down Color", colorRed),colorLightGrey))); Plot(C,"",IIf(C>O,ParamColor("Wick UP Color", colorDarkGreen),IIf(C<=O,ParamColor("Wick Down Color", colorDarkRed),colorLightGrey)),64,0,0,0,0); SetChartBkGradientFill( ParamColor( "TopColor", ColorRGB(0,0, 0 ) ), ParamColor( "BottomColor", ColorRGB(0,0, 0))); //SetTradeDelays(1,1,1,1); //SetPositionSize(75,spsShares); Period = Param("Period", 150, 1, 2400, 1); mult = Param("Multiplier", 4, 1.1, 20.0, 0.1); f=ATR(period); VS[0] = Close[0]; trend[0] = 0; HighC[0]=0; Lowc[0]=0; for( i = period+1; i < BarCount; i++ ) { vs[i] = vs[i-1]; trend[i] = trend[i-1]; highC[i] = HighC[i-1]; lowc[i] = lowc[i-1]; if ((trend[i]>=0) && ( C[i] <VS[i] )) { trend[i] =-1; HighC[i] = C[i]; lowc[i] = C[i]; } if ((trend[i]<=0) && (C[i] >VS[i])) { trend[i]=1; HighC[i] = C[i]; lowc[i] = C[i]; } if (trend[i]==-1) { if (C[i]<lowc[i]) lowc[i] = C[i]; VS[i]= lowc[i]+ (mult*f[i]); } if (trend[i]==1) { if (C[i]>HighC[i]) HighC[i] = C[i]; VS[i]= HighC[i]-(mult*f[i]); } } Plot(VS, "Vol Stop",IIf(trend==1,colorGreen,colorRed ),styleThick); Buy=Cross(Trend,0); Short=Cross(0, Trend); Buy = Ref(Buy, -1); Short = Ref(Short, -1); Hp = HHV( H, 40 ); Lp = LLV( L, 40 ); BarsSincebuy = BarsSince( Buy ); BarsSinceshort = BarsSince( Short ); LastSignal = IIf( BarsSincebuy < BarsSinceshort, 1, -1 ); Sig = WriteIf( BarsSincebuy < BarsSinceshort, "BUY", "SELL" ); slPrice = IIf( LastSignal == 1, HighestSince( Buy, Lp ), LowestSince( Short, Hp ) ); initialrisk = IIf( LastSignal == 1, BuyPrice - SLPrice, SLPrice - ShortPrice ); CurrentPL = IIf( LastSignal == 1, C - BuyPrice, SellPrice - C ); BuyPrice=ValueWhen(Buy,O); ShortPrice=ValueWhen(Short,O); entry = IIf( LastSignal == 1, BuyPrice, ShortPrice ); PlotShapes(Buy * shapeUpArrow,colorGreen, 0,L, Offset=-45); PlotShapes(Short * shapeDownArrow,colorRed, 0,H, Offset=-45); bars = LastValue( IIf(BarsSincebuy < BarsSinceshort, BarsSincebuy, BarsSinceshort)); Offset = 15; Clr = IIf(LastValue(LastSignal) == 1, colorRed, colorGreen); if ( ParamToggle( "Message Board ", "Show|Hide", 1 ) ) { GfxSelectFont( "Tahoma", 9, 700 ); GfxSetBkMode( 1 ); GfxSetTextColor( colorWhite ); if ( SelectedValue( LastSignal ) == 1 ) { GfxSelectSolidBrush( colorDarkGreen ); Datetim = "" + ValueWhen( Buy, Day(), 1 ) + "/" + ValueWhen( Buy, Month(), 1 ) + "/" + ValueWhen( Buy, Year(), 1 ) + " " + ValueWhen( Buy, Hour(), 1 ) + ":" + ValueWhen( Buy, Minute(), 1 ); } else { GfxSelectSolidBrush( colorBlue ); Datetim = "" + ValueWhen( Short, Day(), 1 ) + "/" + ValueWhen( Short, Month(), 1 ) + "/" + ValueWhen( Short, Year(), 1 ) + " " + ValueWhen( Short, Hour(), 1 ) + ":" + ValueWhen( Short, Minute(), 1 ); } LastClose= Ref(C,-1); if (Buy[BarCount-2]==True) { PopupWindowEx( "ID:1", "Get Ready to BUY \n"+Name() + " "+ Interval(2)+" : "+ " Last ="+LastClose , "Buy Alert -", 1000, 100, 1 ) ; } if (Short[BarCount-2]==True) { PopupWindowEx( "ID:2", "Get Ready to SHORT \n"+Name() + " "+ Interval(2) + " : "+ " Last ="+LastClose , "Short Alert ", 1000, 1, 150 ) ; } } pxHeight = Status( "pxchartheight" ) ; xx = Status( "pxchartwidth" ); Left = 1100; width = 310; x = 1.5; x2 = 236; y = pxHeight / 1; GfxSelectPen( colorLightBlue, 1 ); GfxRoundRect( x, y - 105, x2, y , 7, 7 ) ; GfxTextOut( ( "Fazal,s SuperTrend " ), 25, y - 100 ); GfxTextOut( ( " ........................................." ), 18, y - 90 ); GfxTextOut( ( "Last Signal"), 10, y - 65 ); GfxTextOut( ( ": " + Datetim ), 110, y - 65 ); GfxTextOut( ( "" + sig + " Entry @" ), 10, y - 45 ); GfxTextOut( ( ": " + entry ), 110, y - 45 ); GfxTextOut( ( "Current P/L"), 10, y - 25 ); GfxTextOut( ( ": " + WriteVal( IIf( sig == "BUY", ( C - entry ), ( entry - C ) ), 2.2 ) ), 110, y - 25);; x = 290; x2 = 500; _SECTION_END(); _SECTION_BEGIN("Pivot Points"); //--------------------------------------------------------------------------- // This section gets whether they want pivot level for intraday or thier eod //--------------------------------------------------------------------------- _N(ioreod =ParamList("Pivot Levels for ", "Intraday|EOD")); if (ioreod=="Intraday") { yh = TimeFrameGetPrice( "H", inDaily, -1 ); yl = TimeFrameGetPrice( "L", inDaily, -1 ); yc = TimeFrameGetPrice( "C", inDaily, -1 ); } else { yh = TimeFrameGetPrice( "H", inDaily, 0 ); yl = TimeFrameGetPrice( "L", inDaily, 0 ); yc = TimeFrameGetPrice( "C", inDaily, 0 ); } //--------------------------------------------------------------------------- // To calculate the Pivot Levels //--------------------------------------------------------------------------- to = TimeFrameGetPrice( "O", inDaily, 0 ); pivot = (yh + yl + yc) / 3; range = yh - yl; _N(pist =ParamList("Select Pivot Type ", "Classical Pivot|Woodie Pivot|Caramilla Pivot|Fibonacci Pivot")); if (pist =="Classical Pivot" ) { r1 = (2 * pivot) - yl ; s1 = (2 * pivot) - yh ; r2 = pivot - s1 + r1; s2 = pivot - (r1 - s1) ; r3 = 2 * (pivot - yl) + yh ; s3 = yl - (2 * (yh - pivot)); } else if(pist =="Woodie Pivot" ) { pivot = (yh + yl + yc + to) / 4; r1 = (2 * pivot) - yl; r2 = pivot + range; r3 = yh + 2 * (pivot - yl); r4 = r3 + range; s1 = (2 * pivot) - yh; s2 = pivot - range; s3 = yl - 2 * (yh - pivot); s4 = S3 - range; } else if(pist =="Caramilla Pivot" ) { r4 = yc + range * 1.1/2; r3 = yc + range * 1.1/4; r2 = yc + range * 1.1/6; r1 = yc + range * 1.1/12; s1 = yc - range * 1.1/12; s2 = yc - range * 1.1/6; s3 = yc - range * 1.1/4; s4 = yc - range * 1.1/2; } else { r3 = pivot + 1.000 * (yh - yl); r2 = pivot + 0.618 * (yh - yl); r1 = pivot + 0.382 * (yh - yl); s1 = pivot - 0.382 * (yh - yl); s2 = pivot - 0.618 * (yh - yl); s3 = pivot - 1.000 * (yh - yl); } //--------------------------------------------------------------------------- // To Plot Pivot Levels in the screen //--------------------------------------------------------------------------- _N(dsr =ParamList("Draw Intraday Pivot Levels ", "None|Both|Support|Resistance")); if (dsr =="Support" OR dsr == "Both") { Plot(pivot, "\n Pivot - ",colorWhite,1); Plot(r1, "Resistance 1 - ",colorYellow,1); Plot(r2, "Resistance 2 - ",colorYellow,1); Plot(r3, "Resistance 3 - ",colorYellow,1); Plot((pivot+r1)/2, "Mid Value of R1 & Pivot ",colorYellow,1); Plot((r3+r2)/2, "Mid Value of R2 & R3 - ",colorYellow,1); Plot((r1+r2)/2, "Mid Value of R1 & R2 - ",colorYellow,1); } if( dsr == "Resistance" OR dsr == "Both") { Plot(pivot, "\n Pivot - ",colorWhite,1); Plot(s3, "Support 2 - ",colorYellow,1); Plot(s2, "Support 2 - ",colorYellow,1); Plot(s1, "Support 1 - ",colorYellow,1); Plot((s3+s2)/2, "Mid Value of S2 & S3 ",colorYellow,1); Plot((s1+s2)/2, "Mid Value of S1 & S2 - ",colorYellow,1); Plot((pivot+s1)/2, "Mid Value of S1 & Pivot ",colorYellow,1); } //--------------------------------------------------------------------------- // Printing the pivot level in interpretation window //--------------------------------------------------------------------------- printf(Name()+ "\n\nResistance - 3 | %g\nResistance - 2 | %g\nResistance - 1 | %g\n" + "Pivot | %g\nSupport - 1 | %g\nSupport - 2 | %g\nSupport - 3 | %g", r3,r2,r1,pivot,s1,s2,s3); //--------------------------------------------------------------------------- // This section is for Exploration //--------------------------------------------------------------------------- Filter = 1; AddColumn(r3,"Resistance 3"); AddColumn(r2,"Resistance 2"); AddColumn(r1,"Resistance 1"); AddColumn(Pivot,"Pivot"); AddColumn(s1,"Support 1"); AddColumn(s2,"Support 2"); AddColumn(s3,"Support 3"); //--------------------------------------------------------------------------- // Add Pivot levels along with the title //--------------------------------------------------------------------------- _N(Title = EncodeColor(colorOrange)+ StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g(%.1f%%)\n"+ EncodeColor(colorWhite)+"Resistance 3 -=- %g ::::: Resistance 2 -=- %g ::::: Resistance 1 -=- %g :::::"+ EncodeColor(colorYellow)+" Pivot -=- %g"+ EncodeColor(colorYellow)+"\nSupport 1 -=- %g ::::: Support 2 -=- %g ::::: Support 3 -=- %g\n ", O, H, L, C,SelectedValue( ROC( C, 1 ) ),r3,r2,r1,pivot,s1,s2,s3)); //--------------------------------------------------------------------------- // End of Pivot Point //--------------------------------------------------------------------------- _SECTION_END(); _SECTION_BEGIN( "L T Price" ); GfxSetOverlayMode( 0 ); GfxSelectPen( colorRed, 3 ); GfxSelectSolidBrush( colorLightYellow ); GfxRoundRect( 500, 38, 600, 70, 15, 15 ); GfxSetBkMode( 1 ); GfxSelectFont( "Arial", 14.5, 400, False ); GfxSetTextColor( colorBrown ); GfxSetTextAlign( 0 ); GfxSetTextColor( colorBlack ); GfxTextOut( " " + C , 500, 40 ); _SECTION_END(); _SECTION_BEGIN("Linear Reg Channel"); //Plot(Close, "", 55, GetPriceStyle()); P = ParamField("Price field", -1); Daysback = Param("Period for Linear Regression Channel", 50, 1, 300, 1); SDP1 = Param("Standard Deviation 1", 1.0, 0, 6, 0.05); SDP2 = Param("Standard Deviation 2", 2.0, 0, 6, 0.05); SDP3 = Param("Standard Deviation 3", 3.0, 0, 6, 0.05); ext = Param("extend Linear Regression Channel", 15, 0, 50, 1); shift = Param("Look back period", 0, 0, 240, 1); Collg = ParamColor("Color Linear Reg Line", colorRed); Colsd1 = ParamColor("Color StDev 1", colorBlue); Colsd2 = ParamColor("Color StDev 2", colorLime); Colsd3 = ParamColor("Color StDev 3", colorGold); SDP1 = SDP1/2; SDP2 = SDP2/2; SDP3 = SDP3/2; pds = Daysback; x = BarIndex() + 1; sx = SelectedValue(x)-shift; aa = SelectedValue(Ref(LinRegIntercept(P, pds), -shift)); bb = SelectedValue(Ref(LinRegSlope(P, pds), -shift)); StDev0 = StDev(P, pds); fd1 = SelectedValue(Ref(SDP1 * StDev0, -shift) ); fd2 = SelectedValue(Ref(SDP2 * StDev0, -shift) ); fd3 = SelectedValue(Ref(SDP3 * StDev0, -shift) ); ys = SelectedValue(ValueWhen(x, aa, 1)); yi = SelectedValue(ValueWhen(x, bb, 1)); xs = sx - pds; d = ext;//Shift Line Right xe = xs + pds + d; ye = ys + yi * (xe - xs); sty = 1|32|2048; Plot(LineArray(xs-d,ys,xe-d,ye,1),"",Collg,sty,0,0,d); Plot(LineArray(xs-d,ys-fd1,xe-d,ye-fd1,1),"",Colsd1,sty,0,0,d); Plot(LineArray(xs-d,ys+fd1,xe-d,ye+fd1,1),"",Colsd1,sty,0,0,d); Plot(LineArray(xs-d,ys-fd2,xe-d,ye-fd2,1),"",Colsd2,sty,0,0,d); Plot(LineArray(xs-d,ys+fd2,xe-d,ye+fd2,1),"",Colsd2,sty,0,0,d); Plot(LineArray(xs-d,ys-fd3,xe-d,ye-fd3,1),"",Colsd3,sty,0,0,d); Plot(LineArray(xs-d,ys+fd3,xe-d,ye+fd3,1),"",Colsd3,sty,0,0,d); _SECTION_END();