1. Введение Многие приходят в алготрейдинг с иллюзией, что достаточно скачать «священный Грааль» — готового робота из интернета — и деньги потекут рекой. На Московской бирже это заканчивается одинаково: слитым депозитом за первые три дня.
Правда в том, что робот не зарабатывает сам по себе. Это просто очень быстрый исполнитель вашей воли. Если ваша логика ошибочна, алгоритм лишь быстрее сольет счет, исключив человеческий фактор сомнения. Сегодня мы разберем рабочие связки параметров для внутридневной торговли (дейтрейдинга) фьючерсами через терминал QUIK простым языком, без перегрузки кодом.
Важно! Данный обзор не содержит инвестиционных рекомендаций и может рассматриваться только как повод к размышлению.
2. Какая стратегия наиболее эффективна?
Для новичка в автоматизации самая губительная стратегия — контртрендовая ловля ножей. Робот будет пытаться купить на самом дне падения и продать на пике роста, собирая все шпильки стоп-лоссов крупных игроков.
Наиболее эффективный подход для старта — пробойная импульсная стратегия. Ее суть проста: цена долго копится в узком диапазоне (флэте), а затем резко вылетает наружу на повышенном объеме. Мы не пытаемся угадать разворот тренда. Мы встаем по направлению уже случившегося движения. Для алгоритма это идеальная задача: он четко видит границы диапазона и уровень объема. Нет двоякости трактовки графика.
3. Какой тайм-фрейм использовать?
Забудьте про минутный график (М1). Для дейтрейдинга фьючерсами (Si, BR, MXI) оптимальным является сочетание двух интервалов:
Рабочий ТФ: 5 минут. Здесь формируется структура свечи, понятен контекст.
ТФ для фильтра/входа: 1 минута или даже тиковый график (стакан + лента сделок).
Почему так? Минутка слишком шумная — там много ложных движений. Пятиминутка отсекает этот мусор. Алгоритм сначала оценивает общую картину на М5 (например, находимся ли мы выше скользящей средней?), а точку входа ищет уже на М1 в момент пробоя локального уровня.
4. Предпочтительные индикаторы и паттерны
Внутри дня классические осцилляторы вроде RSI или Stochastic бесполезны — они залипают в зонах перекупленности/перепроданности и дают ложные сигналы. Акцент смещается на показатели объема и волатильности:
VWAP (Volume Weighted Average Price): Средневзвешенная цена по объему. Лучший друг интрадейщика. Пока цена выше VWAP — ищем лонги, ниже — шорты. Индикатор встроен во многие сборки QUIK или добавляется через Lua-скрипты.

