@filiberto
To calculate Parabolic SAR using Visual Basic, you can follow these steps:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Dim AF As Double Dim SAR As Double Dim EP As Double Dim high As Double Dim low As Double Dim direction As Integer Dim previous_direction As Integer AF = 0.02 SAR = High ' use the current high as starting value for SAR EP = Low ' use the current low as the extreme point direction = 1 ' initialize the direction as upward previous_direction = -1 ' initialize the previous direction as downward |
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 |
For i = 1 To DataPoints.Count If direction = 1 Then ' calculate SAR for uptrend If DataPoints(i).Low < SAR Then direction = -1 ' change direction to downward SAR = High EP = Low AF = 0.02 End If ElseIf direction = -1 Then ' calculate SAR for downtrend If DataPoints(i).High > SAR Then direction = 1 ' change direction to upward SAR = Low EP = High AF = 0.02 End If End If If direction = 1 Then ' calculate SAR for uptrend If DataPoints(i).High > EP Then EP = DataPoints(i).High AF = AF + 0.02 If AF > 0.2 Then AF = 0.2 End If End If ElseIf direction = -1 Then ' calculate SAR for downtrend If DataPoints(i).Low < EP Then EP = DataPoints(i).Low AF = AF + 0.02 If AF > 0.2 Then AF = 0.2 End If End If End If If direction = 1 Then ' calculate SAR for uptrend If i > 1 And DataPoints(i).High > DataPoints(i - 1).High Then AF = AF + 0.02 If AF > 0.2 Then AF = 0.2 End If End If ElseIf direction = -1 Then ' calculate SAR for downtrend If i > 1 And DataPoints(i).Low < DataPoints(i - 1).Low Then AF = AF + 0.02 If AF > 0.2 Then AF = 0.2 End If End If End If SAR = SAR + AF * (EP - SAR) Next i |
1 2 3 |
For i = 1 To DataPoints.Count Console.WriteLine("SAR for data point " & i & ": " & SAR) Next i |
By following these steps, you can calculate the Parabolic SAR values using Visual Basic for your trading or analysis purposes.