Stock Portfolio Organizer
The ultimate porfolio management solution.
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Magical Trend Indicator for Amibroker (AFL)
credit goes to http://www.nascenttraders.com Mr. Rakesh Solanki
Very good trading system with buy/sell signal with less number of signals, thereby avoiding false signals.
Screenshots
Indicator / Formula
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | /*Magical Trend Indicator with update Created By : Rakesh Solanki For www.nascenttraders.com Date: 11/02/2017*/ _SECTION_BEGIN ( "Magic Trend Indicator Update" ); SetBarsRequired ( sbrAll , sbrAll ); SetFormulaName ( "Magic Trend Indicator Update" ); SetOption ( "Initialequity" , 100000 ); SetOption ( "AccountMargin" , 0.25 ); SetOption ( "MinShares" , 1 ); MaxOpenPos = Param ( "MaxOpenPos" , 20, 1, 200, 1 ); SetOption ( "MaxOpenPositions" , MaxOpenPos ); SetOption ( "PriceBoundChecking" , 1 ); SetOption ( "CommissionMode" , 1 ); SetOption ( "CommissionAmount" , 0.01 ); PositionSize = -400 / ( MaxOpenPos ); P = Param ( "Period" ,20,2,25,1); m = Param ( "Multiplier" ,3,0.1,5,0.1); A = ATR (P); for (i=0;i<P;i++) { S[i] = C [i]-m*(A[i]); T[i] = 1; } for (i=P;i< BarCount ;i++) { if ( C [i] > S[i-1]) { if (T[i-1]==1) { S[i] = Max ( C [i] - m*A[i],S[i-1]); T[i] = 1; } else { S[i] = C [i] - m*A[i]; T[i] = 1; } } else { if (T[i-1]==-1) { S[i] = Min ( C [i] + m*A[i],S[i-1]); T[i] = -1; } else { S[i] = C [i] + m*A[i]; T[i] = -1; } } } Buy = Cover = C >S; Short = Sell = C <S; Buy = ExRem ( Buy , Sell OR Short ); Sell = ExRem ( Sell , Buy ); Short = ExRem ( Short , Cover OR Buy ); Cover = ExRem ( Cover , Short ); BuyPrice = ValueWhen ( Buy , C ,1); SellPrice = ValueWhen ( Sell , C ,1); ShortPrice = ValueWhen ( Short , C ,1); CoverPrice = ValueWhen ( Cover , C ,1); Offset = -12; PlotShapes ( Buy * shapeUpArrow , colorBrightGreen ,0, Min (S, L ),Offset); PlotShapes ( Short * shapeDownArrow , colorRed ,0, Max (S, H ),Offset); PlotShapes ( Cover * shapeHollowUpArrow , colorBrightGreen ,0, Min (S, L ),Offset); PlotShapes ( Sell *shapeHollowDownArrow, colorRed ,0, Max (S, H ),Offset); SetChartOptions (0, chartShowArrows | chartShowDates ); _N (Title = StrFormat ( "{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}" , O , H , L , C , SelectedValue ( ROC ( C , 1 ) ) )); Plot (S, "STOP" , IIf ( C >S, colorBrightGreen , colorRed ), styleDots | styleStaircase | styleThick | styleNoTitle ); PlotOHLC ( O , H , L , C , "Close" , colorDefault , styleCandle | styleNoTitle ); GfxSetOverlayMode (1); GfxSelectFont ( "Verdana" , 12, 800, True ); GfxSetBkMode (0); GfxSetTextColor ( ColorRGB (18,18,18)); GfxTextOut ( "Created By: Rakesh Solanki" , 800 , 430 ); GfxSelectFont ( "Verdana" , 14, 800, True ); GfxSetBkMode (1); GfxTextOut ( "www.nascenttraders.com" , 800 ,400 ); Open_Long = Flip ( Buy , Sell ); Open_Short = Flip ( Sell , Buy ); Buy_Price = ValueWhen ( Buy , BuyPrice , 1 ); Short_Price = ValueWhen ( Short , ShortPrice , 1 ); Sell_Price = IIf ( Sell , ValueWhen ( Sell , SellPrice , 1 ), Short_Price ); Cover_Price = IIf ( Cover , ValueWhen ( Cover , CoverPrice , 1 ), Buy_Price ); Profit = IIf ( Open_Long, ( Close - Buy_Price ), IIf ( Open_Short, ( Short_Price - Close ), 0 ) ); Last_Profit = IIf ( Ref ( Open_Long, -1 ) == 1 AND Open_Long != 1, ( Sell_Price - Buy_Price ), IIf ( Ref ( Open_Short, -1 ) == 1 AND Open_Short != 1, ( Short_Price - Cover_Price ), 0 ) ); Cum_Profit[0] = Last_Profit[0]; PreviousProfit = ValueWhen (Last_Profit!=0,Last_Profit,1); for ( i = 1;i < BarCount ;i++ ) { Cum_Profit[i] = Cum_Profit[i-1] + Last_Profit[i]; } Trade[0] = 0; for ( i = 1;i < BarCount ;i++ ) { if ( Buy [i] == 1 OR Short [i] == 1 ) { Trade[i] = Trade[i-1] + 1; } else { Trade[i] = Trade[i-1]; } } // Trade Report // TR = ParamToggle ( "Trade Report" , "Show|Hide" , 1 ); if ( TR == 1 ) { GfxSelectFont ( "Verdana" , 10, 100 ); GfxSetBkMode ( 1 ); GfxSetTextColor ( ColorRGB (50,50,50) ); y = Status ( "pxchartheight" ); GfxTextOut ( ( "Total Trades : " + WriteVal ( Trade, 3.0 ) ), 13, y - 125 ); GfxTextOut ( ( "Total Profit : " + WriteVal ( Cum_Profit, 4.2 ) ), 13, y - 100 ); GfxTextOut ( ( "Previous Profit : " + WriteVal ( PreviousProfit, 2.2 ) ), 13, y - 50 ); GfxTextOut ( ( "Price : " + WriteVal ( Close , 2.2 ) ), 13, y - 75 ); GfxTextOut ( ( "Current Profit : " + WriteVal ( Profit, 2.2 ) ), 13, y - 25 ); } _SECTION_END (); |
4 comments
Leave Comment
Please login here to leave a comment.
Back
How do i test this system…
exploration possible ?
It has Buy and Sell rules so you can run a scan.
Scan result gives the following error,
Error 10 Array subscription out of Range