ATR (Average True Range): Средний истинный диапазон. Он нужен не для поиска точек входа, а для расчета Стоп-Лосса. Ставить фиксированный стоп в 100 пунктов нельзя: сегодня рынок ходит на 200, завтра на 50. Стоп должен быть кратен текущему ATR (например, 1.5 * ATR).
Паттерн «Сжатие Боллинджера»: Когда линии канала сужаются до минимума, это значит, что волатильность упала перед выстрелом. Алгоритм мониторит ширину канала и при ее падении ниже заданного порога переходит в режим повышенной готовности.
5. Фильтрация направления сделки
Чтобы не покупать против глобального ветра, любому внутридневному роботу нужен старший товарищ. Самый простой фильтр — положение цены относительно дневной экспоненциальной скользящей средней (EMA 200 на графике Д1).
Если цена на дневке выше EMA 200 — торгуем только от покупок внутри дня.
Если ниже — только продажи. Это простое правило отсечет половину убыточных сделок, когда вы пытаетесь поймать разворот мощного тренда.
6. Три альтернативы двум скользящим средним
Классическая система пересечений быстрой и медленной машки (MA Crossover) давно известна всем маркетмейкерам. Они специально водят цену вокруг этих уровней, чтобы собрать стопы. Вот три более свежих инструмента для принятия решения в QUIK:
SuperTrend
Индикатор рисует линию под ценой (в лонгах) или над ценой (в шортах). Он отлично адаптируется к волатильности и дает визуальный сигнал смены тенденции без запаздывания классических средних.
Зональная торговля по Heiken Ashi:
Вместо обычных свечей используем свечи Хейкен Аши. Они сглаживают шум. Алгоритм входит в сделку (или удерживает позицию), пока цвет тела свечи совпадает с направлением тренда и при этом отсутствует тень с противоположной стороны.
Рыночный профиль (Market Profile)
Анализ того, где прошел основной объем торгов. Если текущий бар выходит за пределы зоны стоимости (Value Area) предыдущего дня — это сильный сигнал на продолжение импульса. В QUIK это реализуется через специальные приводы или доп. модули.
Три простых правила для фильтрации ложных сигналов внутридневного робота.
Их легко перевести на язык кода (Lua или Python) и добавить в логику алгоритма:
1. Правило «Объемного подтверждения» (Фильтр пустых пробоев)
Суть
Робот игнорирует любой пробой уровня (границы флэта, локального максимума или минимума), если тиковый объем в моменте не превышает среднее значение за последние 5–10 свечей.
Как работает
Цена часто прошивает уровень просто потому, что там нет встречных заявок («пустой стакан»). Крупный игрок этим пользуется, чтобы собрать ликвидность.
Логика для кода:
Если (Текущий_объем > Средний_объем * Коэффициент_фильтра), то «Разрешить_вход". Если объема нет — это шум, робот стоит в стороне.
2. Правило «Запрета первой свечи» (Фильтр утреннего шума)
Суть: Алгоритм блокируется от совершения сделок в течение первых 5 минут после открытия основной сессии.
Как работает: Первая пятиминутка на MOEX — это время самого высокого хаоса. Спреды расширены, направление движения еще не определено, происходят случайные шпильки. В этот период работают только арбитражеры и охотники за стопами.
Логика для кода: Добавить простую проверку времени сервера (TimeCurrent()). Если текущее время меньше [Время_открытия + 5 минут], функция входа возвращает false.
3. Правило «Направления старшего ТФ» (Фильтр против тренда)
Суть: Роботу запрещено открывать контртрендовые сделки на рабочем таймфрейме (например, М5), если наклон скользящей средней (EMA) на более старшем графике (М15 или Н1) направлен в противоположную сторону.
Как работает: Это спасает от попыток ловить коррекции внутри сильного импульсного дня. Если на 15-минутке идет агрессивный рост, робот-шортист на 5-минутке будет постоянно получать по стопам.
Логика для кода: Сравниваем значения EMA(20) текущего бара и предыдущего на старшем ТФ. Если EMA[0] < EMA[1] (тренд вниз), разрешаем только продажи на рабочем ТФ. Все сигналы на покупку отсекаются без проверки прочих условий.
Пример кода: Фильтрация по объему
- НАСТРОЙКИ РОБОТА
local PERIOD_AVG = 10 -- За сколько последних свечей считать средний объем
local MULTIPLIER = 1.5 -- Во сколько раз текущий объем должен быть больше среднего
--- Функция проверки объема
-- Возвращает true, если объем свечи достаточно высок
-- @param index Индекс текущей свечи
-- @return boolean Разрешение на вход
function CheckVolumeFilter(index)
-- Защита от ошибки, если данных еще недостаточно для расчета средней
if index < PERIOD_AVG then
return false -- Не разрешаем торговать на самых первых свечах графика
end
local current_volume = getCandlesByIndex("Ваш_Класс", "Ваш_Инструмент", index, 1)[0].volume
-- Считаем суммарный объем за прошедшие периоды
local sum_vol = 0
for i = 1, PERIOD_AVG do
sum_vol = sum_vol + getCandlesByIndex("Ваш_Класс", "Ваш_Инструмент", index - i, 1)[0].volume
end
-- Вычисляем среднее значение
local avg_volume = sum_vol / PERIOD_AVG
-- ПРОВЕРКА УСЛОВИЯ
-- Если текущий объем хотя бы в 1.5 раза выше среднего шума
if current_volume > (avg_volume * MULTIPLIER) then
return true -- Сигнал подтвержден объемом
else
return false -- Это ложный пробой на "тонком" рынке, игнорируем
end
end
-- КАК ИСПОЛЬЗОВАТЬ В ОСНОВНОМ КОДЕ:
-- ... здесь ваша логика поиска уровня ...
if IsLevelBroken() then
-- Перед открытием сделки проверяем фильтр
if CheckVolumeFilter(getNumCandles("Ваш_Инструмент") - 1) then
SendOrder("B", quantity, price) -- Отправляем заявку только если объем прошел проверку
end
end
Как это работает (практическая польза):
Отсечение ночного шума: После продления сессии MOEX до позднего вечера ликвидность падает. Робот перестанет реагировать на случайные движения цены, которые происходят на объеме в 2–3 лота.
Следование за «умными деньгами»: Резкий всплеск вертикального объема обычно означает появление крупного игрока. Мы не пытаемся угадать его намерения заранее, а просто встаем в ту же сторону, когда он уже начал двигать цену.
Адаптивность: Использование множителя (MULTIPLIER) вместо фиксированного числа делает алгоритм гибким. Летом волатильность одна, зимой другая — робот сам подстраивается под текущую активность рынка через среднюю величину.
Важное замечание при тестировании: При запуске бэктеста убедитесь, что в настройках терминала QUIK включена загрузка тиковых объемов. Без галочки «Загружать данные из базы Тики» скрипт будет видеть нулевые или некорректные значения объема, и фильтр заблокирует все сделки подряд.
7. Резюме для выбора
Роботы не делают богатыми, они делают торговлю дисциплинированной. Перед тем как запускать скрипт на реальном счете, прогоните его на исторических данных (бэктест) минимум за последние полгода.
Главное правило настройки: параметры должны быть средними. Не нужно подбирать идеальный период скользящей средней под вчерашний день — он гарантированно провалится сегодня. Берите стандартные значения (например, периоды 9 и 21) и фокусируйтесь на жестком контроле риска (размер позиции и дистанция стопа).
Вопрос на засыпку
Как думаете, какой инструмент первым сдастся под напором ночных алгоритмов после продления сессии Мосбиржи до 22:00 — юань, нефть или индекс? Пишите ваши ответы в комменты!