Избранное трейдера (1:10) || algo
В воскресенье 7 апреля я перебирал полки в шкафах, просматривая старые бумаги и выбрасывая те, которые уже не пригодятся. За долгое время накопилось много бесполезного хлама, который надо было выбросить. Какие-то старые чеки, квитанции, ненужные распечатки. Так я перебирал бумаги одну за другой, сортируя, что пойдет на выброс, а что еще может когда-то пригодиться, и вдруг на пол упала до боли знакомая старая затертая картонка. Боже мой! Как давно это было! Вроде бы не так уж давно, но на самом деле целую трейдерскую жизнь назад! Воспоминания нахлынули на меня…
Затертая замусоленная старая табличка, обычный кусок картонки и неаккуратно приклеенная скотчем распечатка. Но сколько денег она мне помогла заработать, а сколько денег благодаря ей я не потерял!

Табличка NineNot (9 “не”).
В первой части мы рассмотрели «теорему о средней волатильности» где, обозначили такое свойство:волатильности могут на разных таймфреймах значительно отличаться друг от друга. Но они всегда будут со временем сходится к одному значению.
Вот, на этом свойстве и будет построен индикатор. Для индикатора нам нужны волатильности на различных таймфреймах. В качестве индикатора волатильности берутся два стандартных индикатора, но которые по сущности показывают одно и тоже.
Price Channel (PC) или ценовой канал. Индикатор представляет из себя две линии, которые ограничивают канал колебаний цены. Верхняя граница канала обозначает уровень локального максимума за прошедшие N периодов, а нижняя граница – уровень локального минимума за тот же промежуток времени. Таким образом, цена ограничивается максимальными точками колебаний – экстремумами за N периодов.



DTI Algorithmic — финансовый советник на платформе Interactive Brokers (IB). За 10 лет на рынке мы успели поработать со многими российскими и иностранными брокерами, и в 2013 г. осознанно сделали выбор в пользу IB.
#справка Interactive Brokers LLC — американский онлайн—брокер. Материнская компания IB работает с 1978 года, ее номер в Комиссии по ценным бумагам и биржам США (SEC) — 0001381197. Данные о компании:


Уехал я не вчера, это было некоторое время назад, так что успел не только получить ВНЖ, но и продлял его, так что на эту тему тоже могу просветить. Единственное, на личные вопросы отвечать не буду ни в каком виде, можете не задавать. Вам всё равно не поможет, ибо у всех складывается по-разному, в этом деле много случайностей. Могу ответить как можно сделать, а как нет. Так что задавайте вопросы, на что-то отвечу сразу, на что-то отдельными постами позже, если тема этого требует. Другие посты о Словакии я вряд ли буду широко размещать в группах в ФБ и ВК из-за несоответствия темам групп, в которых я состою. Так что подписывайтесь и добавляйтесь в друзья в жж, если тема интересна и не хотите ничего пропустить.Однажды великий гуру трейдинга и знаток анекдотов Александр Михайлович (который Герчик) в одном из своих семинаров рассказал про один случай, когда он пытался алгоритмизировать работу с уровнями и нанял целого математика, чтобы тот разработал мат.аппарат и запрограммировал сигналы для отбоя/пробоя. Целый математик бился над задачей как рыба об лед, но, видимо, математик он был так себе и поэтому задачу решить не смог.
Даже я, на тот момент имеющий в активе три класса церковно-приходской, долго недоумевал, как можно было не решить такую простейшую задачу. Это же легче легкого, думал я: хочешь запрограммировать горизонтальные уровни — тупо вбей в систему справочник круглых чисел, хочешь запрограммировать вершину параболы — пиши регрессию. И так далее.
Потом времена ушли далеко вперед и появился Искусственный Интеллект (ИИ), который легко решает эту задачу, даже без понимания, как оно должно работать.
Собственно, ИИ появился еще лет 50 назад. Но в те давние времена (уже почти былинные), когда и трава была зеленее и небо голубее, компьютерное железо было не способно решать задачи такого уровня. Сегодня ситуация изменилась.


Settings=
{
Name = "Zigzag2", -- название индикатора
delta=2, -- параметр индикатора
line=
{
{
Name = "zigzagline2",
Type =TYPE_LINE,
Width = 2,
Color = RGB(120,90, 140)
}
}
}
function Init()
vMin = 0
vMax = 0
vMinindex = 0
vMaxindex = 0
voldMinindex = 0
voldMaxindex = 0
return 1
end
function OnCalculate(index)
local printz = 0
if index == 1 then
vMin = C(index)
vMax = C(index)
vMinindex = index
vMaxindex = index
voldMinindex = index
voldMaxindex = index
ve = C(index)
else
if voldMaxindex >= voldMinindex then
if C(index) > (1 + Settings.delta/100)*vMin then
vMin = C(index)
vMax = C(index)
vMaxindex = index
voldMinindex = vMinindex
vFrom = voldMaxindex
vTo = vMinindex
printz = 1
else
if vMin > C(index) then
vMin = C(index)
vMinindex = index
vFrom = voldMaxindex
vTo = index
printz = 0
else
vFrom = vMinindex
vTo = index
printz = 0
end
end
else
if voldMaxindex <= voldMinindex then
if C(index) < (1 - Settings.delta/100)*vMax then
vMax = C(index)
vMin = C(index)
vMinindex = index
voldMaxindex = vMaxindex
vFrom = voldMinindex
vTo = vMaxindex
printz = 1
else
if vMax < C(index) then
vMax = C(index)
vMaxindex = index
vFrom = voldMinindex
vTo = index
printz = 0
else
vFrom = vMaxindex
vTo = index
printz = 0
end
end
end
end
if (printz == 1) or (Size() == index) then
for i = vFrom, vTo do
k = (C(vTo)- C(vFrom))/(vTo- vFrom);
v = i*k + C(vTo) - vTo*k
SetValue(i, 1, v)
ve = v
end
if (Size() == index) then
ve = C(index)
if voldMaxindex >= voldMinindex then
vFrom = voldMaxindex
vTo = vMinindex
end
if voldMaxindex <= voldMinindex then
vFrom = voldMinindex
vTo = vMaxindex
end
for i = vFrom, vTo do
k = (C(vTo)- C(vFrom))/(vTo- vFrom);
v = i*k + C(vTo) - vTo*k
SetValue(i, 1, v)
end
end
end
end
return ve
end