Избранное трейдера Dmitry R.

по

Создание красивых графиков на R для RIM6

    • 11 июня 2016, 14:58
    • |
    • SciFi
  • Еще
На R можно не только делать полезные расчеты, но и представлять их в красивом виде. 

Посчитал изменения цен за 5 минут (закрытие минус открытие) для RIM6 и графически представил, насколько цена бегает в среднем и может бегать в течение этих 5 минут. Это я уже делал и показывал, но на этот раз я добавил диаграмму плотности распределения и диаграмму размаха. Ниже под графиком есть другой график — пояснение к диаграмме размаха. 

Диаграмма размаха дает представление о том, какой будет размер тела свечи с вероятностью 50% — 60 пунктов и какой размер с вероятностью более 95% — не более примерно 250 пунктов. Видно также, что цена может теоретически улететь на 800 пунктов за 5 минут. 

Данные взял за последние 10 дней. Если взять за последние 30, можно увидеть выброс на 1600 пунктов.

Также это можно использовать для расстановки заявок в стакане, если вы используете математическую модель для предсказания цены.

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

Разбор пары для парного трейдинга и как часто надо менять весовые коэффициенты в парном трейдинге (SBRF/SBPR)

В сегодняшней статье мы рассмотрим насколько выгоден парный трейдинг и как часто необходимо менять коэффициенты при торговли разного рода парами. 

Для разбора первой стратегии возьмем популярную связку для торговцев парных стратегий: Сбербанк ао VS Сбербанк ап. Это акции одного и того же эмитента, одни обыкновенные, вторые привилегированные

Для начала предлагаю рассмотреть динамику акций с 2007 года

Разбор пары для парного трейдинга и как часто надо менять весовые коэффициенты в парном трейдинге (SBRF/SBPR)

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

Добавление и оценка влияния внешнего регрессора BRN6 в модель ARIMA для RIM6 на R

    • 10 июня 2016, 03:33
    • |
    • SciFi
  • Еще
По мотивам поста Применение ARIMA для предсказания цены на RIM6 на R

Итак, я добавил в ARIMA для RIM6 внешний регрессор — цену на нефть BRN6. И проверил — действительно ли это улучшает модель. Теоретически, должно, так как цена на нефть должна опережать РТС. Сначала меняется мировой спрос на нефть — затем уже меняется спрос на рос. активы.

И действительно — это улучшило модель. Критерий AIC, характеризующий качество модели, уменьшился, несмотря на то, что 1 параметром в модели стало больше. Кроме этого, ошибки модели стали меньше. В усовершенствованной версии диапазон (-100, 100), а в простой — (-200, 200).  

Гистограммы остатков моделей

Добавление и оценка влияния внешнего регрессора BRN6 в модель ARIMA для RIM6 на R

Здесь на верхнем графике ошибки (остатки) модели с дополнительным регрессором fit.arima.reg, а на нижнем — обычной ARIMA fit.arima.

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

Применение ARIMA для предсказания цены на RIM6 на R (Часть 2)

    • 09 июня 2016, 12:28
    • |
    • SciFi
  • Еще
Вчера написал пост Применение ARIMA для предсказания цены на RIM6 на R

Но в нем было всего 2 сделки. Непрезентативно. 

Попробовал сегодня еще раз руками поскальпить, предсказывая цену с помощью R на ближайшие 5 минут. В принципе, заработал 500 р за 17 сделок (34 операции) 1 лотом RIM6.  

Применение ARIMA для предсказания цены на RIM6 на R (Часть 2)

Выводы

1. ARIMA работает как я ожидал в том плане, что когда цена сильно падает, модель предсказывает цену ниже, когда цена стоит — предсказание примерно как цена закрытия. Спред считается хорошо — заявки исполняются. Когда модель предсказывает цену ниже текущей, нужно ставить заявку только на шорт. А то я ловил ножи и выходил с убытком несколько раз. 

2. Я закрывал сделку по цели, не давал прибыли течь. Может быть стоит сначала предсказывать цену на следующие 5 минут и если цена ниже, то шорт не закрывать, а держать дальше, двигая заявку на выкуп. Тогда будет экономия на комиссии и может быть удастся ловить крупные движения. 

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

Применение ARIMA для предсказания цены на RIM6 на R

    • 08 июня 2016, 12:48
    • |
    • SciFi
  • Еще
Решил копнуть чуть глубже в ARIMA и другие подобные модели. Попробовал предсказывать цену, а точнее, диапазон цен на ближайшую минуту и 5 минут и на этом сделать какие-то деньги. И что интересно, получилось. Хотя, возможно, это случайность отчасти, не тестировал на большом горизонте времени.

В комментариях к коду все есть.

ARIMA (англ. autoregressive integrated moving average, иногда модель Бокса — Дженкинса, методология Бокса — Дженкинса) — интегрированная модель авторегрессии — скользящего среднего — модель и методология анализа временных рядов. 

Основная идея этой модели в том, что цена в будущем зависит от цен в прошлом (авторегрессионная часть AR) и возврата к среднему (MA часть). А интегрированность означает то, что предварительно определяется порядок интегрированности для временного ряда. К примеру, порядок 1 означает, что разности 1 порядка являются стационарными. Для самой цены порядок интегрированности должен получаться равным 1, а для доходностей — 0. 

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

Наш ответ Бреттон-Вудским соглашениям

    • 07 июня 2016, 07:44
    • |
    • Anton
  • Еще

