Избранное трейдера Gregori

по

Бэктест мультипликаторов PE, PS, PB и других

Когда-то давно я устроился на работу в небольшой брокерской компании. Помню, первый вопрос на рабочем месте от начальника отдела, старого многоопытного спокойного еврея, поверг меня в шок: «Покажите как вы определяете лучшие акции?» А я-то думал, мне все расскажут и покажут! Сильно смутившись, я начал что-то лепетать про P/E, P/S и количество абонентов. «Ну это фигня какая-то! Идите думайте» — тихим голосом неожиданно изрек вежливый начальник, во мгновенье растоптав во мне всякое самоуважение. Я думал — меня уволят в ту же неделю, но оказалось, это нормальный способ руководства у шефа. Дело было в крайне презрительном отношении начальника к P/S, ведь этот коэффициент не учитывает долги компании. Тогда, в начале нулевых стандарты задавал Стивен Дашевский, прекрасный аналитик из Атона. Этот экспат, рулевой и светоч аналитиков, любил и продвигал три мультипликатора P/E, EV/EBITDA и EV/S. Эта тройка мультов и до сих пор на пьедестале в крупных домах, например в Сбербанк-КИБ. Проделав это исследование, я могу уверенно сказать, что мой подход в прошлом был не так уж и плох. А указанная тройка вовсе не объект для поклонения, другие параметры работают не хуже.



( Читать дальше )

Идеальная "торговая система" А. Г. в реалиях нашего рынка

А. Г. интересную идеальную штуку описывает у себя в видео.

Прогоним эту систему без заглядывания в будущее на нашем рынке по следующим правилам:
Buy at open[m] if close[m-1]>OPEN[d] and HIGH*[m-1]+LOW*[m-1]>HIGH[d-1]+LOW[d-1].
Sell at open[m] if close[m-1]<OPEN[d].

Пояснения:
Расчеты делаются по минуткам opn, high, low, close.
m — текущая минута, которая только началась.
OPEN, HIGH, LOW это дневные значения. 
d — текущий день.
HIGH* и LOW* это максимум и минимум текущего дня с открытия и по завершившуюся минуту m-1.

Далее будут эквити без учета издержек.

Si (8% годовых при срсделке 0,01%):
Идеальная "торговая система" А. Г. в реалиях нашего рынка





























RI (22% годовых при срсделке 0,05%):
Идеальная "торговая система" А. Г. в реалиях нашего рынка

( Читать дальше )

Моделирование Торговых Систем на Python. 2.

    • 12 мая 2020, 10:29
    • |
    • 3Qu
  • Еще

Тем, кто не читал предыдущий топик этой темы, рекомендую для начала ознакомиться с ним [1].

В комментариях к предыдущему топику меня критиковали за неоптимальность кода Python. Однако, текст читают люди с совершенно разной подготовкой — от почти не знающих Python или знающих другие языки программирования, до продвинутых пользователей. Последние легко могут обнаружить неоптимальность кода и заменить его своим. Тем не менее, код должен быть доступен и новичкам, возможно не обладающим знанием пакетов и продвинутых методов. Поэтому, в коде я буду, по возможности, использовать только базовые конструкции Python, не требующие глубоких знаний, и которые могут легко читаться людьми, программирующими на других языках. Вместе с тем, по мере изложения, без фанатизма, буду вводить и новые элементы Python.
Если вы хотите как-то улучшить или оптимизировать код, приводите его в комментариях — это только расширит и улучшит изложенный материал.

Ну, а сейчас мы займемся разработкой и тестированием индикаторов. Для начала нам нужна простейшая стратегия с использованием МА — его и построим. Самой лучшей по характеристикам МА является ЕМА. Формула ЕМА:



( Читать дальше )

5 классных сервисов от инвестиционного гиганта BlackRock, которые помогут оценить рынок

BlackRock — одна из крупнейших инвестиционных компаний в мире. Под ее управлением находится $7 трлн активов. Кроме непосредственных финансовых услуг, компания обеспечивает инвесторов аналитикой. В статье — пять интерактивных сервисов BlackRock, которые отражают глобальные тренды.

5 классных сервисов от инвестиционного гиганта BlackRock, которые помогут оценить рынок



№1. Монитор геополитических рисков

Политика влияет на экономику, экономика влияет на финансовые рынки. Если где-то начинается торговая война, то котировки падают. Если в Багдаде все спокойно, а на подходе новый караван экономических соглашений — рынки растут. Отслеживать воинственность мировых настроений позволяет Geopolitical Risk Dashboard.

5 классных сервисов от инвестиционного гиганта BlackRock, которые помогут оценить рынок



( Читать дальше )

Большой бэктест модифицированного Momentum. Лениво обыгрываем рынок с 1984 года на глобальных рынках

Привет, новая неделя – новый бэктест факторной стратегии. На этот раз не только на Мосбирже и не только в акциях. Первоначально тут планировался большой текст про взаимодействие Моментума, торгового оборота и волатильности на неликвидных рынках и последующий Шарп сильно за 2.

Но в последний момент решили выпускать стратегии по нарастанию их сложности.  Сегодня речь не об «иксах», но об очень устойчивой штуке – получению доходности выше рыночной за длинный промежуток по разным классам активов без принятия рисков отдельных компаний или стран.

Традиционный график с результатом перед стеной текста:
Большой бэктест модифицированного Momentum. Лениво обыгрываем рынок с 1984 года на глобальных рынках

Источник: Sentimetrica

 

