Избранное трейдера Роман Давыдов

по

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

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



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

Об опционах без зауми.

    • 16 мая 2020, 16:40
    • |
    • 3Qu
  • Еще

Для начала, все таки, немного зауми.

1. Об опционах рекомендую почитать книгу — А.Н.Балабушкин Опционы и фьючерсы. Кратко, сжато, все по делу и без воды. Много хорошей математики. В общем, математику можно пропустить, нужно уловить только общий смысл — о чем эта математика.
2. На сайте eLearning есть 6-7 бесплатных лекций Твардовского — просто, ясно, доступно. Он хорошо и интересно излагает. Смотрел лет 10 назад, 2 раза. Очень рекомендую.

Теперь непосредственно об опционных стратегиях.
Простейшей стратегией является — покупка опциона. Если цена базового актива (БА) растет или будет расти — покупаем опцион CALL вне денег, в нескольких страйках (лучше не более 4-5) от центрального. Если БА падает, аналогично покупаем опцион PUT. Больше стоимости опциона при его покупке вы никак не проиграете (хотя, теперь уж и не знаю )). ГО опциона равно его стоимости, и об этом можно не беспокоится.

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

Пожалуй наилучшей позицией в опционах является Стрэнгл. Суть его в том, что мы покупаем опцион CALL вне денег в нескольких страйках от центрального (тоже желательно не более 4-5), и примерно симметрично ему покупаем опцион PUT. Теперь, как и в случае со Стрэддлом, куда бы цена не пошла, мы получаем прибыль. Такая позиция гораздо дешевле Стреддла, и у нее есть масса других преимуществ, но это уже ближе к зауми.
Ну, и недостатки у Стрэнгла аналогичны Стрэддлу — если цена 2-3 дней никуда существенно не пойдет, мы опять получим убытки от временного распада.
Кроме того, Стрэнгл сложнее конструировать, чем Стрэддл, для которого вообще думать не надо.
В опционах есть такой параметр — Дельта, это скорость изменения цены опциона от изменения цена БА
       Дельта = (Изменение стоимости опциона)/(Изменение стоимости БА)
Т.е., на сколько рублей изменится стоимость опциона, при изменении стоимости БА на 1 рубль. От страйка к страйку эта скорость меняется, и при приближении нашего опциона к центральному страйку и переходе опциона в деньги она будет возрастать.
Дельта транслируется в Quik, и ее можно добавить в таблицу опционов.
При выборе Стрэнгла желательно, чтобы параметры Дельта для опционов CALL и PUT были равны или близки друг к другу. Можно купить несколько опционов CALL и PUT в разных страйках, чтобы суммы их Дельт были примерно равны для CALL и PUT. Если же вы считаете, что актив скорее пойдет, например вверх, то Дельту для CALL можно выбрать и побольше, чем для PUT. И наоборот, в случае уменьшения стоимости БА.
Графически позиция Стрэнгл выглядит так:



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

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

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

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

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

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



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

Как быстро проверить компанию на финансовую устойчивость?




В этом видео мы разберем один из эффективных способов анализа финансового состояния компании на основе метода Piotroski F-Score. Подробнее об алгоритме анализа читайте на блоге здесь: https://mindspace.ru/46884-pio... 

Полезные ссылки:

Курс Как читать отчеты компании: https://mindspace.ru/study/08-kak-chitat-otchetnost-kompanii/
Блог Mindspace.ru: https://mindspace.ru/
Instragam: https://www.instagram.com/oxan...
Telegram: @Mindspace_ru


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

Всем привет!

Вдохновился данным постом ( 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)


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

Моделирование Торговых Систем на 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 больше подходит для запуска и работы с уже отлаженными законченными программами.



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

График выплат и погашений ОФЗ в наглядной форме

Недавно интересовались графиком выплат / погашений ОФЗ в наглядной форме. Например, это может понадобиться при построении облигационного портфеля с определенным графиком поступлений. Их есть у меня.

Для начала разберемся с погашениями:

График выплат и погашений ОФЗ в наглядной форме

Зеленым обозначены ОФЗ с фиксированным номиналом и купоном
Желтым — бумаги с переменным купоном
Оранжевым — облигации с индексируемым номиналом (ОФЗ-ИН)
Синим — с амортизируемым номиналом ОФЗ-АД

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

Теперь определимся с купонами. Вот:

График выплат и погашений ОФЗ в наглядной форме

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

Исторические данные с ММВБ (мой велосипед)

По мотивам поста https://smart-lab.ru/blog/616708.php

Вот и мой велосипед на питоне для получения котировок с Мосбиржи

from urllib import request, error
from json import loads
import pprint


class GetRawDataException(Exception):
	pass

class GetPricesException(Exception):
	pass

