Блог им. hell0men

Ошибки новичков в алготрейдинге

Сборник типичных ошибок начинающего алготрейдера в TSLab и других программах позволит вам сэкономить время и деньги.


Заглядывание в будущее

Некоторые индикаторы в тестах выдают значения «из будущего». Это значит что в тесте история в будущем нам заранее известна и текущий бар будет рисовать индикатор, основываясь на будущих барах. На самом же деле этот индикатор отрисуется спустя некоторое количество баров после него. Как пример, возьмём индикаторы Fractal и ZigZag.

Иногда новички неверно пишут формулы, где указывают значения бара [i+1]. Это ошибка! Таким образом, в последовательности можно выбирать только предыдущие бары от [i-1] и далее. При этом текущий бар отмечать как [i] не нужно. — пример для TSLab

Недооценивание проскальзывания

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

ЗАДАНИЕ ПРОСКАЛЬЗЫВАНИЯ

В блок комиссии следует добавить проскальзывание на каждую сделку. Обычно я добавляю к комиссии биржи и брокера еще как минимум двухкратное проскальзывание, а для пробойных систем — четырехкратное проскальзывание.

К примеру, на Si комиссия 1 руб биржевая + 1 руб брокера = 2 руб. Прибавим двухкратное проскальзывание 2*2=4. Итого 6 руб. Если это пробойный алгоритм, то берем 2+2*4=10 руб. На RTS обычно ставлю 20-40 п.

Не забывайте, также, что с октября 2016 г комиссия на срочном рынке считается в процентах от стоимости контракта. Таким образом, на Si уже можно считать 0,006% на сделку, как минимум.

ВХОД НА ПЕРВОМ БАРЕ

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

Для этого берем блок Время в минутах (time)  и в логические формулы условия входа пишем time>=100000. То есть входим как только закрылся первый бар 100000.

ПРОБОЙНЫЕ АЛГОРИТМЫ

Когда вы делаете пробойный алгоритм и блок входа используется Открытие позиции если больше,  то учитывайте что цена входа в реальности будет не такая, как в тесте. Как правило, она хуже на величину проскальзывания. Отсюда следует, что и все параметры (стоп, тэйк) будут рассчитаны из фактической цены входа.

Например, мы входим в лонг на пробой цены 65000 п, стоп получили из оптимизации 100 п. В тесте, после пробоя, мы входим по 65000 п, после чего цена делает ретест и ныряет до 64910 п, после чего идет наверх. В реальности же мы получаем цену входа с проскальзыванием 65012 п и стоп стоит 64912 п. Нас выбило, цена ушла без нас.

Поэтому, при расчете стопа желательно брать блок Цена входа (расчетная), либо в блоке открытия позиции указывать максимальное проскальзывание на вход, а к результату оптимизации параметра прибавлять данное проскальзывание, то есть увеличивать стоп на эту величину.

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

КАК ПРАВИЛЬНО СКАЧАТЬ КОТИРОВКИ

Когда вы тестируете алгоритм на котировках, скачанных с Финам или других источников, удостоверьтесь что правильно их скачали и загрузили в программу. Как это сделать написано в FAQ .

При тесте не забывайте о том, что в момент перехода с одного фьючерса на другой, есть гэп в склейке, в Финам это 9 число месяца экспирации. Такие дни нужно вырезать из торговли, иначе результаты будут ошибочными. Сделать это можно блоком «Склейка». Скачать его можно по ссылке. 

Недооценивание комиссии и накладных расходов

К данному пункту можно отнести другую ошибку новичков — использование мелких таймфреймов. Получение множество мелких сделок могут создать иллюзию ровного графика доходности, но такая стратегия будет сливать, если заложить в нее реальное проскальзывание. Данное замечание не относится к стратегиям, где вход и выход происходят лимитными заявками, без проскальзывания.

По поводу накладных расходов. Давайте посчитаем. На текущий момент TSLab стоит около 3000 руб в месяц. Еще вам понадобится надежный VDS сервер, это еще 600-700 руб. Брокеру вы также можете платить 200 руб за обслуживание счета. А еще 13% налог государству. Теперь сложите эти расходы и посчитайте сколько вам нужно зарабатывать чтобы покрыть их. По грубым расчетам, имея счет в 100 000 руб вы просто не сможете вытягивать счет в плюс — всю прибыль, если она будет, скушают накладные расходы.

Рукоблудство

