Пояснения.
Мой первый прибыльный на истории «Грааль» был написан в далёком 2012 году. Он показывал просто феноменальные результаты +100500.
Эйфория от собственной крутости прошла вместе с обнаружением маленькой ошибки, которая давала существенную несимметричность грааля к направлению открытия сделки.
Естественно, что когда эта несимметричность совпала с преимущественным направлением движения рынка, то и получился «Грааль».
С тех пор протестированы сотни чужих и десятки своих советников, миллионы настроек перебраны тестером.
Но лишь один вывод является достоверным и доказанным:
— Теорема 1.
Утверждение:
На истории всегда можно построить гарантированно безубыточную модель по любому инструменту.
Доказательство:
Пусть t1, t2 — границы диапазона истории,C(t1), C(t2) — начальное и конечное значения цены инструмента.
Если C(t1)<С(t2), то в точке t1 открываем сделку на покупку и в точке t2 имем прибыль (безубыток),
Если C(t1)>С(t2), то в точке t1 открываем сделку на продажу и в точке t2 имем прибыль (безубыток),
Если C(t1)=С(t2), то ничего не делаем и в точке t2 имеем безубыток.
— конец теоремы 1
Эта примитивная теорема, как не странно в самом общем виде описывает большинство прибыльных на истории торговых систем.
В любой из них так или иначе дается преимущество главному направлению движения цены.
Какие ещё строго доказуемые теоремы возможны на истории ценовых движений?
Как их соотносить с прибыльной торговлей?
Прошу выкладывать свои соображения с более-менее существенным математическим (или логическим) обоснованием.
Settings =
{Name = «Fracta_l»,
period=31,
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