def get_prices(start_date: str, end_date: str, ticker: str) -> dict:
	"""
		Возвращает словарь: {дата:цена закрытия}
	"""
	req = 'https://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities/{}.json?from={}&till={}'.format(ticker, start_date, end_date)
	contents = get_raw_data(req)
	try:
		data = loads(contents)
		prices = {x[1] : x[11] for x in data['history']['data']}
		return(prices)		
	except Exception as err:
		raise GetPricesException(err)


def get_raw_data(req: str) -> str:
	"""
		Возвращает результат запроса к серверу Мосбиржи
	"""
	try:
		contents = request.urlopen(req).read()
		return(contents)
	except URLError as err:
		raise GetRawDataException(err)


try:
	prices = get_prices('2019-05-23', '2019-05-30', 'GAZP')
	pprint.pprint(prices)
except GetRawDataException as err:
	print('Error getting raw data: ', str(err))
except GetPricesException as err:
	print('Error parsing json: ', str(err))

Вывод данных происходит с помощью функции get_prices(). Механизм простой: формируется url для GET-запроса. Мосбиржа в ответ присылает json, из которого забираются нужные данные и выводятся на экран.

Есть и другие способы получения данных: yfinance, pandas-datareader и универсальный BeautifulSoup, ещё более универсальный Selenium. Но это уже совсем другая история...


Принципы Рэя Далио. Принцип 2: Используй 5 шагов, чтобы получить от жизни все что хочешь

5 ступенчатый процесс, чтобы получить от жизни все что хочешь:
👉Ставь ясные цели
👉Определи проблемы которые стоят на пути к целям и не будь толерантен к ним
👉Точно определи проблемы чтобы добраться до корня проблем
👉Разработай план который позволит обойти проблемы
👉Делай что необходимо, чтобы протолкнуть план к результату

Надо проходить этот процесс последовательно и каждый пункт по порядку (а не параллелить их). Ставишь цели — просто ставь цели. Не думай о том, как будешь их достигать. Когда определяешь проблемы — не думай как будешь их решать.

📌 2.1. Ставь ясные цели

👉2.1.А. Расставь приоритеты. Вы конечно можете взять что хотите, но не сможете забрать всё.
Выбрать цель иногда значит отказаться от чего-то менее важного.
Не думайте преследовать слишком много целей одновременно.

👉2.1.Б. Не путай цели с желаниями.
Цель — это то, что вам действительно надо достичь.
Желания — это вещи, которые могут стоять на пути ваших целей.

👉2.1.В. Определите чего вы хотите от жизни, примиряя ваши цели и желания. 

👉2.1.Г. Не путайте внешние проявления успеха с успехом

👉2.1.Д. Никогда не исключайте цель, потому что она кажется вам недостижимой 

👉2.1.Е. Помните: великие ожидания создают великие возможности

👉2.1.Ж. Почти ничто вас не остановит перед успехом, если вы а) гибкие б) ответственны перед собой
а) позволяет реальности учить вас. б) нужна чтобы увидеть, что если вы ошиблись, то вы сами сделали что-то не так.

👉2.1.З. Чтобы двигаться двигаться вперед, надо знать как реагировать на неудачи


✏️ Вступление
✏️ Главы 1-2. Познание рынков
✏️ Глава 3. Познание рынка и себя
✏️ Глава 4. Торговые системы 
✏️ Глава 5. Расширение компании
✏️ Глава 6. Движители прогресса
✏️ Глава 7,8. О деньгах и счастье 

✏️ Принцип 1: Прими реальность и работайте с ней
✏️ Принципы 1.5-1.10. Боль + рефлекия = прогресс 
✏️ Принцип 2: Используй 5 шагов, чтобы получить от жизни все что хочешь 

Искусственный трейдер. Часть 3. Или ТСЛаb в 20 строк кода.

Надеюсь, все живы и здоровы!
Предупреждаю сразу — текста будет больше чем когда кОда (сам код в конце топика).
Перед тем как перейти к созданию алгоритмов машинного обучения, напишем код для тестирования стратегий и отображения результатов.
Мне нужно: описать логику сигналов на покупку и продажу, затем эти сигналы передать симулятору, который в течение конкретной торговой сессии будет показывать на графике точки, соответствующие этим сигналам, а также рассчитывать изменение прибыли и текущей позиции в каждый момент времени. Данные должны загружаться в хронологическом порядке в цикле по торговым сессиям. После завершения обработки нужно создать итоговый график «эквити» по дням, на графике видеть значения максимальной прибыли и «просадки» за каждую торговую сессию, максимальный уровень риска (величину открытой позиции), количество совершенных сделок и соотношение убыточных-прибыльных дней. Вроде бы все пока. Короче, нужно по-быстрому написать ТСЛаb.

( Читать дальше )
  • обсудить на форуме:
  • TSLab

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