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

по

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

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

Прогоним эту систему без заглядывания в будущее на нашем рынке по следующим правилам:
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.
Если вы хотите как-то улучшить или оптимизировать код, приводите его в комментариях — это только расширит и улучшит изложенный материал.

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



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

Zoppo - гений !!! По мотивам одноименной книги от Набиржеон

Доброе утро, коллеги!

Не успел я проснуться, как выяснил, что биржевой код взломан.
Это означает, что все мы (ну м.б. после окончания карантина) сразу становимся безработными. А это уже неприятно.

Познакомившись с трудами Zoppo/Набиржеон повнимательнее, я нашел в них пару умных мыслей. Собственно, только 2 эти мысли и были опубликованы )))

1. На коротких таймфреймах оптимальная стратегия очевидна
2. На длинных таймфреймах ее нет, и быть не может

Это уже совсем не такая абсолютная чушь, как тотальный взлом рынка. Мои личные исследования показывают, что на коротких таймфреймах действительно присутствуют супердоходные стратегии, которые стремительно теряют доходность при удлинении интервала квантования. При таймфрейме 10-36 часов эти extra fee уходят в никуда и мы приближаемся в хотелках к безрисковой ставке с некоей премией.

ОДНАКО: Активные (HFT?) стратегии несут в себе большие издержки. Довольно просто придумать стратегию (на любом активе), которая будет показывать идеальную эквити (Шарп больше 100, к примеру) при торговле без комиссий. При этом доход на сделку у типичной системы такого класса держится примерно на уровне половины спрэда, что полностью убивает потенциальную прибыль. Впервые такие плюшки я придумал в 1999, но, ввиду практически полной трейдинговой бесполезности, до сих пор использую их как некие индикаторы.

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

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

    • 09 мая 2020, 19:31
    • |
    • 3Qu
  • Еще

Для моделирование ТС на Python, прежде всего нужен сам Python. Pythonы бывают очень разные.

Самый большой и длинный Python — Anaconda (https://anaconda.org/). Скачать дистрибутив Anaconda можно здесь — Индивидуальное издание -https://www.anaconda.com/products/individual.
Я работаю именно с Anaconda. Установив Anaconda мы получаем сам Python, уже установленные значительную часть нужных и ненужных пакетов с библиотеками Python, и несколько сред разработки. И все это сразу готово к работе, и нам, по большей части, уже не придется дополнительно устанавливать пакеты и среды.

Самый маленький Python последней версии 3.8.2. скачивается с сайта самого Python — https://www.python.org/. Это, практически, только сам язык, компилятор и минимальный набор пакетов. Сделать с ним практически ничего невозможно, и для работы придется постоянно устанавливать нужные пакеты. Среду разработки придется также устанавливать самостоятельно.
Этот Python больше подходит для запуска и работы с уже отлаженными законченными программами.



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

Индикатор подвижности базового актива "на коленке"

Для интересующихся реализовала этакое «в лоб подобие» индикатора подвижности базового актива по материалу уважаемого В.Курбаковского. За разъяснениями лучше обращаться к автору формулы в его блог (вторая глава его труда об обобщенной модели ценообразования). Индикатор сделала, чтобы посмотреть связь движения IV и этой самой подвижности. Может кому-то будет полезен еще и такой угол зрения. 

Индикатор имеет две настройки — по каким ценам будем оценивать подвижность и на каком периоде. Итог выглядит вот так. Период здесь на картинке дневной — то есть индикатор здесь оценивает мобильность в пунктах в день. Предлагаю использовать на минутном графике.

Индикатор подвижности базового актива "на коленке"

Добавить в избранные скрипты на трейдингвью, а оттуда наложить на график и поиграться, можно тут

UPD: Ночью поддержка TradingView написала мне, что индикатор забанили потому, что у него русское описание. Поправить нельзя, только опубликовать снова с английским описанием, так что вот английская версия, если русскую удалят. Также дала возможность в английской версии назначать длину торгового дня — третья настройка Trading Session in Minutes. Пользуйтесь английской версией, пожалуйста

Починка websockets-криптоконнектора как повод поговорить о парадигме конкурентного программирования (питон)

В общем, решил как-то я написать websockets коннектор к одной криптобирже на С++. Решил, что неплохо было бы найти работающий простеникий коннектор и адаптировать его под себя. На С++ вообще ничего вменяемого найти не получилось, зато нашел нечто на питоне:
github.com/Crypto-toolbox/hitbtc
Штука показалась годной и стал я ее переводить на С++… Кстати, весьма полезное занятие оказалось — узнал определенные вещи из современных стандартов С++11/14, т.к. без них переводить питоновский код — много, долго и грустно)) И вот, в какой-то момент я подумал, что неплохо было бы проверить, а коннектор питоновский, который я взял за образец — он-то вообще работает?? Оказалось, что нет) Пакет websocket для работы с соединениями за 2 года устрарел и не работает, например, вот в этом месте:
self.conn = websocket.WebSocketApp(
            self.url,
            on_open=self._on_open,
            on_message=self._on_message,
            on_error=self._on_error,
            on_close=self._on_close
        )
пакет больше не экспортирует класс WebSocketApp, документацию вменяемую найти сразу не получилось и поэтому возникла потребность заменить websocket на что-то более актуальное. И это актуальное нашлось: websockets.readthedocs.io/en/stable/intro.html

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

