Избранное трейдера Artemunak
Ниже некоторые мысли по поводу хеджирования алгоритмического трендового портфеля. Даже не то чтоб хеджирования, скорее еще одна стратегия в дополнение. Денег на нее кстати у меня поставлено не меньше чем на алготрейдинг. Никаких чудес. Речь идет о портфеле акций.
Для начала немного теоретических размышлений. Как известно рынок имеет 3 состояния: рост, падение и боковик. Но не каждый рост одинаков. Если брать в контексте трендовых систем, то рост может быть как по типу «ударный день» (т.е. равномерный рост практически без откатов), так и по типу «гэп — боковик» (рынок открывается уже хорошим плюсом и далее идет болтание на уровне). Дневная свеча на графике в обоих случаях будет одинаковая, но заработок у роботов будет отличаться.
Упрощенно я разделил все движения на 6 подтипов: ракета, унылый рост, крах, унылое падение, боковик и боковик-убийца. Боковики тоже отличаются, простой — это спокойный канал без особых сигналов, боковик-убийца — это нечто аля расширяющийся треугольник.
Если как ведет себя портфель акций более-менее понятно (на крахе сильно минусует, на росте плюсует и т.п.), то с роботами все несколько сложнее.
На основании наблюдений за своим «зоопарком» я установил примерную реакцию портфеля на разные состояния рынка (бывают конечно исключения, но в целом плюс-минус так). Обозначил значками. Соответственно ударные движения типа «ракета» и «крах» приносят максимальный результат, стопов не выбивает вообще. Причем 2-3 таких движения легко могут отбить даже годовую просадку. «Унылый» рост или падение отрабатываются хуже, стопы периодически вылетают, но за счет диверсификации часть движения все равно удается ухватить. Далее соответственно боковики приносят убытки, простой в меньшей степени из-за отсутствия большого количества сигналов и «убийца» — максимально убыточный (стопы улетают один за одним). Результаты для наглядности свел в табличку ниже. Видно в какие моменты в теории стратегии работают в синергии, когда перекрывают друг друга и когда нет.
Для акций получается самый болезненный момент — это фаза краха, но тут хедж со стороны алгоритмов достаточно надежный. На моей памяти еще ни разу трендовые системы не давали меньше прибыли, чем просадка портфеля, а зачастую за счет плеча на срочке прибыль в разы выше.
Текстовая расшифровка интервью Олега Клоченка Тимофею Мартынову. Записьбыла сделана 13.06.2020 на конференции Derex.
Тимофей Мартынов: Олег, расскажи нам, как ты пережил события марта-апреля этого года. Как ты встречал это падение, был ли ты в акциях, был ли ты в кэше, докупал ли ты?
Олег Клоченок: Я думал, что буду целиком в акциях, но когда все упало, я начал искать кэш. Примерно 3% от портфеля, может быть, 2,5% нашел и докупил почти сразу же. Я думал, что будем падать чуть-чуть глубже, хотя бы ниже 2000 дойдем. Покупал я выше, но как-то очень удачно. Сейчас смотрю на свой учетчик, я прямо-таки купил на дне падений. Может быть, я купил бы и раньше, но долго искал наличность.
Тимофей: 2000 — ты имеешь ввиду индекс Мосбиржи?
Привет, сегодня вместо традиционного бэктеста разберем площадки, где можно подсмотреть идеи для торговых стратегий. Навеяно постом Eugene Logunov о литературе для алго-трейдера https://smart-lab.ru/blog/627444.php Теперь у нас есть методики, но где взять идеи? :)
Наши предыдущие бэктесты хоть и адаптированы под Россию и имеют отличия в реализации – все равно основываются на ранее выявленных закономерностях в США/Европе. Сразу скажу, что речь пойдет об исследованиях в открытом доступе. Если на работе/в университете есть доступ к EBSCO или Science Direct, то вы и сами знаете, где все посмотреть.
Зачем вообще читать академические ресерчи, если фонд LTCM показал, что кол-во цитирований и премий спорно соотносится с успехом на рынке?
Хорошие ресерчи дают базовые идеи о том, что и почему работало в прошлом, на каких стадиях и почему перестало. Да, в них есть реализация или дизайн исполнения, но обычно он сырой и его всегда можно поменять, сохранив базовую идею. В отличие от дискуссий в рунете, очень сложно опубликовать что-то без пруфов, а проверка устойчивости не ограничивается t-статистикой > 3. Сам текст хорошо структурирован, методика либо объясняется полностью, либо ссылается на такой текст. Авторы в основном исследователи, которые выполняя свою работу попутно дают подсказки практикам. Но встречаются и практики, например, аналитики хедж фонда AQR сейчас главные поставщики контента по факторным стратегиям или ученые Dimson и Ibbotson, которые параллельно пишут исследования для инвестиционных банков. Если желание почитать что-то заумное осталось, то сформулируйте идею/биржевую аномалию, которую хотите проверить (например, покупка акций с наибольшими дивидендами) и возвращайтесь к этому тексту.
Для численного моделирования переподгонки я взял дневки фьючерса на индекс РТС, с середины декабря 2006 по начало мая 2020, которые корректно склеены. Сначала рассмотрим систему максимальной доходности для 1 фьюча, торгуемого в обе стороны. Её эквити будет сумма модулей логарифмических приращений дневок, взятая нарастающим итогом. Финансовый «результат» 5207% (логарифмических), или 391% годовых. Число дневных баров 3356, коэффициент Шарпа с нулевым смещением (нулевой % ставкой) 9,8.
Наша «подгонка» будет состоять из 2 этапов. На первом мы моделируем наличие 3 индикаторов с порогом, просто присваивая каждому приращению случайное целое от 1 до 8, которое будет номером кластера. Напомню, что каждый индикатор с порогом делит массив баров на 2 кластера, а 2^3=8. На втором этапе суммируем дневные приращения внутри каждого кластера и приписываем кластеру позицию лонг, если сумма положительна и шорт, если отрицательна. Получаем эквити, для которой можно посчитать число сделок (перемен позиции), доходность, к-т Шарпа.
Чарли Мангер показал себя как один из лучших инвесторов в мире, и стоит прислушаться к нему, чтобы понять, как вообще следует жить (а не просто “как инвестировать”).
В 2007 году Чарли читал речь в Юридической Школе USC, и начал её следующими словами: “Понятно, что многие из вас удивлены: почему же спикер настолько стар. Ну, это потому, что он ещё не помер”. Спустя 12 лет он, кстати, ещё жив, а в том выступлении он рассказал много полезного насчёт того, как следует относиться к жизни.
Какие же принципы у Чарли Мангера?
1. Основная идея такова: Чтобы получить то, что вам хочется, придётся это заслужить. Доверие, успех и восхищение приходят к тем, кто их достоин. Мне бы хотелось называть это одним из принципов либертарианской этики, но это, к сожалению, не так, там про другое. Будем считать, что это нео-либертарианство.
У меня в гостях Олег Клоченок — идеолог доходного инвестирования. Олег — один из первых в России ранних пенсионеров. Много лет живет с рынка. Советую ознакомиться с основами его стратегии на Youtube. Или прочитайте эту статью.
Источник: VK.comВы много раз писали, что для частных инвесторов халява скоро закончится. Мало у кого будет возможность жить на ренту. На чем основано это утверждение?
Мир меняется. Последние годы меняется уже ощутимо быстро. Есть ненулевая вероятность, что через 5-10 лет зарплаты будут слишком малы, чтобы откладывать больше 10%, а акции слишком дороги, чтобы 10% от зарплаты позволяли что-то купить каждый месяц и иметь с этого какой-то ощутимый дивидендный поток… То есть, ещё и дивидендная доходность станет крайне незначительной…
Всем привет!
Вдохновился данным постом ( 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)