Вмешательство руками в работу алгоритма. Представьте себе ситуацию. Робота «пилит» 2 недели, эквити красная и вот началось резкое направленное движение, на счете рисуется прибыль. Алготрейдер тут же нажимает Выполнить по рынку в Менеджере команд и фиксирует прибыль. После чего цена продолжает идти в том же направлении, алготрейдер начинает сомневаться «а не рано ли я закрылся?». Может еще переоткрыть сделку как раз перед разворотом сам или это сделает робот и получит убыток. Знакомая история? Не мешайте роботу работать, а если уж пофиксили прибыль, то выключите робота до конца дня и не смотрите на график. 

Пере-оптимизация или подгонка

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

Как этого избежать?


ПРАВИЛЬНОЕ ТЕСТИРОВАНИЕ НА ИСТОРИИ

Всегда используйте форвард-тестирование. Оставляйте четверть периода оптимизации для проверки робота на данных, которые он не видел. Тестируя на 2012-2015 году, оставляйте 2016 г для тестов. Показатели на форвард тесте также не гарантируют доходность.

Рынок меняется и 2016 г был не похож на предыдущие. Дополнительным методом проверки может быть тест на других инструментах и других тайм-фреймах.

Еще одна ошибка — выбор параметров, которые дают слишком мало сделок. В таком случае результат оптимизации может быть подгонкой под небольшое количество прибыльных сделок. Оценить работу алгоритма, имея всего лишь 30-40 сделок, объективно нельзя. Желательно иметь репрезентативную выборку от 100 сделок.

ЧЕМ МЕНЬШЕ ПАРАМЕТРОВ — ТЕМ ЛУЧШЕ

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

TSLab позволяет использовать в формулах преобразования класса Math. из .NET Framework. Это позволяет брать модули, корни, логарифмы, округлять числа и так далее. 

Чем больше параметров, индикаторов и фильтров вы используете, тем больше будет оптимизация под историю.

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

Ошибки новичков в алготрейдинге 
Кстати, в декабре я и Frend организуем вебинар по построению прибыльной системы на акциях без применения оптимизации. Система очень интересная и её можно будет купить для TSLab или торговать руками. Приходите

P.S. Тимофей Мартынов , пару доработок по сайту. В профиле, когда вводишь свой сайт с https:// неверно отображается ссылка. И второе — оглавление в посте содержит лишний атрибут и при переходе по ней открывается новая страничка, надо target="_blank" убрать в ссылке.

613 | ★28
9 комментариев
спасибо, учтем

Сделал я как-то систему. На EURUSD — работала как грааль с 2000 до 2013 года (2 года на живом рынке). Продавал я ее трейдерам и неплохо поднял денег. А потмо в 2013м она сломалась. Тогда все трендовые системы сломались. Такие дела, пацаны.

avatar
«Заглядывание в будущее» — хорошая штука для сравнения (и построения новых) индикаторов.
avatar
MS, «хорошая» 
avatar
ELab, без скобок. Можно выяснить какой из индикаторов даёт более точные сигналы в среднем при условии знания будущего.
avatar
«Заглядывание в будущее» очень полезная штука для торговли. Всегда так делаю.
avatar
По-моему, главный смысл тестирования на истории — не принять хорошую идею, а отказаться от изначально плохой.
avatar
Salamandra, тоже верно. Это называется критическим мышлением. Даже вставлю видео в пост на эту тему.
ТС лаб в свое время хорошо помог. скрипты/тесты ускорили понятия «как надо работать»
avatar

Читайте на SMART-LAB:
Фото
Актуальный состав портфеля и взгляд на рынок 2026: по-прежнему 0% позитива.
Добрый вечер! С момента предыдущего поста, касающегося моего портфеля, прошел квартал.  Пришло время актуализировать его состав. Также поделюсь...
Фото
Биткоин попробует разыграть «треугольную карту»?
«Цифровое золото» прорвало верхнюю границу восходящего треугольника на уровне 94 500 и сейчас тестирует пробитую горизонталь, формируя серию...
Фото
Индикатор Fractal: торговые сигналы и робот для OsEngine. Видео
В этом видео разбираем индикатор Fractal Билла Вильямса — один из самых известных инструментов в трейдинге. Покажем, как формируются фракталы,...
Фото
Стратегия 2026 по рынку акций от Mozgovik Research: трудный год, но, возможно, последний год низких цен
Сегодня у меня первый день официального отпуска. За окном темная звездная ночь, яркая белая луна, +24С и шум волн Андаманского моря. Неудачный...

теги блога Александр Элс

....все тэги



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