Финансовое положение Советского Союза к концу Великой Отечественной войны 1941 — 1945 годов складывалось драматично. Война потребовала мобилизации всех ресурсов СССР для организации разгрома нацистской Германии. Для покрытия огромных военных расходов Советскому государству пришлось выпускать в обращение больше денежных знаков, чем это вызывалось потребностями оборота. Производство продуктов и товаров для населения сократилось, снабжение ими было нормировано, введены карточки, а следовательно образовался излишек денежных знаков, и покупательная способность их постоянно падала. В то же время в условиях повышенного спроса на продукты и на товары в связи с их недостатком резко росли рыночные цены.

Наш ответ Бреттон-Вудским соглашениям

Реформа 1947 года была необходима, но руководство решило не только провести замену денежных знаков, но и модернизировать саму финансовую систему, ведь реформа проводилась после Бреттон-Вудской конференции июля 1944, на которой были приняты соглашения о принципах формирования валютных курсов и о создании МВФ и Всемирного банка. Эти соглашения не были ратифицированы СССР в декабре 1945 года, хотя наша делегация активно участвовала, насколько могла, в выработке итоговых документов конференции.



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

Поиск акций для инвестирования по критериям доходности и риска с помощью R

    • 06 июня 2016, 12:02
    • |
    • SciFi
  • Еще
На выходных перенес свой алгоритм поиска интересных акций с Python на R. Заключается он в том, что алгоритм проходится по всем более менее ликвидным акциям Московской Биржи, выгружает исторические данные за интересующий нас период, считает мат. ожидание дневной доходности, которое является мерой доходности и средне-квадратичное отклонение дневной доходности, которое является мерой риска. Далее сортирует акции по этим критериям и фильтрует с заданными трешхолдами.

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

Если взять 80 акций Мос. биржи и анализировать данные только за этот год, затем поставить фильтр, то получается следующая выборка.

Поиск акций для инвестирования по критериям доходности и риска с помощью R

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

Анализ торгового журнала и стратегий с помощью R

    • 05 июня 2016, 17:34
    • |
    • SciFi
  • Еще
Сегодня я решил провести анализ своего торгового журнала средствами и возможностями языка R.

Я понимаю, что есть специальные сервисы, которые позволяют анализировать торговый журнал. Но во-первых, они платные. Во-вторых, я веду свой журнал сам в Excel и мне удобнее было написать собственную программу. Тем более, что средствами R можно делать то, чего не будет в этих платных сервисах.

Взял все сделки на ФОРТС с 1 января по 1 июня 2016 года (за полгода). Их у меня было 565 штук. Торгую я роботом и руками по разным стратегиям, но записываю в журнал, почему открыл и закрыл каждую сделку. Стратегий было много разных, но я решил выделить все сделки в две группы — где я торговал роботом и где руками. 

Предварительно подготовил данные в Excel — выбрал только те столбцы, которые я планировал анализировать: дата сделки, маржа, номер стратегии (0 и 1 для ручной и робот. торговли). Создал файл CSV. И приступил к анализу в среде R. 

Далее я построил гистограммы маржи за каждую сделку для трех случаев — для всех сделок, для сделок роботом и сделок руками. Наложил синие линии — аппроксимацию. А также вывел описательную статистику для этих трех случаев. 

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

Анализ коинтеграции пар активов на R и можно ли торговать RTS только по Brent

    • 02 июня 2016, 06:47
    • |
    • SciFi
  • Еще
Продолжаю изучать R и делиться кодом. На этот раз проанализируем коинтегрированность. Вообще, торговать корреляции опасно, так как они могут оказаться случайными. Гораздо безопаснее коинтеграцию. Хотя и она может ломаться.

Далее используется тест Энгла-Грэнджера. Тест основан на коинтеграционном уравнении, оценённом с помощью обычного МНК. Идея теста заключается в том, что если остатки этой модели нестационарны (имеют единичный корень), то коинтеграция временных рядов отсутствует. Нулевая гипотеза — отсутствие коинтеграции, то есть наличие единичного корня в ошибках модели (коинтеграционного уравнения). Для проверки гипотезы единичного корня применяется статистика расширенного теста Дики-Фулера, однако в отличие от классического случая этого теста в данном случае критические значения статистики иные, они больше по абсолютной величине.


Коинтеграция Si со спотом
 

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

Предсказание чего угодно с использованием Python

bayes-retgurns-1080x571

Небольшая статья с ресурса http://www.talaikis.com/ о построении простой стратегии, использующую наивный байесовский классификатор при создании процесса возврата к среднему. Весь код в статье приведен на языке Python.

Это достаточно большая область исследований, но расскажем все очень кратко. Мы попытаемся найти взаимоотношение между  временными сериями  (в данном случае возьмем в качестве сигнала взаимный фонд XLF из финансового сектора, сдвинутый по времени на 1 день назад), а нашей целью будет фьючерс S&P500 в форме CFD. Будем входить в длинную позицию по этой бумаге при нулевой вероятности приращения. Логически нулевая вероятность ни о чем не говорит, другими словами, будем покупать возврат к среднему.

1. Получение данных

Y = read_mongo(dbase, "S&P5001440")
X = read_mongo(dbase, syms[s]).shift()

#готовим набор данных
res = pd.concat([X.CLOSE, Y.CLOSE], axis=1, join_axes=[X.index]).pct_change().dropna()
res.columns = ['X', 'Y']


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

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