@lizzie
To calculate the Parabolic SAR (Stop and Reverse) using Lua, follow these steps:
1 2 3 4 5 6 7 8 |
local acceleration = 0.02
local maxAcceleration = 0.2
local initialAcceleration = acceleration
local high = {}
local low = {}
local sar = {}
local trend = {}
|
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 |
function calculateSAR()
for i = 1, #close do
if i == 1 then
sar[i] = low[i]
trend[i] = "up"
acceleration = initialAcceleration
else
if trend[i - 1] == "up" then
sar[i] = sar[i - 1] + acceleration * (high[i - 1] - sar[i - 1])
if sar[i] > low[i] then
sar[i] = low[i]
end
if high[i] > high[i - 1] then
acceleration = acceleration + initialAcceleration
end
else
sar[i] = sar[i - 1] + acceleration * (low[i - 1] - sar[i - 1])
if sar[i] < high[i] then
sar[i] = high[i]
end
if low[i] < low[i - 1] then
acceleration = acceleration + initialAcceleration
end
end
if trend[i] == "up" then
if low[i] < sar[i] then
trend[i] = "down"
sar[i] = high[i - 1]
acceleration = initialAcceleration
end
else
if high[i] > sar[i] then
trend[i] = "up"
sar[i] = low[i - 1]
acceleration = initialAcceleration
end
end
end
end
end
|
1
|
calculateSAR() |
This code snippet outlines the basic approach to calculating the Parabolic SAR values using Lua. Modify and adapt the code to fit your specific requirements and preferences.