Избранное трейдера АлексейФ
Общаюсь с одним знакомым. Молодой студент, скальпинг любит, впрочем, как и многие нетерпеливые трейдеры. Сразу оговорюсь, что скальпинг — очень тяжелый вид спекуляций. Но торгует он не часто, 3-5 дней в месяц, этого хватает, чтобы выглядеть не как выжатый лимон и снимать деньги с рынка.
Трейдером его назвать язык не повернется, но уже второй год все еще снимает сливки с рынка. Вчера мне прислал свою работу по Доллар-Рублю, на что ожидал наверное услышать от меня признания, что он крут.
привет!
у меня в квике стояла камарилла аж с 2014 года, когда вы выложили здесь этот индикатор.
квик обновился до 8 и камарилла пропала.
это не исправить?
-- Camarilla.lua
Settings={
Name = "Camarilla",
period = 'D',
line =
{
{Name = "S5", Color = RGB(255, 0, 0), Type = 1, Width = 2},
{Name = "S4", Color = RGB(255, 165, 0), Type = 1, Width = 2},
{Name = "S3", Color = RGB(255, 255, 0), Type = 1, Width = 2},
{Name = "PP", Color = RGB(0, 255, 0), Type = 1, Width = 2},
{Name = "R3", Color = RGB(0, 191, 255), Type = 1, Width = 2},
{Name = "R4", Color = RGB(0, 0, 255), Type = 1, Width = 2},
{Name = "R5", Color = RGB(139, 0, 255), Type = 1, Width = 2},
}
}
local math_floor = math.floor
local levels = 0
local ydH, ydL, ydC, ydO = {},{},{},{}
local PP, R3, R4, R5 = 0,0,0,0
local S3, S4, S5 = 0,0,0
local delta = 0
local cl = 0
local predThisDay=0
local function dTs(t) return 100*(100*t.year+t.month)+t.day; end
local OldDay = '' -- для выделения начала торгового дня
function Init ()
local t=getDataSourceInfo()
local tt = t.interval
if tt == -3 then
message('Месячный график не обрабатывается.',1)
return
end
return 7
end
function OnCalculate (index)
local time tt=T(index); ---время из свечи
--local ThisDay=dTs(tt) -- дата в формате yyyyMMdd
local tDay=dTs(tt) -- дата в формате yyyyMMdd
local ThisDay = tDay
if Settings.period == 'W' then
ThisDay=tt.week_day -- номер недели
end
if index == 1 then
--message('First ThisDay = '..tostring(ThisDay),1)
local t=getDataSourceInfo()
--7.2.5 Функция предназначена для получения информации об источнике данных для индикатора.
local scale = getSecurityInfo(t.class_code, t.sec_code).scale -- NUMBER, Количество значащих цифр после запятой
mul = 10^scale -- возведение в степень
local tt = t.interval
if tt == -3 then tt = 'месяц'
elseif tt == -2 then tt = 'неделя'
elseif tt == -1 then tt = 'день'
else
tt = tt..' мин.'
end
--message(t.sec_code..'('..t.class_code..'), цифр после запятой: '..scale..', mul = '..mul..', дата = '..ThisDay,1)
levels = levels + 1
if ThisDay ~= OldDay then
OldDay = ThisDay
end
predThisDay = ThisDay
--
delta = H(index) - L(index)
cl = C(index)
R5 = (H(index) / L(index))*cl
calcLevels(index)
local per = 'daily'
if Settings.period == 'W' then
per = 'weekly'
end
message('Camarilla '..per..', Т = '..tt..', © xsharp.ru 20.06.2015', 1)
return
end
if Settings.period == 'W' then
if ThisDay < OldDay then -- для неделек
OldDay = OldDay + 1
if OldDay ~= ThisDay then
OldDay = ThisDay
end
levels = levels + 1
delta = ydH[levels-1] - ydL[levels-1]
cl = ydC[levels-1]
R5 = (ydH[levels-1] / ydL[levels-1])*cl
calcLevels(index)
--if index<120 then
--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
--end
predThisDay = ThisDay
else
if ThisDay ~=predThisDay then
--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
predThisDay = ThisDay
OldDay = OldDay + 1
end
ThisDayF(index)
end
elseif Settings.period == 'D' then
if ThisDay ~= OldDay then -- для дневок
OldDay = OldDay + 1
if OldDay ~= ThisDay then
OldDay = ThisDay
end
levels = levels + 1
delta = ydH[levels-1] - ydL[levels-1]
cl = ydC[levels-1]
R5 = (ydH[levels-1] / ydL[levels-1])*cl
calcLevels(index)
--if index<120 then
--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
--end
predThisDay = ThisDay
else
if ThisDay ~=predThisDay then
--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
predThisDay = ThisDay
OldDay = OldDay + 1
end
ThisDayF(index)
end
elseif Settings.period == 'H4' then
if ThisDay ~= OldDay then -- для дневок
OldDay = OldDay + 1
if OldDay ~= ThisDay then
OldDay = ThisDay
end
levels = levels + 1
delta = ydH[levels-1] - ydL[levels-1]
cl = ydC[levels-1]
R5 = (ydH[levels-1] / ydL[levels-1])*cl
calcLevels(index)
--if index<120 then
--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
--end
predThisDay = ThisDay
else
if ThisDay ~=predThisDay then
--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
predThisDay = ThisDay
OldDay = OldDay + 1
end
ThisDayF(index)
end
end
return S5, S4, S3, cl, R3, R4, R5
end
function round(value)
return math_floor(value*mul + 0.5) / mul
end
function ThisDayF(index)
ydC[levels] = C(index)
if H(index) > ydH[levels] then
ydH[levels] = H(index)
end
if L(index) < ydL[levels] then
ydL[levels] = L(index)
end
end
function calcLevels(index)
ydO[levels] = O(index)
ydH[levels] = H(index)
ydL[levels] = L(index)
ydC[levels] = C(index)
--
R3 = cl + delta * 1.1/4
R4 = cl + delta * 1.1/2
--
S3 = cl - delta * 1.1/4
S4 = cl - delta * 1.1/2
S5 = cl - (R5-cl)
--
R5 = round(R5)
R4 = round(R4)
R3 = round(R3)
S3 = round(S3)
S4 = round(S4)
S5 = round(S5)
end
Устойчивые долгосрочные модели
В предыдущих частях (часть 1, часть 2) мы рассмотрели построение композитных систем оценок ценных бумаг, построенных при помощи распространённых средств машинного обучения (Bag/Boost методы). Однако, такой подход, несмотря на все свои преимущества (скорость, точность) имеет ряд больших недостатков – отсутствие универсальности моделей в результате проблем «переобучения» (точной настройки на определённые типы рынков и временные интервалы) и сложность интерпретации полученных композиций.
В результате решения этих проблем мы разработали базовую модель на основе наших представлений о стохастических дифференциальных уравнениях с квантовыми скачками, образующих улыбку волатильности. Эта макромодель получила в наших исследованиях наиболее полную микроскопическую интерпретацию.

