Блог им. SciFi

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

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

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

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

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

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

Описательная статистика

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

Данные приведены в рублях. Видно, что лучшая сделка была совершена роботом. Худшая — руками. Мат. ожидание робота положительное. Мат. ожидание при торговле руками у меня отрицательное.



Графики

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

Выводы

1. Робот торгует в плюс, руками я торгую в минус. С этого дня постараюсь перестать торговать руками вообще. 
2. Нужно стремиться, чтобы гистограмма имела короткий хвост слева и длинный хвост справа (как на гистограмме для робота). Для этого нужно резать убытки и дать прибыли расти. 
3. Когда я торговал руками, я не давал прибыли расти. Когда торговал робот, я четко знал, когда закрываться, поэтому давал прибыли расти.
4. Плюс робота образовался за счет длинных хвостов справа — нескольких жирных сделок. Большая часть сделок гасила друг друга. 
5. В торговле очень важна аккуратность и системность. Системно торговать руками сложнее.
6. Направленная алгоритмическая торговля на индикаторах может приносить прибыль. 


Код на R с комментариями

# КОЛИЧЕСТВЕННЫЙ АНАЛИЗ ТОРГОВОГО ЖУРНАЛА
# ©SciFi, 2016

print(getwd())
# Распечатываем расположение рабочей папки, в нее нужно положить csv файл

data <- read.csv("JournalData.csv")
# Считываем csv файл с нужными данными из журнала

names(data) <- c("n", "date", "margin", "strategy")
# Переименовываем столбцы так, чтобы названия были удобны при обращении к ним

print(head(data))
# Распечатываем первые 6 строк из считанных данных для проверки

print("Total summary")
print(summary(data$margin))
# Выводим краткую описательную статистику журнала (среднее, отклонения, макс, мин и т.д.)

data.1 <- subset(data, data$strategy==1)
# Получаем подмножество из журнала со стратегией 1 (в моем случае, 1 - это торговля роботом, 0 - торговля руками)

print("Robot trading summary")
print(summary(data.1$margin))
# Выводим описательную статистику для стратегии 1

data.0 <- subset(data, data$strategy==0)
# Аналогично для стратегии 0

print("Hand trading summary")
print(summary(data.0$margin))
# Аналогично для стратегии 0

par(mfrow=c(3,1))
# Создаем таблицу графиков с 3 строками и 1 столбцом

h <- hist(data$margin, breaks=100, main="Histogram of all margins", xlab="Margin (RUR)", ylab="Frequency", col="green", border="black")
# Строим гистограмму частоты определенного размера маржи на сделку и форматируем ее, чтобы было красиво

lines(x = d$x, y = d$y * length(x) * diff(h$breaks)[1], lwd = 2, col="blue")
# Добавляем кривую

h.0 <- hist(data.0$margin, breaks=100, main="Histogram of margins for hand trading", xlab="Margin (RUR)", ylab="Frequency", col="green", border="black")
# Строим гистограмму для ручной торговли (стратегия 0)

lines(x = d$x, y = d$y * length(x) * diff(h.0$breaks)[1], lwd = 2, col="blue")
# Добавляем кривую

h.1 <- hist(data.1$margin, breaks=100, main="Histogram of margins for robot trading", xlab="Margin (RUR)", ylab="Frequency", col="green", border="black")
# Строим гистограмму для торговли роботом (стратегия 1)

lines(x = d$x, y = d$y * length(x) * diff(h.1$breaks)[1], lwd = 2, col="blue")
# Добавляем кривую

Использованные источники

Combining Plots

How can I subset a data set

Add density lines to histogram and cumulative histogram

R:Histograms

Read table, csv


Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
357 | ★19
3 комментария
Когда торговал робот, я четко знал, когда закрываться

алгоритм в твоей голове. ты в него, просто, не веришь. поэтому, постоянно нарушаешь. поверь в свою систему и торгуй придерживаясь собственных правил: стопы, тейки. и все получится.
avatar
а как запилить абстракицю, чтобы потом можно было скормить любой csv и получить какое то заранее заданное поведение?

типа такого

statistics = Statictics.createFrom(«myfile.csv»)

statistics.drawGraph
statistics.printTable
statistics.changeField(«myFieldName», newDataset)

и тд

так можно в этом Вашем R?
sortarray sortarray, из скрипта, который я опубликовал, можно сделать функцию. Классов в R нет, есть пакеты. Любой csv скормить можно, если заранее известно, какие поля в нем точно будут. CSV считывается и превращается в data frame, своего рода таблица. Далее можно использовать только нужные поля из этой таблицы.
avatar

Читайте на SMART-LAB:
Фото
🥇 Кто покупает переработанное золото
🔥 Группа МГКЛ работает на рынке вторичного оборота драгоценных металлов под брендом «ЛОТ ЗОЛОТО». Компания аккумулирует лом драгоценных...
Фото
Очередная волна дефолтов захлестнула рынок ВДО. Итоги недели
Индекс RGBI торгуется вблизи отметки в 113,55 пунктов, демонстрируя коррекцию порядка 0,6% по итогам недели Инфляция и ОФЗ...
Инвестиции без спешки: торгуем в выходные
Алексей Девятов Клиенты Альфа-Инвестиций могут совершать сделки в выходные . Торги в эти дни не отличаются волатильностью, но если всё-таки...
Фото
Окей МСФО 6 мес. 2026 г. - самые низкие мультипликаторы сектора
Окей опубликовал финансовые результаты за 6 мес. 2026 г. Выручка компании выросла на 10,4% до 43,3 млрд руб.  Валовая прибыль выросла на...

теги блога SciFi

....все тэги



UPDONW
Новый дизайн