Добрый день .
Народ, очень нужна ваша помощь по данному индикатору. А если кто поделится готовым, буду очень благодарен.
Намедни решил поколдовать с фрактальным индикатором, так что бы фракталы растянуть по уровню.
В итоге вот что у меня получилось. Не ахти, сразу скажу.
Я конечно не спец в программировании, только учусь, поэтому и обращаюсь сюда за помощью.
Как его исправить, что бы фрактальный уровень рисовался с самого начала (там где треугольники на картинке, это обычный индикатор фрактала) и заканчивался в том случае когда цена пересечёт этот уровень выше или ниже.
Вот сам индикатор:
Settings =
{Name = "Fracta_l",
period=21,
line =
{{
Name = "Level_High",
Color = RGB(0,255,0),
Type = TYPE_POINT,
Width = 1
},{
Name = "Level_Low",
Color = RGB(255,0,0),
Type = TYPE_POINT,
Width = 1
}}}
idx_prosl=0
function Init()
return #Settings.line
end
function OnCalculate(idx)
if idx==1 then
P = math.floor(Settings.period/2)*2+1
t_H,t_L={},{}
end
if idx~=nil and idx>P then
if idx_prosl~=idx then
local l=idx-P
for l=l,idx-1 do
t_H[l]=H(l)
t_L[l]=L(l)
end
if t_H[#t_H-(P-1)/2]==math.max(unpack(t_H,#t_H-P+1,#t_H)) then
H_ind_value=t_H[#t_H-(P-1)/2]
end
if t_L[#t_L-(P-1)/2]==math.min(unpack(t_L,#t_L-P+1,#t_L)) then
L_ind_value=t_L[#t_L-(P-1)/2]
end
end
else
H_ind_value=nil
L_ind_value=nil
end
idx_prosl=idx
return H_ind_value, L_ind_value
end
Народ, очень нужна ваша помощь по данному индикатору. А если кто поделится готовым, буду очень благодарен.
Намедни решил поколдовать с фрактальным индикатором, так что бы фракталы растянуть по уровню.
В итоге вот что у меня получилось. Не ахти, сразу скажу.
Я конечно не спец в программировании, только учусь, поэтому и обращаюсь сюда за помощью.
Как его исправить, что бы фрактальный уровень рисовался с самого начала (там где треугольники на картинке, это обычный индикатор фрактала) и заканчивался в том случае когда цена пересечёт этот уровень выше или ниже.
Вот сам индикатор:
Settings =
{Name = "Fracta_l",
period=21,
line =
{{
Name = "Level_High",
Color = RGB(0,255,0),
Type = TYPE_POINT,
Width = 1
},{
Name = "Level_Low",
Color = RGB(255,0,0),
Type = TYPE_POINT,
Width = 1
}}}
idx_prosl=0
function Init()
return #Settings.line
end
function OnCalculate(idx)
if idx==1 then
P = math.floor(Settings.period/2)*2+1
t_H,t_L={},{}
end
if idx~=nil and idx>P then
if idx_prosl~=idx then
local l=idx-P
for l=l,idx-1 do
t_H[l]=H(l)
t_L[l]=L(l)
end
if t_H[#t_H-(P-1)/2]==math.max(unpack(t_H,#t_H-P+1,#t_H)) then
H_ind_value=t_H[#t_H-(P-1)/2]
end
if t_L[#t_L-(P-1)/2]==math.min(unpack(t_L,#t_L-P+1,#t_L)) then
L_ind_value=t_L[#t_L-(P-1)/2]
end
end
else
H_ind_value=nil
L_ind_value=nil
end
idx_prosl=idx
return H_ind_value, L_ind_value
end