Если читать об этом сейчас, одной из предпосылок называют азиатский кризис. Однако, в реальности, на него мало кто обращал внимание, российский рынок рос вплоть до резкого падения Доу 27 октября 1997 г. на 554 пункта (с 7715 до 7161, 7,18%). Именно это событие можно считать первым триггером. Вместе с ним упала и нефть, за которой, к слову, мало кто следил. Утром следующего дня укатали и российскую фонду.В прошлом посте я предположил, что снижение ставки ФРС подтвердило переключение рынка из стадии пика в стадию рецессии.
В этом попробую выбрать подходящие инвестиционные инструменты для различных её типов.
Вероятные сценарии развития экономики можно представить в виде вот такой матрицы:

Международный банк прогнозирует замедление экономики. А это и называется рецессией.
Есть два типа рецессии:
Добрый день!
С 1 января 2020 года каждый инвестор, который имеет брокерский счет у зарубежного брокера, обязан будет сдавать Отчет о движении денежных средств. Правильно называется такой документ – «Отчет о движении средств физического лица – резидента по счету (вкладу) в банке за пределами территории Российской Федерации».
Все дело в том, что в Федеральный закон «О валютном регулировании и валютном контроле» были внесены изменения, которые вступают в силу с нового года (изменения вносятся Федеральным законом от 02.08.2019 г. № 265-ФЗ).
В частности, изменения коснулись статьи 12 указанного закона. Посмотрите ниже на фото, как изменилось название статьи…
Здравствуйте, дамы и господа!
Наверное, все слышали исполняемую многими хорошими певцами песню на популярную мелодию Шолома Секунды «В Кейптаунском порту, с пробоиной в борту, “Жанетта” исправляла такелаж…». Меня всегда удивляло, почему люди повторяют когда-то искаженные слова этой песни, не задумываясь о том, что если у судна пробоина в корпусе, то надо чинить пробоину, а не «исправлять такелаж».
Вот примерно также обстоят дела и с так называемым «управлением рисками». Число авторов, включивших главу об этом в свои книги и статьи о биржевой торговле, огромно. И большинство из них ошибаются!
Как говорил один мой знакомый математик, любая достаточно сложная задача имеет простое, логичное, очевидное для всех неверное решение. Таким решением, по мнению незадачливых авторов, является выдерживание бОльшим единицы отношения расстояния от цены открытия позиции до уровня тейк-профита к расстоянию от нее же до уровня стоп-лосса, то есть отношения потенциальной прибыли к потенциальному убытку в сделке (далее по тексту для краткости — ТП/СЛ), чем, якобы, обеспечивается положительное математическое ожидание прибыли. Чаще всего встречается рекомендация, что это отношение должно быть не менее чем 2:1.
А вот и табличка по S&P500!
https://docs.google.com/spreadsheets/d/11epplwQPMo2cLZSFLD_G7dXBuV6eX01-66TJZpK4dBA/edit?usp=sharing
Первым делом, делаем свою собственную копию: «Файл» -> «Создать копию».
1. Это лайт-версия: аналогично на странице Main – в зеленое поле вписывается целевая сумма в $.
Чуть ниже вносятся только тикеры и только количество купленных уже акций. Данные можно скопировать из каких-то своих таблиц, будь то Excel или Google-таблица (можно скачать брокерский отчет в личном кабинете брокера в формате Excel), а можно просто вбить вручную.

2. На вкладке “S&P500” автоматически проверяется соответствие вбитых вами тикеров с существующими, и расставляются купленные акции в правильные поля. Если какая-то компания становится в индексе выше или ниже (такое происходит почти каждый день, особенно на дне индекса), цифры автоматически следуют за тикером, ничего корректировать не надо. Поля В, С, D, E загружаются автоматически и обновляются каждый день. Поля G, H, I, J, AB загружаются автоматически и обновляются каждые 20-30 минут. Поля K, O, P, Q от того, какую сумму вы вбили в «Цель (капитал)». Поля R, S, T зависят от того, какие тикеры вы вбили и сколько купленных акций вписали. Поля U, V, W, X несут информацию о дивидендах и обновляются 1-2 раза в неделю. Поле «Кризис-радар» вставлено просто так, в развлекательных целях, читайте пометку (наведите на черный уголок над надписью «Кризис-радар»). На этой вкладке вообще ничего редактировать не нужно.