Избранное трейдера Кайгородов

по

Попытки проектирования системы возврата к среднему

    • 22 ноября 2021, 16:08
    • |
    • grepan
  • Еще

Надеюсь получить интересные идеи и конструктивную критику от участников на мои попытки подобрать алгоритмы возврата к среднему (Mean reversion).

Вкратце, что я знаю о системах возврата к среднему: системы, построенные на одном инструменте, являются контр-трендовыми, потому что тренд отклоняет график от средней, а заходить в сторону к средней, значит заходить против тренда. В этом же заложен главный риск таких систем – длинный тренд приводит к долгой и большой просадке. Другая вариация систем возврата к среднему – арбитраж, когда вместо одного инструмента рассматриваются два и более. В этом случае под «средней» понимается некий синтетический курс, зависящий от курсов рассматриваемых инструментов. Расхождение какого-либо из инструментов от этого синтетического курса возможно в случае нарушения глобальной корреляции, что бывает не часто, но пренебрегать таким риском нельзя.

Примером таких систем могут быть парный арбитраж на коррелируемых инструментах, календарный арбитраж, треугольники кросс-курсов валют форекса, или арбитраж бумаг, входящих в индекс, против самого индекса.



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

51 757% на пересечении простых скользящих средних в 2021 году

— две простые скользящие средние 10 и 20 дней
— дневной таймфрейм
— комиссия 0.05% за сделку
— вход: короткая скользящая оказывает выше длинной
— выход: короткая скользящая средняя ниже длинной, то есть только лонг
— каждый раз входим на 95% от капитала

49 тикеров с 2005 года:

— топ 10 по капитализации из SP500: AAPL, MSFT, AMZN, FB, GOOGL, GOOG, TSLA, NVDA, JPM, JNJ
— топ 10 по капитализации американских ETF: SPY, IVV, VTI, VOO, QQQ, VEA, IEFA, AGG, VTV, VUG
— MOEX10: MAGN, GMKN, POLY, GAZP, SBER, YNDX, LKOH, ROSN, AFKS, TATN
— фьючерсы с мосбиржи: Si, RTS, BR, GOLD, SBRF
— топ 10 крипты по стоимости: BTCUSDT, ETHUSDT, BNBUSDT, ADAUSDT, XRPUSDT, DOGEUSDT, DOTUSDT, SOLUSDT, UNIUSDT, LINKUSDT, LTCUSDT, LUNAUSDT, MATICUSDT, ICPUSDT

Я сейчас ковыряю backtrader, поэтому на нём и тестировал. Посмотрим что там у нас получилось. Вот топ 10 тикеров по доходности. Доходность в процентах.

51 757% на пересечении простых скользящих средних в 2021 году
Топ 10 тикеров по доходности. Неплохо для элементарной стратегии.


Что видим? В топах крипта. Собственно не удивительно, с такой волатильностью.

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

Софт для просмотра структуры портфеля акций

Сим творением пользуюсь сам постоянно. Буду рад, если кому-то ещё пригодится.

Характеристики

  1. Написан на Python 3, в качестве графической библиотеки используется Tkinter
  2. Цену берёт из API Мосбиржи. Цена — это цена закрытия
  3. Имеется возможность посмотреть цену и структуру портфеля на любую дату в прошлом
  4. Есть возможность импортировать структуру портфеля со Смартлаба
  5. Редактирование портфеля производится с помощь любого текстового редактора

Скриншот окна программы:
Софт для просмотра структуры портфеля акций

Попробовать можно так:
git clone https://github.com/eenden/my_case_tk.git
cd my_case_tk
python view.py
Рекомендуется создать виртуальное окружение с помощью virtualenv и использовать его. Зависимости, как обычно, в файле requirements.txt

Как скачать много котировок акций РФ сразу.

Всем привет!

