можно задавать свои параболы гиперболы… рынок по ним работает т.к. скорости изменения рынка большие в связи все с большей автоматизацией на нем
в данном случае используется формула ax^2+bx+с, и тут гипербола 0,0005x^3+0x+275 на периоде от 19.07.2021-15.10.2021
для гиперболы было бы правильно задать ax^3+bx^2+cx+d, но это уже сами можете подправить
--[[
вопросы к автору: https://smart-lab.ru/profile/autotrade/
Индикатор: Кривая/прямая
параметры:
Procent - процент зигзага
--]]
Settings={
Name="CURV_Templ",
day=1,
month=1,
year=2022,
day2=1,
month2=12,
year2=2022,
a=0.0,
b=0.0,
c=0.0,
mult=2.0,
line=
{
{
Name = "cur1",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0,0, 0)
}
}
}
function Init()
clc = {};
vl = {};
return 1
end
function OnCalculate(index)
v = nil
d = Settings.day
m = Settings.month
y = Settings.year
d2 = Settings.day2
m2 = Settings.month2
y2 = Settings.year2
a = Settings.a
b = Settings.b
c = Settings.c
mt = Settings.mult
vl[index]=nil
if T(index).day >= d and T(index).month >= m and T(index).year >= y then
clc[index]=1
else
clc[index]=0
end
if index-1 > 0 then
if clc[index-1]~=nil then
if clc[index-1]~=0 then
clc[index] = clc[index-1]+1
end
end
end
if T(index).day >= d2 and T(index).month >= m2 and T(index).year >= y2 then
clc[index]=0
end
if clc[index] ~= 0 then
if index-1 > 0 then
if vl[index-1] == nil then
vl[index-1] = C(index-1)
end
if vl[index-1] ~= nil then
vl[index] = a*clc[index]^mt+b*clc[index]+c
end
end
end
return vl[index]
end
t.me/autotradering
autotrade, да если бы на этом сайте так просто было… пока какой то рейтинг не наберешь не льзя
«Индуктировать» из «чёрного ящика» — значит просто шаманить.
if vl[index-1] == nil then
vl[index-1] = C(index-1)
end
if vl[index-1] ~= nil then
vl[index] = a*clc[index]^mt+b*clc[index]+c
end
В языке нет конструкции if-else, или автор просто не знает про нее?
если else поставищь то работать не будет
можно и так только сложный индикатор будет придется матрицы считать
Если получиться скидывай посмотрим вместе.