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 ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

Alternate Parabolic Sar for Amibroker (AFL)

Rating:
3 / 5 (Votes 2)
Tags:
amibroker

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

Copy & Paste Friendly
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

1. Fajri

hdhamnaskar, what makes this is different compared to the regular Parabolic SAR?

2. hdhamnaskar

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

Leave Comment

Please login here to leave a comment.

Back