Stock Portfolio Organizer
The ultimate porfolio management solution.
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Alternate Parabolic Sar for Amibroker (AFL)
This is manual sar calculated by some one allready but i have made certain changes.
for better result. It can be used in any time frame.
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 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | _SECTION_BEGIN ( "HEIKENASHI" ); SetChartBkGradientFill ( ParamColor ( "BgTop" , colorWhite ), ParamColor ( "BgBottom" , colorWhite ), ParamColor ( "Titleblock" , colorLightGrey )); SetChartOptions (0, chartShowArrows | chartShowDates ); GraphXSpace =5; p= Param ( "Period" ,6,2,30,1); Om= MA ( O ,p); hm= MA ( H ,p); lm= MA ( L ,p); Cm= MA ( C ,p); HACLOSE=(Om+Hm+Lm+Cm)/4; HaOpen = AMA ( Ref ( HaClose, -1 ), 0.5 ); HaHigh = Max ( Hm, Max ( HaClose, HaOpen ) ); HaLow = Min ( Lm, Min ( HaClose, HaOpen ) ); //PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, "" + Name(), colorWhite, styleCandle | styleNoLabel ); _SECTION_END (); _SECTION_BEGIN ( "4" ); 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( C, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); TP = ( H + L )/2; r = WMA (HACLOSE, 4); // *BEGIN Parabolic SAR Indicator HH = HHV (r, 2); LL = LLV (r, 2); EnableScript ( "vbscript" ); psar = LL; <% Function Min ( x, y, z ) If x < y Then Min = x Else Min = y End If If z < Min Then Min = z End If End Function Function Max ( x, y, z ) If x > y Then Max = x Else Max = y End If If z > Max Then Max = z End If End Function StartAF = 0.02 ' //acceleration factor MaxAF = 0.1 ' //max acceleration r = AFL ( "r" ) HH = AFL ( "HH" ) LL = AFL ( "LL" ) psar = AFL ( "psar" ) psar( 0 ) = r( 0 ) ' initialize LongPos = 1 ' assume long for initial conditions af = StartAF ' init acelleration factor ep = LL( 0 ) ' init extreme point hp = HH( 0 ) lp = LL( 0 ) For i = 2 To UBound( r ) If LongPos Then psar( i ) = psar( i-1 ) + af * ( hp - psar( i-1 ) ) Else psar( i ) = psar( i-1 ) + af * ( lp - psar ( i-1 ) ) End If reverse = 0 ' check for reversal If LongPos Then If LL( i ) < psar ( i ) Then LongPos = 0 reverse = 1 ' //reverse position to short psar( i ) = hp ' //sar is high point in prev trade lp = LL( i ) af = StartAF End If Else If HH( i ) > psar( i ) Then LongPos = 1 reverse = 1 ' //reverse position to long psar( i ) = lp hp = HH( i ) af = StartAF End If End If If reverse = 0 Then If LongPos Then If HH( i ) > hp Then hp = HH( i ) af = af + StartAF af = Min ( af, MaxAF, MaxAF ) End If psar( i ) = Min ( psar( i ), LL( i - 1 ), LL ( i-2 ) ) Else If LL( i ) < lp Then lp = LL( i ) af = af + StartAF af = Min ( af, MaxAF, MaxAF ) End If psar( i ) = Max ( psar( i ), HH( i - 1 ), HH( i-2 ) ) End If End If Next AFL( "psar" ) = psar %> //Graph0 = Close; //Graph0Style = 64 +32 ; //graph0Style = 128 +32 ; //Graph0BarColor=1; Graph1 = psar; //Graph1Style = 8 + 16 + 32; //Graph1Color = 8; Title= Name () + " - Custom PSAR = " + WriteVal (psar); Plot (psar, "" , colorGreen , styleNoLine | styleDots ); mid = WMA (r, 50); a = StDev (r, 50); a2 = a * 2.1; a1 = WMA (a2, 50); ub = mid + a1; lb = mid - a1; //Plot( mid, "mid", colorGrey40 ); //Plot( ub, "ub", colorGrey40 ); //Plot( lb, "lb", colorGrey40 ); line = ub; line1 = lb; //Plot(line,"ma"+WriteVal(line,0),IIf(Ref(line,-1)>line,colorRed,IIf(ref(line,-1)<line,colorGreen,coloryellow)),styleLine,Null,Null,Null,Null,3); //Plot(line1,"ma"+WriteVal(line,0),IIf(Ref(line,-1)>line,colorRed,IIf(ref(line,-1)<line,colorGreen,coloryellow)),styleLine,Null,Null,Null,Null,3); TEMA2 = TEMA (r, 100); //Plot( TEMA2, "TEMA2", colorGrey40 ); _SECTION_END (); |
2 comments
Leave Comment
Please login here to leave a comment.
Back
hdhamnaskar, what makes this is different compared to the regular Parabolic SAR?
Dear faJRi,
This is an alternate tool for calculating far
We can use it by creating double time frame in a single chart using different parameters and and changing settings.
For example
1 MIN SAR GIVES TO MANY FALSE SIGNALS AS COMPARE TO 5 MIN CHART
WITH THE HELP OF ALTERNATE SAR
U CAN DRAW 5 MIN SAR IN 1 MIN CHART
IN THE PRESENCE OF 1 MIN SAR.
JUST CHANGE SOME SETTINGS AND COLOR OPTIONS FOR SAR