Всем привет 👋
Хочу обратить ваше внимание на ценовой канал на графике IMOEX и поделиться своими планами по российским акциям.
График на таймфрейме 1 неделя показываю только для того, чтобы проследили зарождение канала и дальнейшую реакцию цены на канал.
И так, друзья и коллеги, недавно провел бэктест индикатора определяющего дивергенции гистограммы типа индикатора MACD. Целью бэктеста было определить винрейт (процент побед) сделок большого количества тикеров торговых инструментов.
Бэктест проводил на тех торговых инструментах, которыми я непосредственно сам торгую, а именно: на криптовалюте и валюте, российских, американских и китайских акциях, фьючерсах на индексы. Таймфреймы (ТФ) 1D, 4h, 1h, 15m.
Отношение прибыли к риску было взято 1:1, величина тейк профита (ТП) и стоп лоса (СЛ) в процентах высчитывалась автоматически в зависимости от волатильности исследуемого тикера. Но я не делал автоматический перерасчет объёма позиции в зависимости от величины в процентах ТП и СЛ, чтобы в сделке участвовал один и тот же объем средств (планирую эту функцию добавить позже в код), поэтому процентная доходность в таблице особой информации не несет (оставил её, чтобы позже сравнить), главное винрейт и отношение прибыли к риску. Величина комиссии принята для всех инструментов в размере 0,06% (которая тоже влияет только на доходность).
Каждый трейдер по мере своего развития в торговле формирует свою торговую систему — набор правил, согласно которым он действует. Чтобы проверить свою торговую систему по истории графика используют бэктест. В бэктесте задается большое количество параметров: условие входа и выхода, объем входа и выхода, комиссия сделки, тейк профит и стоп лос сделки и так далее. По полученным данным, таким как, доходность в процентах или в валюте, количеству закрывшихся сделок по стопу или по тейк профиту, можно судить об эффективности стратегии на заданном временном промежутке истории графика.
Выбирая для бэктеста различные по типу активы и находящиеся в разной фазе инструменты, можно понять насколько ваша торговая система применима к ним.
Я тестирую свои торговые системы или индикаторы на языке программирования Pine Script в социальной сети для трейдеров Trading View. На этом языке есть встроенные функции для бэктеста, но мне было удобней написать свои и гибко менять настройки так как мне надо.
Ниже представлен код двух способов построения дивергенции. Один с помощью функции корреляции, другой с помощью функции пивот.
ta.correlation() — Коэффициент корреляции. Описывает степень, на которую две серии стремятся отклониться от своих ta.sma значений.
7 — передаем значение встроенной функции ta.rsi в переменную rsi
8 — задаем коэффициент корреляции, на который будет реагировать индикатор
9 - задаем расчетный период корреляции
11 — переносим значение встроенной функции корреляции ta.correlation в переменную correlation
14 — задаем цвет направления корреляции, изначально бесцветный
15 — с помощью тернарного оператора задаем два условия дивергенции типа Strong. Первое условие медвежьей дивергенции, цвет будет красный, второе — бычьей и цвет зеленый. В случае не выполнения обоих условий цвет будет серый.
В этой статье оценю с каким инструментом биткоин коррелирует больше всего, использовать для этого буду простой индикатор в tradingview, на базе функции корреляции.
request.security() — встроенная функция, запрашивает данные другого инструмента и / или интервала.
ta.correlation() — встроенная функция. Коэффициент корреляции. Описывает степень, на которую две серии стремятся отклониться от своих ta.sma значений
Справочно:
Коэффициент корреляции (КК) используется в статистике для измерения корреляции между двумя данными. На языке трейдеров, данные представляют собой данные акции или любого другого финансового инструмента. Корреляцией между двумя финансовыми инструментами, говоря простыми словами, называют уровень зависимости между ними. Корреляции измеряется на шкале от 1 до -1. Чем ближе к 1 находится коэффициент корреляции, тем выше положительная корреляция между двумя инструментами. Это означает, что инструменты будут двигаться вверх или вниз параллельно. Чем ближе к -1 находится коэффициент корреляции, тем сильнее два выбранных инструмента будут двигаться в противоположных направлениях. Если коэффициент имеет значение 0, то между этими инструментами корреляции нет вовсе.
В этой статье расскажу как с помощью функции timestamp, а также переменной time и time_close можно задать диапазон времени от какой-либо заданной даты до текущей даты и как задать диапазон времени между двумя заданными датами.
time — встроенная переменная, содержащая время текущего бара в UNIX формате. Это количество миллисекунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года.
time_close — время закрытия текущего бара в UNIX формате. Это количество миллисекунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года. На графиках, основанных на цене, значение этой переменной равно na.
timestamp() - встроенная функция, возвращает UNIX-время для указанной даты и времени.
В этой части кода задаем точки времени point of time через timestamp(), указав год, месяц, день, час и минуты для каждой из них.
Прежде чем перейдем к практическим примерам работы с сериями расскажу немного теории.
Основной тип данных, используемый в Pine script, называется серией. Это непрерывный список значений, который идёт назад во времени от текущего бара и где для каждого бара существует одно значение.
Серии хранят последовательность исторических значений. К ним можно получить доступ с помощью [ ] оператора. Примерами встроенных последовательных переменных являются: open, high, low, close, volume и time. Любое выражение, содержащее переменную серии, будет рассматриваться как сама серия. Например:
a = open + close + low + high // Сложение 4 серий
b = high * 3 // Умножение переменной серии на константу
c = low[1] // Ссылка на предыдущее значение «low», текущее low[0]