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

по

Волатильность и вероятность падения индекса Мосбиржи (IMOEX)

Продолжаю цикл о волатильности и вероятности падения различных инструментов Московской биржи и международных рынков. Предыдущий материал был про индекс S&P500 в качестве аналога которого рассматривали SPY ETF.

Вот этот материал:
smart-lab.ru/blog/670892.php

Сегодня на арене индекс мосбиржи (IMOEX). Итак, сначала историческая вероятность абсолютной волатильности от HIGH до LOW:

Волатильность и вероятность падения индекса Мосбиржи (IMOEX)

Если для SPY 10% дневной волатильности были пределом, до MOEX демонстрирует даже дни с 20% волатильностью (с рекордом более чем 25% — это кстати был лонговый день в окончании кризиса 2008-2009 гг.).

Существует 76,5% вероятность, что волатильность дня не выйдёт за пределы 2,5%. Что интересно, так это в отличии от SPY который демонстрирует Гауссовский спад от 0 и ниже с концентрацией основной массы дней в диапазоне от 0 до 1%, индекс Мосбиржи имеет большую вероятность пройти до 1,5 и даже до 2%, чем остаться от 0 до 1%:

Волатильность и вероятность падения индекса Мосбиржи (IMOEX)

А теперь направленная волатильность по закрытию рынка (close-open)/open:

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

ШОК!!! Рынок без гэпов растёт только отрицательно

Хе-хе. Ну, во-первых для пытливого исследователя это давно не шок, а вот новичкам этот секрет может показаться странным, но тем не менее это так. Итак, опытный алгоритмист может проходить мимо, а для новичков настало время срыва покровов с тайны рынка секрета Полишинеля. 
  А секрет такой: рынок без гэпов не растёт. А если ещё проще, то средний рост от open до close в SPY равен почти нулю. 
Картинка в помощь. Таким был бы американский рынок (в данном случае SPY его эквивалент), не будь ночных гэпов:

ШОК!!! Рынок без гэпов растёт только отрицательно
В среднем в один день рынок прирастает на 0,001%. За двадцать четыре года прирост SPY от внутридневных движений составил всего 3,216%. Однако, с учётом эффекта обратного рычага (100% + 10% -10%) = 99; равно как и (100% — 10% +10%) = 99%; SPY бы в данный момент стоил на 20% дешевле, чем 24 года назад. 99,5% процентов роста рынка обеспечено ГЭПами. Т.е. на рынке гораздо важнее, что происходит в моменты когда «выключен» свет, чем во время активных торгов.

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

Python. Делаем тестер стратегий и... зарабатываем на случайном блуждании.

    • 19 июня 2020, 16:32
    • |
    • 3Qu
  • Еще

Если вам кто нибудь скажет, что на случайном блуждании (СБ) нельзя зарабатывать, бросьте в него камень. Как говорил Паниковский — это жалкие ничтожные люди. На СБ можно зарабатывать с результатами не хуже, чем на реальном рынке. У СБ, по сравнению с реальным рынком, только один недостаток — за игры с СБ никто деньги платить не будет.
А если бы платили? Никто бы ничего не заметил. По прежнему 95% СБ-трейдеров сливало бы депозиты, а 5% регулярно выигрывало и считало бы себя Гуру. По прежнему на графики наносились бы каббалистические знаки и индикаторы, угадывались бы направления движения, каналы, и линии поддержки/сопротивления. Все так же начинающие трейдеры искали Учителя для обучения, а аналитики предсказывали будущее. И, ровным счетом, абсолютно ничего бы не поменялось. Может только АГ заметил бы подвох, но тоже не сразу, а только через несколько месяцев, а, может, и через год-другой. Но, легко сделать, чтобы и АГ остался в неведении.)

Однако, прежде чем играть на СБ, нам необходима стратегия и тестер. Ими мы и займемся.
Для начала стратегия: нам нужны три функции
— одна для пошагового слежения за рыночными котировками и определения момента входа в сделку — DealEntryAnalysis(i) и пусть на ее выходе будет: 0-если сделки нет, 1 — необходим вход в лонг, и -1 — необходим вход в шорт. i — номер отсчета массива котировок.
— вторая для сопровождения сделки лонг — DealControlL(i), отвечающая за контроль и закрытие сделки.
— и третья, для сопровождения сделки шорт — DealControlS(i).
Теперь у нас все готово для разработки тестера стратегий, а это всего лишь цикл while() последовательно перебирающий котировки.
Вот наша стратегия уже в тестере:

while i < Ie:
    deal_type = DealEntryAnalysis(i)
    if deal_type == 1:
        j, rep = DealControlL(i)
        deals_report.append(rep)
        i = j+1
        continue
    elif deal_type == -1:
        j, rep = DealControlS(i)
        deals_report.append(rep)
        i = j+1
        continue
    i = i+1


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

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