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 ....
A niceTrading Sys -- asfa.alam for Amibroker (AFL)
Copy & Paste Friendly
Back
GfxSetOverlayMode(1); GfxSelectFont("Tahoma", Status("pxheight")/13 ); GfxSetTextAlign( 6 );// center alignment GfxSetTextColor( ParamColor("Text Color", ColorHSB( 42, 42, 42 ) )); GfxSetBkMode(0); // transparent GfxTextOut( Name(), Status("pxwidth")/2, Status("pxheight")/7); GfxSelectFont("Tahoma", Status("pxheight")/17 ); GfxTextOut( "Otithi Lozz", Status("pxwidth")/2, Status("pxheight")/2.6 ); GfxSelectFont("Tahoma", Status("pxheight")/40 ); GfxTextOut( "http://www.facebook.com/OtithiLozz", Status("pxwidth")/2, Status("pxheight")/2.1); GfxSetBkColor(colorBlack); GfxSetTextColor( colorYellow ); GfxSelectFont("Edwardian Script ITC", 25, 500, True ); GfxTextOut(" O tithi Lo z z ", 960 , 0 ); T=Max(Ref(H,-1),Ref(H,-2)); M=Max(Ref(H,-2),Ref(H,-3)); S=Max(T,M); p=Min(Ref(L,-1),Ref(L,-2)); k=Min(Ref(L,-2),Ref(L,-3)); r=Min(p,k); PeriodEMA = 13; MACDIndicatorRange = 50; // Volume filter VolumeFilter = Param( "Volume MA filter", 100000, 50000, 500000, 100000 ); Timeframe = Interval(2); if( Timeframe == "5-day" || Timeframe == "Weekly" ) { VolumeFilter = VolumeFilter * 5; } else if( Timeframe == "Monthly") { VolumeFilter = VolumeFilter * 20; } else if( Timeframe != "Daily" ) { VolumeFilter = 0; } MACDDivMinWidth = Param("Divergence min width", 4, 1, 10, 1 ); HistMinWidth = Param("Histogram min width", 4, 1, 10, 1 ); PeriodEMA = Optimize( "PeriodEMA ", 13, 5, 23, 1 ); // Other parameters OpenPositions = 10; ATRPeriod = 5; InitialCapital = 100000; PeriodFast = Param( "Fast EMA", 12, 2, 200, 1 ); PeriodSlow = Param( "Slow EMA", 26, 2, 200, 1 ); PeriodSignal = Param( "Signal EMA", 9, 2, 200, 1 ); MACDInd = MACD(PeriodFast, PeriodSlow ); SigInd = Signal(PeriodFast, PeriodSlow , PeriodSignal ); HistInd = MACDInd - SigInd ; _N( macdStr = WriteVal( PeriodFast, 1.0 )+","+WriteVal( PeriodSlow , 1.0 ) ); _N( sigStr = macdStr + ","+WriteVal( PeriodSignal , 1.0 ) ); // Get displayed min and max value of MACD and MACD-H, to rescale it for better visibility scMACDMax = LastValue(HHV(Max(MACDInd, sigInd), BarsSince( Status("barvisible") AND NOT Ref(Status("barvisible"),-1) ))); scMACDMin = LastValue(LLV(Min(MACDInd, sigInd), BarsSince( Status("barvisible") AND NOT Ref(Status("barvisible"),-1) ))); scaleMACD = Max( abs(scMACDMax), abs(scMACDMin) ); scHistMax = LastValue(HHV(HistInd, BarsSince( Status("barvisible") AND NOT Ref(Status("barvisible"),-1) ))); scHistMin = LastValue(LLV(HistInd, BarsSince( Status("barvisible") AND NOT Ref(Status("barvisible"),-1) ))); scaleHist = Max( abs(scHistMax), abs(scHistMin) ); _SECTION_BEGIN("Patterns Wave"); Change = Param("Wave Period",7,0,100,1); SupResA = Param("Sup-Res A Period",20,0,100,1); SupResB = Param("Sup-Res B Period",25,0,100,1); Res1 = ParamColor("Resistance High", colorYellow+9 | styleThick); Res2 = ParamColor("Resistance Low", colorYellow +10| styleThick); Sup1 = ParamColor("Support High", colorRed+2| styleThick); Sup2 = ParamColor("Support Low", colorRed+12| styleThick); procedure PlotShapeAt( x, y, shape, shift ) { PlotShapes( IIf( BarIndex() == x, shape, 0 ), colorWhite, 0, y, shift ); } bi = BarIndex(); sbi = SelectedValue( bi ); GraphXSpace = 2; Plot( Zig( C, Change ), "", colorYellow, styleDots | styleLine | styleThick ); upshift = 80; if( SelectedValue( PeakBars( C, Change ) < TroughBars( C, Change ) ) ) { pt1 = PeakBars( C, Change, 1 ) == 0 ; pt2 = TroughBars( C, Change, 1 ) == 0 ; } else { pt1 = TroughBars( C, Change, 1 ) == 0 ; pt2 = PeakBars( C, Change, 1 ) == 0 ; upshift = -upshift; } bpt1 = SelectedValue( ValueWhen( pt1, bi ) ); bpt2 = SelectedValue( ValueWhen( pt2, bi ) ); bpt3 = SelectedValue( ValueWhen( pt1, bi, 2 ) ); bpt4 = SelectedValue( ValueWhen( pt2, bi, 2 ) ); bpt5 = SelectedValue( ValueWhen( pt1, bi, 3 ) ); bpt6 = SelectedValue( ValueWhen( pt2, bi, 3 ) ); PlotShapeAt( bpt1, C, shapeDigit5, upshift ); PlotShapeAt( bpt2, C, shapeDigit4, -upshift ); PlotShapeAt( bpt3, C, shapeDigit3, upshift ); PlotShapeAt( bpt4, C, shapeDigit2, -upshift ); PlotShapeAt( bpt5, C, shapeDigit1, upshift ); _SECTION_END(); _SECTION_BEGIN("trend candle"); HaClose =EMA((O+H+L+C)/4,3); HaOpen = AMA( Ref( HaClose, -1 ), 0.5 ); HaHigh = Max( H, Max( HaClose, HaOpen ) ); HaLow = Min( L, Min( HaClose, HaOpen ) ); PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, "Modified " + Name(), colorBlue, styleCandle | styleNoLabel ); Title=""; _SECTION_END(); _SECTION_BEGIN("Unnamed 3"); pWMA1 = Param("WMA 1 period", 6, 1, 20, 1); pWMA2 = Param("WMA 2 period", 7, 1, 20, 1); fMA1 = WMA(HaClose , pWMA1); // calculate MA 1 fMA2 = WMA( (HaOpen + HaClose )/2, pWMA2); // original Plot(fMA1, "\nMA1(" + NumToStr(pWMA1, 1.0) + ")", colorWhite| styleThick); // plot the MA lines Plot(fMA2, "\nMA2(" + NumToStr(pWMA2, 1.0) + ")", colorBlack|styleThick); // plot the MA lines Plot( 2, "", IIf( fMA1>fMA2, colorBlue, colorRed),styleOwnScale|styleArea|styleNoLabel, -0.5, 100 ); _SECTION_END(); _SECTION_BEGIN("Pivot"); nBars = Param("Number of bars", 12, 5, 40); bShowTCZ = Param("Show TCZ", 1, 0, 1); nExploreBarIdx = 0; nExploreDate = 0; nCurDateNum = 0; DN = DateNum(); DT = DateTime(); bTCZLong = False; bTCZShort = False; nAnchorPivIdx = 0; ADX8 = ADX(8); if(Status("action")==1) { bDraw = True; bUseLastVis = 1; } else { bDraw = False; bUseLastVis = False; bTrace = 1; nExploreDate = Status("rangetodate"); for (i=LastValue(BarIndex());i>=0;i--) { nCurDateNum = DN[i]; if (nCurDateNum == nExploreDate) { nExploreBarIdx = i; } } } GraphXSpace=7; if (bDraw) { } 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; aHHVBars = HHVBars(H, nBars); aLLVBars = LLVBars(L, nBars); aHHV = HHV(H, nBars); aLLV = LLV(L, nBars); 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] < aHHVBars[curBar]) curTrend = "D"; else curTrend = "U"; if (curBar >= 120) { for (i=0; i<120; i++) { curBar = IIf(nlastVisBar > 0 AND bUseLastVis, nlastVisBar-i, IIf(Status("action")==4 AND nExploreBarIdx > 0, nExploreBarIdx-i, LastValue(BarIndex())-i)); if (aLLVBars[curBar] < aHHVBars[curBar]) { if (curTrend == "U") { curTrend = "D"; curPivBarIdx = curBar - aLLVBars[curBar]; aLPivs[curPivBarIdx] = 1; aLPivLows[nLPivs] = L[curPivBarIdx]; aLPivIdxs[nLPivs] = curPivBarIdx; nLPivs++; } } else { if (curTrend == "D") { curTrend = "U"; curPivBarIdx = curBar - aHHVBars[curBar]; aHPivs[curPivBarIdx] = 1; aHPivHighs[nHPivs] = H[curPivBarIdx]; aHPivIdxs[nHPivs] = curPivBarIdx; nHPivs++; } } } } curBar = IIf(nlastVisBar > 0 AND bUseLastVis, nlastVisBar, IIf(Status("action")==4 AND nExploreBarIdx > 0, nExploreBarIdx, LastValue(BarIndex())) ); 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]; if (lastHPIdx > lastLPIdx) { if (aHPivHighs[0] < aHPivHighs[1]) { if (nLLVAfterLastPiv < aLPivLows[0] AND (nLLVIdxAfterLastPiv - lastHPIdx - 1) >= 1 AND nLLVIdxAfterLastPiv != curBar ) { aLPivs[nLLVIdxAfterLastPiv] = 1; aAddedLPivs[nLLVIdxAfterLastPiv] = 1; 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++; } } else { if (nLLVAfterLastPiv > aLPivLows[0] AND (nLLVIdxAfterLastPiv - lastHPIdx - 1) >= 1 AND nLLVIdxAfterLastPiv != curBar ) { aLPivs[nLLVIdxAfterLastPiv] = 1; aAddedLPivs[nLLVIdxAfterLastPiv] = 1; 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++; } } } else { if (aHPivHighs[0] < aHPivHighs[1]) { if (nHHVAfterLastPiv < aHPivHighs[0] AND (nHHVIdxAfterLastPiv - lastLPIdx - 1) >= 1 AND nHHVIdxAfterLastPiv != curBar ) { aHPivs[nHHVIdxAfterLastPiv] = 1; aAddedHPivs[nHHVIdxAfterLastPiv] = 1; for (j=0; j<nHPivs; j++) { aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-(j+1)]; aHPivIdxs[nHPivs-j] = aHPivIdxs[nhPivs-(j+1)]; } aHPivHighs[0] = nHHVAfterLastPiv; aHPivIdxs[0] = nHHVIdxAfterLastPiv; nHPivs++; } } else { if (nHHVAfterLastPiv > aHPivHighs[0] AND (nHHVIdxAfterLastPiv - lastLPIdx - 1) >= 1 AND nHHVIdxAfterLastPiv != curBar ) { aHPivs[nHHVIdxAfterLastPiv] = 1; aAddedHPivs[nHHVIdxAfterLastPiv] = 1; for (j=0; j<nHPivs; j++) { aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-(j+1)]; aHPivIdxs[nHPivs-j] = aHPivIdxs[nhPivs-(j+1)]; } aHPivHighs[0] = nHHVAfterLastPiv; aHPivIdxs[0] = nHHVIdxAfterLastPiv; nHPivs++; } } } } if (bDraw) { PivotEntry = ParamColor( "Entry Color", colorBrightGreen ); PivotEntry2 = ParamColor( "Entry Color2", colorYellow ); PivotExit = ParamColor( "Exit Color", colorRed ); PivotExit2 = ParamColor( "Exit Color2", colorYellow ); PlotShapes( IIf(aHPivs==1, shapeSquare, shapeNone), PivotExit, 0, High, Offset=80); PlotShapes( IIf(aAddedHPivs==1, shapeSquare, shapeNone), PivotExit2, 0, High, Offset=80); PlotShapes( IIf(aLPivs==1, shapeSquare , shapeNone), PivotEntry, 0, Low, Offset=-80); PlotShapes( IIf(aAddedLPivs==1, shapeSquare , shapeNone), PivotEntry2, 0, Low, Offset=-80); PlotShapes( IIf(aHPivs==1, shapeSquare, shapeNone), colorBlack, 0, High, Offset=85); PlotShapes( IIf(aAddedHPivs==1, shapeSquare, shapeNone), colorBlack, 0, High, Offset=85); PlotShapes( IIf(aLPivs==1, shapeSquare , shapeNone), colorBlack, 0, Low, Offset=-85); PlotShapes( IIf(aAddedLPivs==1, shapeSquare , shapeNone), colorBlack, 0, Low, Offset=-85); } risk = 0; profInc = 0; nLeg0Pts = 0; nLeg0Bars = 0; nLeg0Vol = 0; nLeg1Pts = 0; nLeg1Bars = 0; nLeg1Vol = 0; nLegBarsDiff = 0; nRtrc0Pts = 0; nRtrc0Bars = 0; nRtrc0Vol = 0; nRtrc1Pts = 0; nRtrc1Bars = 0; nRtrc1Vol = 0; minRtrc = 0; maxRtrc = 0; minLine = 0; maxLine = 0; triggerLine = 0; firstProfitLine = 0; triggerInc = 0; triggerPrc = 0; firstProfitPrc = 0; retrcPrc = 0; retrcBar = 0; retrcBarIdx = 0; retrcRng = 0; aRetrcPrc = H-H; aRetrcPrcBars = H-H; aRetrcClose = C; retrcClose = 0; if (nHPivs >= 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 = ( tcz500 >= (tcz786 * (1 - .005)) AND tcz618 <= (tcz786 * (1 + .005)) AND retrcClose >= ((1 - .01) * tcz618) AND retrcPrc <= ((1 + .01) * tcz500) ); } else if (nHPivs >= 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 = ( tcz500 <= (tcz786 * (1 + .005)) AND tcz618 >= (tcz786 * (1 - .005)) AND retrcClose <= ((1 + .01) * tcz618) AND retrcPrc >= ((1 - .01) * tcz500) ); } if (bTCZShort OR bTCZLong) { if (bTCZShort) { 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[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|styleNoTitle|Stylehidden); Plot( LineArray( IIf(bTCZLong, aHPivIdxs[0], aLPivIdxs[0]), tcz618, curBar, tcz618, 0), "tcz618", colorPaleBlue, styleLine|styleNoTitle|styleHidden); Plot( LineArray( IIf(bTCZLong, aHPivIdxs[0], aLPivIdxs[0]), tcz786, curBar, tcz786, 0), "tcz786", colorTurquoise, styleLine|styleNoTitle|StyleHidden); } } 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) + WriteVal(nRtrc1Pts, 2.1) + " \n" + WriteVal(nRtrc1Bars, 2.0); } _SECTION_END(); _SECTION_BEGIN("Support-Resistance"); MaxGraph = 12; BuyOffSet = SupResA; SellOffset = BuyOffSet; RegLength = 5; BuyATRPeriod = 2; SellATRPeriod = BuyATRPeriod; ATRMultiplier = 0.5; Graph8 = HHV(H-ATRMultiplier*ATR(BuyATRPeriod),BuyOffset); /* RED */ Graph9 = LLV(L+ATRMultiplier*ATR(SellATRPeriod),SellOffset) ; /* GREEN */ ave=(Graph8+Graph9)/2; Graph8Style=Graph9Style = styleNoTitle|styleLine|styleThick; Graph9Color= Sup1; /* 5 is green */ Graph8Color = Res2; /* 4 is red */ nn=SupResB; mmm=100; TYP=(High + Low + 2*Close)/4; CI=(TYP-MA(TYP,14))/(0.015*StDev(TYP,14)); CCCI=EMA(CI,5)+mmm; Hh=HHV(H,nn); Ll=LLV(L,nn); MM=(Hh+Ll)/2; CCCC=EMA(CCCI*(Hh-Ll)/(2*mmm)+Ll,5); Plot(Hh,"High Reistance",Res1,styleLine|styleNoTitle|styleThick) ; Plot(Ll,"Low Suport",Sup2,styleLine|styleNoTitle|styleThick); _SECTION_END(); _SECTION_BEGIN("Title"); if( Status("action") == actionIndicator ) ( Title = EncodeColor(colorWhite)+ Title = Name () + " | " +EncodeColor(colorYellow) + Date() + " | " +EncodeColor(colorTurquoise)+ "O : "+ EncodeColor(colorLightGrey)+ O + " | " +EncodeColor(colorTurquoise)+ "H : "+ EncodeColor(colorLightGrey)+ H + " | " +EncodeColor(colorTurquoise)+ "L : "+ EncodeColor(colorLightGrey)+ L + " | " +EncodeColor(colorTurquoise)+ "C : "+ WriteIf(C> Ref(C, -1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ C + " | " +EncodeColor(colorTurquoise)+ "Change : ("+ WriteIf(C> Ref(C, -1),EncodeColor(colorBrightGreen),EncodeColor(colorRed)) + WriteVal(C-Ref(C,-1))+" Tk." +EncodeColor(colorTurquoise)+ " /"+ WriteIf(C> Ref(C, -1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal( ROC( C, 1 ))+""+ " % " +EncodeColor(colorTurquoise)+ ") | Volume : " + WriteIf(V> Ref(V, -1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal(V,1) );