Инвестиции с нуля

От первого шага до первой прибыли

Мой роман с «Сеткой»: Как я написал бесплатного торгового робота для QUIK

Мой роман с «Сеткой»: Как я написал бесплатного торгового робота для QUIK

В мире алгоритмической торговли царит странная дихотомия. С одной стороны — дорогие «черные ящики», сулящие золотые горы, но чья внутренняя кухня скрыта за семью печатями. С другой — бескрайние просторы для гиков, готовых писать код с нуля. А где же золотая середина? Где инструмент, который был бы и умным, и прозрачным, и, что греха таить, бесплатным? Именно этот вопрос привел меня на канал magnitny в Rutube, где я нашел того самого «Сеточника», изменившего мое представление о том, как можно взаимодействовать с биржей.

Знакомство не понаслышке: Почему я выбрал «Сетку»

Мой путь, как и у многих частных алгоритмических трейдеров, начался с экспериментов с готовыми решениями. Я пробовал демо-версии различных роботов, и нельзя сказать, что они были плохи. Нет, они были удобны, как мебель из магазина — собрал по инструкции и пользуйся. Но ведь у каждого из нас своя антропометрия, свои привычки! Готовые роботы часто напоминают такую мебель: сидеть можно, но идеального комфорта нет, а главное — переделать её практически невозможно. Демо-режимы же и вовсе похожи на тест-драйв автомобиля с заблокированной коробкой передач: покататься дадут, но почувствовать всю мощь — нет.

И вот, в этих поисках гибкости и контроля, я наткнулся на цикл видеоуроков от magnitny под названием «Создаем биржевого бота под QUIK». Девять занятий, которые не просто давали рыбу, а учили удить с азов. Автор не продавал мне таинственную «супер-систему», а буквально за ручку проводил по всем этапам создания скрипта. Это был ключ к пониманию механики, а не просто кнопка «Старт». Что же представляет собой этот робот? Если кратко, это «Сеточник» — стратегия, которая покупает актив на падении и продает на росте, выставляя заявки через определенные ценовые интервалы, образуя тем самым свою сетку ордеров.

Но главное достоинство этого робота — даже не стратегия, а философия. Это открытый исходный код. Вы не просто пользуетесь программой, вы владеете ею. Вы видите каждую её «извилину», понимаете логику каждого действия и, что критически важно, можете эту логику изменить. Для меня, человека, который хочет не просто зарабатывать, но и понимать процесс, это оказалось решающим фактором.

Сердце зверя: Принцип LIFO против бухгалтерии брокера

Разбираясь, как работает «Сеточник», мы неминуемо наткнемся на первый, и пожалуй, самый интересный концептуальный камень преткновения. Представьте, что вы наполняете магазин пистолета патронами. Вы вкладываете их один за другим. Но последний патрон, который вы вложили в магазин, первым окажется в стволе. Это и есть принцип LIFO (Last In, First Out) — «последний пришел, первый ушел». Именно так считает свои сделки наш робот.

А теперь представьте, что вы — завскладом старой закалки, который выдает со склада товар строго по порядку поступления. Первая партия — первая на отгрузку. Это принцип FIFO (First In, First Out) — «первый пришел, первый ушел», и именно так по умолчанию считает прибыли и убытки ваш брокер.

Где же тут конфликт? Давайте на живом примере. Допустим, акция «Сбербанка» стоит 320 рублей. Вы покупаете одну. Цена падает до 310 — вы докупаете еще. Падает до 300 — снова покупаете. Падает до 290 — опять докупаете. Ваш «Сеточник» радостно строит сетку.

Но вот цена разворачивается и начинает расти. При достижении цены в 300 рублей робот продает ту самую последнюю, купленную за 290, акцию, фиксируя прибыль в 10 рублей (300 — 290). При 310 рублей продается следующая, купленная за 300, — еще +10 рублей. В вашей голове и в логике робота — красота, общая прибыль 20 рублей.

А что видит брокер? Он, как наш завскладом, считает по FIFO. Он «решает», что при цене 300 рублей вы продали самую первую акцию, купленную за 320 рублей. И фиксирует убыток в 20 рублей! А следующую сделку он посчитает с нулевой прибылью. Итог: ваш портфель в личном кабинете светится красным, хотя по факту вы уже в плюсе.

Так кто же прав? Оба метода расчета имеют право на жизнь. Это просто разные системы учета. Паника здесь неуместна. Магия заключается в том, что когда вы закроете все позиции по данному активу, итоговый финансовый результат по обоим методам окажется абсолютно идентичным. Главное — не поддаваться эмоциям при виде временного «красного» света от брокера.