Синяя линия – модификация Моментума на глобальных рынках, зеленая – индекс глобальных акций MSCI World, красная – равновзвешенный портфель из акций, казначейских векселей США и сырьевой корзины.

 

Из всех стратегий американских биржевых гуру – самыми полюбившимися для меня стали идеи получения ВСЕЙ рыночной доходности Джона Богла и CANSLIM Уильяма Онил. У фраз «Индекс в долгосроке всегда растет» и «Лучшие компании остаются лучшими» много общего, верно? Попробуем оформить объединенную стратегию на основе классиков.



( Читать дальше )

Какой индикатор нужен для календарного спреда фьючерсов

Открывая позицию в дальнем и ближнем фьючерсах на один и тот же актив неплохо иметь перед глазами график их разности. И Quik средствами QLua предлагает такую возможность.
Какой индикатор нужен для календарного спреда фьючерсов
Код довольно прост:

— Складывает Value графиков GraphId1 и GraphId2
— При запуске на загрузке Quik'а работает код предыдущей загрузки
— с последними свойствами, полученными из кода или интерактивно.
— При запуске старые бары графика данных сканируются дважды,
— только если есть подключение к серверу.
— При смене тайм-фрейма старые бары сканируются только единожды.
— При загрузке Quik'а первый скан до подключения к серверу.
CandlesOK = true
Settings = { — После смены тайм-фрейма нужно интерактивное подтверждение
  Name      = "_Add"
  ,GraphId1 = «Tag-1» — Перезадать оба после первой загрузки.
  ,GraphId2 = «Tag-2» — Сохраняются при последующих запусках.
  ,Factor1  = 1       — Для GraphId1
  ,Factor2  = 1       — Для GraphId2
  ,Base1    = 0       — Для GraphId1
  ,Base2    = 0       — Для GraphId2
  ,Value    = «close»
  ,line = { — Исчезает прогррамный доступ после 1-го интерактивного изменения
    {Name = «close»
    ,Color = RGB(255,255,0) — Жёлтый
    ,Type = TYPE_HISTOGRAM — POINT, LINE, DASH, DOT, HISTOGRAM,
    ,Width = 2}            — TRIANGLE_UP, TRIANGLE_DOWN.
  }
}
function Init()
  local s = «Indicator _Add:»
  if 0 == getNumCandles (Settings.GraphId1) then
    CandlesOK = false
    s = s .."\n  invalid GraphId1"
  end
  if 0 == getNumCandles (Settings.GraphId2) then
    CandlesOK = false
    s = s .."\n  invalid GraphId2"
  end
  if not CandlesOK then message (s) end
  return #Settings.line
end — Init()

function OnCalculate (index)
  if index == 1 then
    CandlesOK = true
    if 0 == getNumCandles (Settings.GraphId1) or
       0 == getNumCandles (Settings.GraphId2) then
      CandlesOK = false
    end
    --[[message («Settings.Value »… tostring (Settings.Value)
      .."\nSettings.line "… tostring (Settings.line)
      .."\nCandlesOK  "… tostring (CandlesOK))--]]
    if Settings.Value ~= «open» and Settings.Value ~= «high» and
       Settings.Value ~= «low»  and Settings.Value ~= «close» then
      Settings.Value = «close»
      message («Indicator _Add: Value must be open/high/low/close»)
    end
  end
  if not CandlesOK then return nil end
  local candle1 = (getCandlesByIndex (Settings.GraphId1, 0, index-1, 1))[0]
  local candle2 = (getCandlesByIndex (Settings.GraphId2, 0, index-1, 1))[0]
  local val1 = candle1[Settings.Value]
  local val2 = candle2[Settings.Value]
  — Результат return res == 0 and nil or res всегда 0 при res == 0
  if val1 == 0 or val2 == 0 then return nil end
  return (val1 + Settings.Base1) * Settings.Factor1
    + (val2 + Settings.Base2) * Settings.Factor2
end — OnCalculate()


НЕФТЬ. СОТ200421. ЛонгСквиз.СуперФизик. Серия 5.

Если чё то не понятно, почитывайте Михалыча.

Как правило в моих старых топиках уже расписано то что происходит сейчас.

На прошлой неделе в топике НЕФТЬ.СУПЕРФИЗИК. Просадка -$100млн.


Хеджеры же будут давить последовательно каждый ближний,

добиваясь максимальной прибыли от шортов к экспире.

Хапнули так хапнули.

Зачем отрезать хвост по частям, по 5-7 баксов на экспиру, отрубили сразу на 60.

14 апреля в майском лайте был приличный ОИ

НЕФТЬ. СОТ200421. ЛонгСквиз.СуперФизик. Серия 5.

Откуда ОИ взялся ?

Ясен пень откуда, как и любой мощный сквиз всегда связан с опционами.

300тыс ОИ  возникли после экспиры путов в деньгах во фьючи.

Перекладывать их в июньский дорого, сразу -$4.

По сему Попытка их покрыть привела к бесконтрольному обвалу. 

-$4 дорого, а -$60  нормально.

И замечу что концерт еще  не закончен

( Читать дальше )

Раздаю КАЧАЙТЕ!!! 5 лучших стратегий от Иринки Булыгиной.

Долго не было от меня вам раздач. Думал что бы вам такое выложить и полезное для общего развития и приятное для глаз)))
Ну конечно только Ирину Булыгину)))
Раздаю КАЧАЙТЕ!!! 5 лучших стратегий от Иринки Булыгиной.

Раздаю КАЧАЙТЕ!!! 5 лучших стратегий от Иринки Булыгиной.

( Читать дальше )

....все тэги
UPDONW
Новый дизайн