Секреты TSLab | Торговые роботы | События
21 Окт

Чем плохи программы для трейдинга ?

За свою жизнь мне пришлось разобраться с сотнями разных программ, куда входят и различные программы для трейдинга. Это и торговые терминалы и программы для создания торговых роботов и другие. За очень редким исключением, все эти программы имеют один большой минус, мешающий использованию этих программ в качестве средства для визуального анализа рынка. Попытаюсь в данной статье разобрать чем плохи программы для тейдинга, и дать практические методы решения. Возможно, производители софта прочитают, и исправят положение в лучшую сторону.

 

Чем плохи программы для трейдинга ?

Практически все программы для тейдинга, в том числе и TSLab, не имеют возможности зафиксировать масштаб оси цены. То есть передвигая график по горизонтали, мы получаем все время разную высоту  свечек и визуально изменяющиеся соотношения между ними. Это, порой, приводит к совершенно дурацким событиям, которые я имел счастье наблюдать в своей жизни. Не буду долго рассуждать, а сразу перехожу к картинкам, ибо лучше один раз увидеть, чем сто раз прочитать:

Чем плохи программы для трейдинга

Рисунок 1. Волатильный отрезок

Чем плохи программы для трейдинга

Рисунок 2. Трендовый отрезок

На рисунке 1 у нас представлен рынок с большим уровнем волатильности. Свечи здоровые, и расположены хаотично. Торговать такое нельзя. А на втором рисунке уже все более радужно и выглядит все трендово и можно торговать.

Давайте теперь поглядим на эти картинки с присутствием ценовой оси:

Чем плохи программы для трейдинга

Рисунок 3. Трендовый отрезок с осью

 

Чем плохи программы для трейдинга

Рисунок 4. Волатильный отрезок с осью

Как видим, волатильный отрезок оказался совсем не волатильным, а просто рябью во время штиля на рынке. Просто из-за того, что шкала оси цены все время меняется, у нас нет возможности сравнивать разные участки цены между собой визуально. Это большая печаль и грусть. Если мы перемещаемся по временной шкале, все время приходится соотносить текущую картинку с ценовой шкалой, что очень напрягает и усложняет процесс анализа. Человек так устроен, что картинки ему воспринимать гораздо проще чем числа.

Только одну программу знаю где реализована фиксированная шкала цены. Это программа xTick. Если кто-то может предложить другие программы для трейдинга с возможностью фиксировать шкалу оси цены, я буду благодарен.

Делаем графики своими руками.

Что же делать и как же быть? Как сию проблему обойти с минимальными трудозатратами? Для себя я решение нашел и зовется оно R. Используя стандартные текстовые файлы мы можем загрузить в R любые данные и визуализировать их на графиках. Котировки в текстовый файл можно выгружать из программы TSLab с помощью нашего кубика WriteToFile или брать их сразу с сайта Финама (но никто не застрахует от кривых котировок в таком случае). Дальше, котировки загружаются в R и нехитрыми манипуляциями выводятся на график. Тут тоже пришлось устранить одну проблему, а именно создать график достаточно большого размера, чтобы можно было комфортно разглядывать его глазами используя масштабирование.

Для примера, стандартный вариант графика цен из R:

Чем плохи программы для трейдинга

Рисунок 5. График цены в R

Вот такое получается в R по умолчанию. Логично, что пользы от него не больше чем от штатных графиков TSLab, и даже меньше. Разглядеть что либо совершенно невозможно с учетом того, что масштабирование такого графика невозможно. Полная каша. Максимум, оценить общую тенденцию. Каких то конкретных выводов сделать невозможно. Но решение есть. Пересмотрев множество различных вариантов и потратив пару дней своего времени я пришел к самому простому и универсальному решению. Мы можем выгружать график в SVG документ любого размера и затем рассматривать его простым браузером используя масштабирование и перемещение. Универсальность решения в том, что SVG является векторным форматом и легко масштабируется, а так же поддерживает любые графические подсистемы R, а их там больше чем 5. Такой набор плюсов нам не могут дать никакие программы для трейдинга, даже xTick. Выглядит все это следующим образом:

Чем плохи программы для трейдинга