Темная сторона силы: Риски, о которых нужно знать

Любая мощная стратегия — это не только инструмент для заработка, но и потенциальное оружие самоуничтожения, если не понимать её ограничений. «Сеточник» в этом плане подобен гоночному автомобилю: без грамотного управления он разобьется о стену на первом же вираже. Его главная уязвимость — однонаправленный тренд.

Что происходит, когда рынок, вместо того чтобы колебаться, решает уверенно и долго падать (при игре на понижение — расти)? «Сеточник», верный своей логике, продолжает докупать актив. Каждая новая покупка кажется ему все выгоднее. Он с энтузиазмом тратит ваши деньги, усредняя цену входа. Но ведь депозит не бездонен — в какой-то момент он закончится!

А теперь представьте, что на вашем счете разрешена маржинальная торговля. Робот, не долго думая, начнет покупать уже в долг у брокера. И вот он, момент истины — маржин-колл. Брокер, не склонный к сантиментам, принудительно закрывает ваши позиции по самой невыгодной цене, фиксируя все убытки разом. История знает немало примеров, когда такие стратегии «усреднения» разоряли целые фонды.

Именно поэтому создатель «Сетки» magnitny заложил в робота предохранитель — параметр «Максимум лотов». Это ваш стоп-кран. Это тот рубеж, дальше которого вы не позволяете роботу заходить, как бы соблазнительно ни выглядела цена. Установите этот лимит, исходя не из жадности, а из холодного расчета и своих правил риск-менеджмента. Помните, ваша задача — не выиграть в лотерею, а вести размеренную и контролируемую торговлю.

От теории к практике: Как я подогнал скрипт под себя

Найти инструмент — это полдела. Настоящее искусство — сделать его своим. Робот от magnitny изначально был написан для срочного рынка (фьючерсы), а мое сердце лежит к фондовому (акции). И здесь открылся простор для творчества. Я не стал делать универсальный переключатель «фондовый/срочный» — это показалось мне избыточным. Вместо этого я просто создал вторую независимую версию робота: «Setka_F.lua» для акций, сохранив и «Setka_S.lua» для фьючерсов. Так и логичнее, и в работе надежнее.

Самым увлекательным квестом стала адаптация под реальный счет. В демо-версии QUIK царит свой, виртуальный мир, где у акций класс «QJSIM». А в реальной жизни акции торгуются в классе «TQBR». Моя первая попытка запуска робота для торговли акцией уперлась в эту не очевидную для новичка деталь. Полдня недоумения, и тайна была раскрыта. Вам же советую сразу в файле «Setka_F.lua» прописать правильные значения. Для этого достаточно открыть файл в любом текстовом редакторе.

depo = «NL0011100043» — Ваш торговый счет

class = «TQBR» — Класс для акций МосБиржи

clientCode = «10235» — Ваш код клиента

Значения depo и clientCode можно найти несколькими способами, самый простой — дважды кликните на любую строчку в стакане и вверху справа будет Торговый счет, а внизу слева Код клиента.

После этого нужно «познакомить» робота с активом, открыв файл «setka_start.txt». Здесь все интуитивно: задаете тикер (например, SBER), начальную позицию (обычно 0), направление торговли (-1 — шорт, 0 — лонг + шорт, 1 — лонг), размер лота, шаг (через какое значение цены будет выставляться следующая заявка. Удобнее в %, но в этом роботе — в абсолютных значениях), тейк (через какое значение цены будет фиксироваться прибыль) и, самое главное, тот самый защитный «Максимум лотов».

Заключение: Стоит ли игра свеч?

Скажу честно: на реальные деньги я этого робота пока не пускал. На демо-счете, с виртуальными 300 тысячами рублей, он работает как швейцарские часы, не вызывая никаких нареканий. Но его истинная ценность для меня даже не в этом.

Ценность в том, что этот бесплатный, открытый скрипт стал для меня лучшим учебным пособием. Он заставил меня разобраться в тонкостях LIFO и FIFO, понять важность риск-менеджмента и почувствовать «вкус» рынка через призму алгоритма. Вы можете просто скачать готовые файлы (ссылки на скачивание находятся в конце статьи), но я настоятельно рекомендую пройти весь путь с magnitny — написать скрипт самостоятельно, шаг за шагом. Это тот случай, когда дорога важнее пункта назначения. И кто знает, возможно, пройдя ее, вы создадите не просто «Сеточника», а собственного уникального торгового робота, идеально подогнанного под вашу руку.

Чем я и планирую заняться прямо сейчас.

Мои публикации не являются инвестиционной рекомендацией.