Пока суровый февраль пилит во всех торгуемых инструментах кроме NG, сижу ковыряюсь в портфельном тестировании всех систем на всех инструментах. Посчитал загрузку счета от 0 до 1. Получилась такая картина:
0 это в тех случаях, когда по всем инструментам по всем системам аут. Такого не бывает почти никогда.
1 это в тех случаях, когда по всем инструментам по всем системам полные позиции. Такого тоже почти никогда не бывает.
В среднем загрузка портфеля вышла на уровне 0,65. Почти золотое сечение:) Медиана почти совпадает со средним.
Это подневные данные.
Далее у меня возникла гипотеза, что наверное, максимальная вармаржа по счету будет в те дни, когда загрузка в портфеле не только выше средней, но и близка к единице.
Построил такую диаграмку:
Каждый трейдер по мере своего развития в торговле формирует свою торговую систему — набор правил, согласно которым он действует. Чтобы проверить свою торговую систему по истории графика используют бэктест. В бэктесте задается большое количество параметров: условие входа и выхода, объем входа и выхода, комиссия сделки, тейк профит и стоп лос сделки и так далее. По полученным данным, таким как, доходность в процентах или в валюте, количеству закрывшихся сделок по стопу или по тейк профиту, можно судить об эффективности стратегии на заданном временном промежутке истории графика.
Выбирая для бэктеста различные по типу активы и находящиеся в разной фазе инструменты, можно понять насколько ваша торговая система применима к ним.
Я тестирую свои торговые системы или индикаторы на языке программирования Pine Script в социальной сети для трейдеров Trading View. На этом языке есть встроенные функции для бэктеста, но мне было удобней написать свои и гибко менять настройки так как мне надо.
Ниже представлен код двух способов построения дивергенции. Один с помощью функции корреляции, другой с помощью функции пивот.
ta.correlation() — Коэффициент корреляции. Описывает степень, на которую две серии стремятся отклониться от своих ta.sma значений.
7 — передаем значение встроенной функции ta.rsi в переменную rsi
8 — задаем коэффициент корреляции, на который будет реагировать индикатор
9 - задаем расчетный период корреляции
11 — переносим значение встроенной функции корреляции ta.correlation в переменную correlation
14 — задаем цвет направления корреляции, изначально бесцветный
15 — с помощью тернарного оператора задаем два условия дивергенции типа Strong. Первое условие медвежьей дивергенции, цвет будет красный, второе — бычьей и цвет зеленый. В случае не выполнения обоих условий цвет будет серый.
Мы здесь: Глава 4: Какими стратегиями торговать тренд 4.4: Выходы из позиций
Ранее в книге мы определились с тем, что тренд имеет две яркие составляющие – диапазон и, собственно, сам тренд. И определились с тем, какими индикаторами и способами лучше всего определять начало тренда, то есть вход в позицию. Теперь поговорим о том, как определить завершение тренда.
Во время нахождения цены в диапазоне важен вход в позицию. Это то, про что мы говорили в предыдущих главах. Мы кладём на график каналы, ждём импульсов или пробоев параболиков, ждём направленного движения и входим на возможных прорывах.
Далее, уже после того как мы вошли в позицию, наша задача – грамотно удерживать позицию и взять как можно большее движение по тренду, если он случится. А если его не будет, получить как можно меньший убыток!
Я разделяю пять основных типов выхода из позиции:
В этой статье расскажу как с помощью функции 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(), указав год, месяц, день, час и минуты для каждой из них.