Использование метода Монте-Карло для создания портфеля

    • 26 апреля 2020, 14:17
    • |
    • Aleks
  • Еще

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

В этом посте будет рассмотрено то, как оптимизировать портфель при помощи Python и симуляции Монте Карло. Под оптимизацией портфеля понимается такое соотношение весов, которое будет удовлетворять одному из условий:

  • Портфель с минимальным уровнем риском при желаемой доходности;
  • Портфель с максимальной доходностью при установленном риске;
  • Портфель с максимальным значением доходности

Для расчета возьмем девять акций, которые рекомендовал торговый робот одного из брокеров на начало января 2020 года и так же он устанавливал по ним оптимальные веса в портфеле: 'ATVI','BA','CNP','CMA', 'STZ','GPN','MPC','NEM' и 'PKI'. Для анализа будет взяты данные по акциям за последние три года.

#Загружаем библиотеки

import pandas as pd
import yfinance as yf
import numpy as np
import matplotlib.pyplot as plt

# Получаем данные по акциям
ticker = ['ATVI','BA','CNP','CMA', 'STZ','GPN','MPC','NEM', 'PKI']

stock = yf.download(ticker,'2017-01-01', '2019-01-31')


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

Как посчитать цену опциона на отрицательном страйке.

    • 22 апреля 2020, 12:33
    • |
    • FZF
  • Еще
Это приближенное вычисление опционных цен. Но для тяжелой жизни оно подойдет своей простотой.
1. Принимаем текущую цену базового актива за ноль (относительно этой точки будем считать)
2. Принимаем текущие цены на центральном страйке за «правильные»
или рассчитываем

Кол+Пут= ATR(Н1)*КОРЕНЬ(N)*0,5,  где N количество торговых часов до экспирации.

как описано здесь smart-lab.ru/blog/474365.php

3. Считаем стоимость опционов принимая за Х расстояние на которое страйк удален от текущей цены базового актива, как описано здесь
smart-lab.ru/blog/532275.php

Есть более точная формула, но мне  тоже хочется зарабатывать. :)))

Добавил, чтоб было в основном тексте:
Если нужно более красивую формулу, которая лучше ложиться на рынок,
то надо в показатель степени вставить коэффициент =1,068
Е^(-1.068*abs(X)/2/Q)

Задача для начинающих спекулянтов.

    • 21 апреля 2020, 17:15
    • |
    • 3Qu
  • Еще

Задача для начинающих спекулянтов.

Это может быть интересно
Не интересует.
Всего проголосовало: 23
Все темы сегодня примерно об одном и том же. И пофлудить негде и не о чем.
Об инвестициях можно на год-полтора забыть. Кто не забыл и хочет продолжить этот праздник жизни — это их личное дело.
В общем, имхо, настало время активных спекулянтов. Хотя, для спекуляций тоже не лучшее время, однако, времена не выбирают, в них живут и умирают. ©
В связи с изложенным появилась идея постановки задачи разработки спекулятивной стратегии. В основном для начинающих. В ходе решения вы сами ее и разработаете. Мое дело только постановка задачи. Готовых решений тоже не будет — вы сами их найдете. Да и таких решений может быть много, хороших и разных. Практически как курсовая работа в институте, только значительно проще.
Если наберется несколько человек желающих в период самоизоляции заняться решением — будет и формулировка.
Что касается уже действующих спекулянтов, то у них уже есть стратегии, и им это будет вряд-ли интересно. Хотя, тоже не возбраняется.
Заодно выясним сколько здесь начинающих спекулянтов.)

PS книга по анализу временных рядов - Бокс Дж., Дженкинс Г. Анализ временных рядов, прогноз и управление.



А еще , на опционах можно зарабатывать такими стратегиями.

    • 17 апреля 2020, 17:51
    • |
    • FZF
  • Еще

Сегодня сделал извращение на волатильностях  Si и  RTS. Это были недельные опционы с экспирацией 23/04/2020.  На центральном 107500 страйке   RTS волатильность была  60 , а на центральном 75000 страйке Si  волатильность опустилась до 20. 

Волатильность Si я купил, а RTS  продал. Сделал я это  через стредлы.
А еще , на опционах можно зарабатывать такими стратегиями.

Пропорции выбирал следующим образом.  Фьючерс   RTS в рублях стоит 158709 руб., а фьючерс Si  =75000 руб. На один  RTS приходится 2,116 Si .

Поскольку Si  я покупал, а  RTS продавал, то пропорцию взял с запасом 1:3

Дальше подразумевалось дельтахеджирование по следующим правилам:

Когда у RTS дельта становится 1, выравнивать ее в ноль, и в этот же момент выравнивать в ноль позицию Si.  Ведущей должна быть проданная позиция.

Позицию я сделал в 12:30, а к 16:20 волатильности немного сошлись. Закрыл позицию с прибылью 5400 руб.

Ждать не стал, поскольку у меня нет математического описания для таких позиций. Делаю я так редко и по интуиции. Но если в рублях выразить центры стредлов, то Si примерно на 18-19 тыс. руб. дешевле, чем  RTS.  Так что, 5 тысяч мне для получения удовольствия вполне хвалило. Жадничать не надо.




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