Избранное трейдера yuryss
Прошлый раз в книжном клубе обсуждалась книга А.П. Назаретяна «Социология насилия и культура самоорганизации». Сегодня хотелось бы рассказать о монографии Сергея Кернбаха «Сверхъестественное. Научно доказанные факты».
Призываю всех делиться прочитанными книгами, писать рецензии, выражать свою интеллектуальную позицию. Ведь именно благодаря книгам наша цивилизация достигла всего, что мы имеем.
В версии 2.0 TsLab появился функционал по сбору портфеля, пока не совсем удобно, но уже что то, сдвинулось дело с мертвой точки.
Краткая инструкция:
1. Берем нашу систему, копируем все блоки
2. Создаем свой индикатор, вставляем туда все блоки
3. Удаляем графики, контрольные панели
4. Создаем новый скрипт, открываем, смотрим что у нас в панели инструментов появилась надпись самодельные
5. Берем от туда наш индикатор, кидаем в скрипт
6. Повторяем процедуру для других систем, компилируем, получаем общую кривую
Нюансы: не должно быть одинаковых названий блоков входа в одном портфеле, т.е. переименовать надо, т.е. система 1 — название блоков одно, система 2 — название блоков другое, именно блоков входа.
Что я сделал, у меня на валютах торгуются 4 основных идеи, я взял основные системы с этих идей и собрал их в 2 портфеля, по 10 систем в каждом. Каждой системе дал по 100К. В итоге получили 2 портфеля каждый из которых состоит из 10 систем. Каждый портфель на 1 мл. рублей.
В итоге получилось лучше чем я ожидал.
Портфель №1
Если взять просадку каждой системы по отдельности и просуммировать их, то получим 348 432 р., но в портфеле получили 236 492 р. (с 2015 года если смотреть), улучшение на 32%, очень хорошо.
По второму портфелю снизилась с 437 490 до 328 972, на 24,8%.
При том, что я выбрал агрессивный стиль ММ, за счет симбиоза основных систем из 4 главных идей получилось сохранить общую просадку в пределах допустимой нормы. Запустил сегодня в торги оба портфеля на новом счете. И на старом выключил часть систем и поставил эти портфели
Спасибо всем моим читателям, поддерживающим и критикующим!
Надеюсь что я принес пользу сообществу трейдеров, рассказав про практику работы с опционами.
Мой вклад можно посмотреть здесь: №1, №2, №3, №4, и пример.
Подведу итог: всего 1 пост с попыткой конструктивной критики.
Много несогласных, но всё несогласие сводится к заявлениям типа «ты сольешься потому что я считаю что это ерунда, потому что я думаю что все до тебя тоже сливались».
За исключением того единственного поста, ни одного факта, расчетов, хотя бы логически обоснованных доводов об убыточности описанной методики торговли.
А примеры, факты и расчеты это вот, например, посторонний публичный трейдер:
Добрый день, дорогие друзья!
Сегодня я хочу рассказать о перспективных, на мой взгляд, бумагах с фундаментальной точки зрения.
Начать я хочу с трёх самых «громких» бумаг:
1. АФК Система. Как вы помните ПАО «НК „Роснефть“ и ПАО АНК „Башнефть“ подали иск против АФК Система на сумму 106,6 млрд рублей. 24 мая к иску присоединилась Башкирия и из-за пересчета стоимости рубля сумма иска поднялась до 170,6 млрд рублей.
Сама же Система считает, что требования не обоснованы и истёк трёхгодовой срок давности подачи иска. На фоне иска капитализация компании упала с 22 до 12, что почти в 2 раза меньше, но и это ещё не конец падения. Привлекательная цена для покупок находится на уровне 10 рублей за акцию.
Год к году корпорация увеличила выручку на 2,8% до 698 млрд рублей, а также уменьшила свои долговые обязательства на 33%. Кроме того, Система установила минимальную дивидендную доходность в размере 6% и минимальный размер дивидендов 1,19 рублей на акцию.
Это заключительная статья по автоматическому поиску пар для «Парного трейдинга» с помощью Python. Способ самый быстрый и самый эффективный. Хотя эффективность достигается уже благодаря анализу полученного набора пар.
У Вас есть стратегия, которая показала прибыль на истории. Это замечательно! Вы вкладываете в нее деньги и смотрите, что происходит. И о ужас, она начала сливать капитал. И мы ее в мусорную корзину! Хотя, стойте. Если подумать. С точки зрения теории вероятности, в течении ближайшего времени стратегия может просто пойти в просадку! А вдруг нет? Вдруг мы имеем дело уже с трупом? Надо сходить к гадалке, может что посоветует…
Те, кто уже собрался набирать номер Гадалки (он же Гуру по бирже), можете дальше не читать.
Ищем выход. Для этого собираем варианты событий:
1) Стратегия в просадке, и скоро она выйдет из нее.
2) Стратегия умерла. Закономерность на рынке больше не проявляется. Не важно по какой причине. Если мы знаем причину, значит мы нарушаем саму стратегию (не фильтруем).
3) Стратегия временно не работает ввиду сложившегося нового информационно фона. Через определённое время она начнет приносить прибыль.
Лениво бродив по западному интернету, нашел интересную стратегию, которая своими корнями уходит к некоему Larry Connors. Стратегия построена на простом RSI с периодом 2.
Суть ее в следующем:
покупаем индексный ETF, когда значение меньше 15 на закрытии дня (да, это можно сделать без проблем и проскальзываний на всех ликвидных ETF) и продаем, когда клоуз текущего дня выше хая предыдущего (можете придумать свои выходы, стратегия не очень-то чувствительна к выходам).
В общем MR в чистом виде. И в принципе это должно работать на большинстве ETF развитых рынков.
Тестил на Multicharts.Net, код ниже.
using System; using System.Drawing; using System.Linq; using PowerLanguage.Function; using ATCenterProxy.interop; namespace PowerLanguage.Strategy { public class rsi_2_spy : SignalObject { public rsi_2_spy(object _ctx):base(_ctx){} private IOrderMarket buy_order; private IOrderMarket sell_order; private RSI m_RSI; private VariableSeries<Double> m_myrsi; private ISeries<double> Price { get; set; } protected override void Create() { // create variable objects, function objects, order objects etc. buy_order = OrderCreator.MarketThisBar(new SOrderParameters(Contracts.Default, EOrderAction.Buy)); sell_order = OrderCreator.MarketThisBar(new SOrderParameters(Contracts.Default, EOrderAction.Sell)); m_RSI = new RSI(this); m_myrsi = new VariableSeries<Double>(this); } protected override void StartCalc() { // assign inputs Price = Bars.Close; m_RSI.price = Price; m_RSI.length = 2; } protected override void CalcBar(){ // strategy logic m_myrsi.Value = m_RSI[0]; if (Bars.Close[0]>Bars.High[1]){ sell_order.Send(); return; } if (m_RSI[0]<15){ buy_order.Send(); } } } }