Блог им. 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" убрать в ссылке.

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

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

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

Читайте на SMART-LAB:
Фото
NAT.GAS: Газовый арбитраж на пороге взрыва — зажжет ли Европа американский хаб?
На европейских рынках котировки на природный газ (TTF) сегодня взлетели на 45%, превысив отметку €46/МВт·ч ($570 за 1000 м³). Европа критически...
Фото
Сегмент Non-Life RENI опубликовал отчетность по ОСБУ за 2025 год
Сегодня на e-disclosure.ru мы опубликовали отчетность ПАО «Группа Ренессанс Страхование» по ОСБУ за 12 месяцев 2025 года, которая включает в...
Фото
Павел Крутолапов назначен генеральным директором ПАО "АПРИ"
Павел Крутолапов назначен генеральным директором ПАО «АПРИ» С 2023 года Павел занимал должность главного архитектора ПАО «АПРИ»...
Фото
Хэдхантер. Ситуация на рынке труда в феврале. Мы в … трудном положении
Вышла статистика рынка труда за февраль 2026 года, которую Хедхантер публикует ежемесячно, что же там интересного: Динамика...

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

....все тэги



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