Вдохновился данным постом ( https://smart-lab.ru/blog/616708.php ) и решил немного подпилить код, пока карантин делать нечего.

Кто не знал как скачивать котировки по одной компании вручную — сайт для скачивания котировок по одному тикеру (финам):
www.finam.ru/profile/moex-akcii/gazprom/export/

Тут через питон скачиваем котировки из текстового файла, в который вносим желаемые тикеры компаний:
Как скачать много котировок акций РФ сразу.



Сайт для скачивания среды программирования Python (PyCharm), пойдет обычная версия:
www.jetbrains.com/ru-ru/pycharm/download/#section=windows

Файлы из видео, в том числе и со списком тикеров:
yadi.sk/d/R3BSbFjV3Pfydg

Код программы:

import requests
import datetime
import pathlib
import apimoex
import pandas as pd
 
board = 'TQBR'
 
with open("C:/PYEX/TICK.txt", "r") as TICKs:
    TICKs = [line.rstrip() for line in TICKs]
pathlib.Path("C:/PYEX/Database/{}".format(board)).mkdir(parents=True, exist_ok=True)
process = 0
with requests.Session() as session:
    for TICK in TICKs:
         process = process + 1
         print((process / len(TICKs)) * 100, ' %')
         data = apimoex.get_board_history(session, TICK, board=board)
         if data == []:
             continue
         df = pd.DataFrame(data)
         df = df[['TRADEDATE','CLOSE']]
         df.to_excel("C:/PYEX/Database/{}/{}.xlsx".format(board,TICK), index=False)


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

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

    • 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')


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

Искусственный трейдер. Часть 2. Парсинг и визуализация тренировочного набора данных в Python

Всем, привет! Неделя выдалась «боевой», надеюсь все живы-здоровы!
В продолжении топика «Искусственный трейдер. Часть 1. Подготовка данных для машинного обучения (видео)»
Рассмотрим python-код «парсера» и «визуализатора» данных. Скажу сразу, что этот код вы можете легко модифицировать для анализа ваших данных любого другого формата.
Сам датасет формируется при помощи платформы Jatotrader, которая во время воспроизведения исторических данных сохраняет параметры частотных графиков для дальнейшего анализа и построения модели машинного обучения  в Python.
Для работы с тестовой выборкой нам понадобятся:
1. Установленная платформа Jatotrader FREE (или круче) версии 2.9.3 (или выше). С ее помощью вы сможете создавать любые тестовые наборы для любых инструментов. Либо воспользоваться, в качестве примера, готовым набором для фьючерсного контракта RIH0 с 20.12.19 по 28.02.20 (по два частотных графика 500 и 125 тиков на бар для каждой торговой сессии).

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

Как пережить боль от потери денег

    • 26 апреля 2019, 18:39
    • |
    • DNA Hz
  • Еще

Уиии, время психологической статьи с очень оригинальным названием. Как же любят «специалисты» в этом деле переливать из пустого в порожнее. Тошнит читать одинаковые рецепты в интернете, написанные копирайтерами по 30 рэ за тысячу знаков. Как же много психологических опусов приходится изучать трейдеру в надежде найти там какие-то методы, что спасут и от внутреннего азарта, и от невыносимой боли внутри, когда ты теряешь деньги.

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

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



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

Ценная подборка №35. Генератор свечных паттернов (стратегия)

Кирилл Арепьев — частный инвестор. В 2010 году, участвуя в Кубке ММВБ под ником FlyOffMax, он занял 14-е место с доходностью 140,6%.
Кирил подробно описывает стратегию, которой пользовался на Кубке ММВБ. Материал интересен, поскольку представляет достаточно нетривиальный подход к анализу рынка.


Труд разработчика торговых систем сродни Сизифову: сначала долго выдумываются правила стратегии, прорабатываются возможные нюансы, потом система программируется и проверяется на исторических данных. При этом нет никакой гарантии, что впоследствии мы получим выдающиеся показатели вместо печальной картинки с отрицательной доходностью. Но, даже если все тесты были сданы на «отлично», это отнюдь не обеспечивает самого главного — прибыли на реальном брокерском счете. Если ее нет, приходится начинать все с начала. Как показывает практика, далеко не все стратегии со сложным математическим аппаратом дают приемлемые результаты. Более того, прямая связь между сложностью и доходностью отсутствует вовсе. Поэтому, чтобы облегчить и без того непростое ремесло разработчика торговых систем, будем оперировать самыми простыми математическими понятиями, не создавая дополнительных трудностей.
 


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

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