Рисунок 6. График цены в SVG открытый в браузере

Чем плохи программы для трейдинга

Рисунок 7. Тот же самый график, в большем масштабе.

Все нормальные браузеры (IE к ним не относится) поддерживают открытие, скроллирование и масштабирование SVG документов, так что нам не понадобятся  дополнительные инструменты для работы с этими файлами. Я могу выгрузить сразу весь ценовой ряд за много лет, наложив на него необходимые мне индикаторы или другую графическую информацию, и спокойно разглядывать. При этом ось цены у меня всегда будет в одном масштабе и если на графике штиль, то он всегда будет таковым, независимо от перемещения вправо или влево. Для особой крутизны, мы можем ось цены выводить в логарифмическом масштабе, тогда длина свечи в 1 см в любой части графика всегда будет указывать на изменение цены на N процентов. N зависит только от масштаба и не зависит от текущей цены инструмента, что очень круто. Рыночный график ведь, сам по себе, развивается по экспоненте, поэтому логарифмический масштаб очень хорошо на него ложится.

Собственно, самое интересное

Теория, всегда хорошо. Но когда нет практики, всегда грустно. Так что, выкладываю код, позволяющий рисовать подобные графики в формате SVG и, конечно же, файл с графиком RTS за несколько лет для тех, кому лень что-то делать самостоятельно.

# ЗАГРУЗКА КОТИРОВОК ИНСТРУМЕНТА ИЗ ФАЙЛА ----
# <DATE>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>
# 20000105,110000,1150.000000,1170.000000,1080.000000,1125.000000,4188.000000
sec.raw  <- read.csv(file = "o:\\TsLab\\Quotes\\stocks_1D\\RI_1D.txt ", 
                     sep = ",", 
                     dec = ".",
                     header = T,
                     stringsAsFactors=FALSE,
                     colClasses = c("character","character","numeric","numeric","numeric","numeric","numeric")
);
colnames(sec.raw)  <- c("DATE", "TIME", "OPEN", "HIGH", "LOW", "CLOSE", "VOL");

# КОНВЕРТИРУЕМ В timeSeries ----
sec.datetime  <- paste(sec.raw[, "DATE"], sec.raw[, "TIME"], sep = " ");
sec.timeSeries  <- timeSeries(sec.raw[, c("OPEN", "HIGH", "LOW", "CLOSE", "VOL")], sec.datetime, format = "%Y%m%d %H%M%S");

# пробуем заюзать квантмод для отрисовки графика свечек более простым способом
vRange  <- range(sec$HIGH)
svg.height  <- 0.5*(vRange[2] - vRange[1]) / 1000
hRange  <- nrow(sec)
svg.width  <- hRange / (1000/80)
svg(file = "d:\\temp\\chart1.svg", width = svg.width, height = svg.height)
library(quantmod)
chartSeries(sec)
addZigZag(change = 10, percent = T)
addZigZag(change = 2, percent = T, col = "green")
dev.off()

 

И напоследок сам файл SVG.

PS: комментарии и яростная критика приветствуются.

 


comments powered by HyperComments

Артур
2017-01-03 14:52:33
Секс знакомства http://bit.ly/2hkF2s9
8
Сен
2017

Доверительное управление. Результаты в августе 2017 года.

Доверительное управление. Результаты в августе 2017 года. Стратегия “Опционы” принесла в августе прибыль в размере… »

6
Авг
2017

Доверительное управление. Результаты в июле 2017 года.

Доверительное управление. Результаты в июле 2017 года. В июле индекс РТС вновь колебался в достаточно узком… »

14
Июл
2017

Доверительное управление. Результаты в июне 2017 года.

Доверительное управление. Результаты в июне 2017 года. Июнь индекс РТС вновь провел преимущественно в боковых движениях, а… »

11
Июн
2017

Доверительное управление. Результаты в мае 2017 года.

Доверительное управление. Результаты в мае 2017 года. В мае “болтанка” индекса РТС продолжилась, на паре… »

7
Май
2017

Доверительное управление. Результаты в апреле 2017 года.

Доверительное управление. Результаты в апреле 2017 года. В апреле мы наблюдали очередной месяц “боковика” по… »