За три года СВО мне удалось добиться доходности в +20%. Кажется не так много. Но в первый год все только начиналось. Уволился с основной работы программиста. Филиал Люксофта тогда переехал в Сербию. С появлением свободного времени начал постепенно переходить на алготорговлю роботами, используя конструктор торговых роботов Lbot3D. Перед этим важно было застолбить для себя правила мани-менеджмента.
Формула (правила) #X%VD приобрела окончательный вид только к осени 2024. До этого были постоянные изменения. Ошибки. Важно, что 5 символов и ассоциации к ним (и их комбинациям), легче запомнить. Так сказать формализоваться, быть занудой ), а это значит постоянно соблюдать дисциплину. Я отразил в них весьма конкретные принципы. Разумеется субъективные, но проверенные кровью и потом (еще задолго до кровавого СВО). Трейдинг облигациями (и паями) (D) и спредами на коротких таймфреймах (#) можно исключить из правил. Краткосрочные # особенно опасны, если отсутствует робот. Остается важнейшая и простейшая часть: X%V.
Мистическая формула из предыдущего поста E=#X%VD была выведена эмпирически. На основе прошлого опыта. Все зависимости, которые она выражает непостоянны (это не закон типа E=mc^2). Можно говорить только о большой вероятности. В формуле изначально учитывался риск-менеджмент и диверсификация. Формализация зависимостей заставляет думать. Включать ассоциации. С такой формальности я начинал перед тем, как формализовать сами стратегии на очень простом и понятном языке Lbot3D.
Диверсификация. Особенно важна при алготрейдинге (использовании чужого труда). Пять символов обозначают 5 разных таймфреймов. Для каждого свои стратегии и свои активы (инструменты).Результат E формируется от сложения их эквити (не умножения )). D – облигации с недельным таймфреймом или деньги (кеш). V — акции на дневном таймфрейме. Фьючерсы на часовом и 4-часовом тф, соответственно X и %. Символ # — спреды на 15 минутках. Для реализации спредовой торговли на Lbot3D потребуются минимум 2 взаимосвязанные стратегии.
Вы верите в мистику? Даже перед Рождеством? Я да. Как можно торговать не веря? Ведь победить рынок невозможно… Впрочем, у нас есть общее. Мы все (почти) не верим Юджину Фаме, выдвинувшему гипотезу эффективного рынка. Иначе, зачем что-то изобретать? Искать неэффективности? Без конца проигрывать...
В свое время опубликовал статью на Смартлабе «О развитии трейдера через его … деградацию». Речь идет об упрощении трейдинга. Уверяю, это тоже развитие (в конкретной области). Это как выработка рефлексов у спортсмена. Переход от хаотичной, сложной, а значит быстро ломающейся, системы, к упорядоченной, упрощенной, а значит более надежной. Первые стратегии, которые ваял на Lbot3D были крайне сложными. Использовал 3D зависимости по полной. То есть срабатывание одной стратегии было сигналом для срабатывания другой. Конечно, у другой были свои дополнительные условия.
Ненадежность проявлялась в ошибках. Несмотря на более упрощенные инструкции языка Lbot3D, в отличие от Qlua. Описание всех условий и зависимостей занимало несколько страниц текста (max>5). Иногда, невозможно было понять почему сработала заявка на покупку (продажу) актива. Ошибка в логике? Или ошибка в описании этой логики? При усовершенствовании системы, в том числе упрощении, ошибки возникнут вновь. Но их будет чуть меньше.
О конструкторе роботов Lbot3D помнят и слышали многие смартлабовцы https://smart-lab.ru/tag/lbot/. Расскажу о тестере стратегий, поддерживающем тот же язык Lbot3D. Он тоже написан на Lua и работает под управлением терминала QUIK. История о том, как я его использовал в качестве трейдера и дорабатывал, как программист, будет позже. Сейчас о функциональных возможностях. Нужна обратная связь. Для дальнейшей правки и усовершенствования.
Текущая версия тестера получила название LbotTest_2025. Ссылка для скачивания внизу. Там есть документация. Главное преимущество тестера над Lbot3D -для проверки стратегий не требуется демо-режим. Тем более — реальный. Можно работать даже в праздники ). Его достаточно, чтобы понять основные возможности Lbot3D. Сконструировать свои стратегии и проверить их на истории.
Пример LbotTest.ini файла, описывающего простейшую стратегию, на пересечении ценой скользящую среднюю. Проще некуда. Копипастом можно наплодить много таких стратегий. Меняя идентификаторы для разных инструментов и таймфреймов. Здесь Si_m15_mr — обозначение скользящей средней на 15-минутном графике для Si. ED_h_mr – скользящая средняя на часовом графике для ED.
4 года и 4 месяца прошло с выхода поста «Торговый робот на LUA для QUIK» (https://smart-lab.ru/blog/200767.php) про конструктор Lbot. За это время он повзрослел, лишился графического интерфейса и… превратился в младшего брата для Lbot3D. И если раньше для Lbot была пробная версия (с одним инструментом и одним лотом), то теперь, фактически, сам превратился в пробную версию для Lbot3D и, с этого дня, предоставляется в свободное пользование с полным функционалом:
Скачать Lbot180.zip можно тут: drive.google.com/open?id=1DL9jGEBm2Uhk89PcQdlK-ObaOe2zihnx
INI-файл написан для демо-QUIK на 3 инструмента — Сбербанк, Газпром и Лукойл. Стратегия на Газпроме — безиндикаторная, на Сбербанке — на скользящих средних, на Лукойле — на пересечениях MACD.
encoding = "UTF-8" FREQUENCY = 1000 account = NL0011100043, 10110 PositionSize = 300000 xy = 421, 0, 859, 118 ;------------------------------------------------------------------------------- [GAZP] Security = GAZP, QJSIM, Gazp_moex WorkSize = 3 // рабочий объем, в штуках; LossLimit = 100 // ограничение на убыток по стратегии OpenSlippage = 10 // допустимое проскальзывание на сделке, в количестве минимальных шагов цены; OpenLong = {Close, 1} < {High, 2} // цена 'close' предыдущей 'полной' свечи превысила 'high' предшествующего ей бара; OpenShort = {Close, 1} > {Low, 5-2} // цена 'close' предыдущей 'полной' свечи принизила 'low' 5-2 баров; StopLoss = 2 TakeProfit = 3, 1, 1 EOD = 18:29:00 //закрытия позиции в указанное время. autoBot = Y [SBER] Security = SBER, QJSIM, Sber_moex WorkSize = 10 LossLimit = 100 OpenSlippage = 10 OpenLong = {Ema1} > {Ema2} CloseLong = {Ema1} < {Ema2} OpenShort = {Ema1} < {Ema2} CloseShort = {Ema1} > {Ema2} autoBot = Y [LKOH] WorkSize = 2 Security = LKOH, QJSIM, Lkoh_moex LossLimit = 225 OpenSlippage = 10 OpenLong = cross(macd_Lkoh.0, macd_Lkoh.1) OpenShort = cross(macd_Lkoh.1, macd_Lkoh.0) ;OpenLong = {Close, 1} < {Low, 5-2} ;OpenShort = {Close, 1} > {High, 2} StopLoss = 30 TakeProfit = 50, 10, 10 autoBot = Y
Открылась бездна звезд полна; |
При наличии двух дополнительных файлов- картинок: buy_loss.bmp и sell_loss.bmp, сделки, закрывающие позиции с убытком, будут отображаться этими изображениями.
При наличии двух дополнительных файлов- картинок: buy_profit.bmp и sell_ profit.bmp, сделки, закрывающие позиции с прибылью, будут отображаться этими метками.
Если дополнительных меток не будет, то сделки «купить» и «продать» будут изображаться файлами по умолчанию: buy.bmp и sell.bmp.
скачать: http://www.xsharp.ru/tester
Устал руками торговать? хочешь уйти от эмоций?
© Мурен(а) стих 87805
Всякий трейдер рано или поздно осознает необходимость облегчить себе путь к прибыльной торговле.
И направление в этом — одно: автоматизация.
Хорошо, если есть четкое понимание своего привычного метода торговли, которое приносит прибыль — ее будет легко прописать.
Неплохо, также, понимание причин своей убыточной торговли — их не следует включать в правила торговли.
И тяжелый случай, когда описание стратегии занимает час путаного рассказа или многостраничный трактат с нечеткими схемами и противоречивыми выводами.
А ведь куда проще, казалось бы: купить по некоторой цене с тем, чтобы продать дороже, или наоборот — продать с тем, чтобы откупить дешевле.
В алготорговле это звучит так: входим в позицию (лонг или шорт) и через некоторое время выходим, с прибылью или убытком.
Эмулятор торгового робота — это программа, которая анализирует текущее состояние котировок и на основе заданной стратегии совершает виртуальные сделки в режиме реального времени.
LbotLight — скрипт на QLua, который воспроизводит работу торгового робота на основе программы Lbot.
Все действия программы LbotLight протоколируются в файл в формате CSV, на основании которого индикатор LbotEquity может построить график прибыли/убытков и количества лотов в портфеле.
«Сделки» сопровождаются звуковым сигналом с простановкой меток на графике рабочего инструмента.
Его особенности:
1. Вход и выход из позиций по лимитированным заявкам;
2. Возможность запуска неограниченного количества стратегий на одном инструменте;
Плюс — все возможности предшественника — Lbot.
Пробная версия: Яндекс.Диск
Ограничения:
1. Количество стратегий — одна.
2. Количество лотов — один.
3. Срок работы — да конца 2015 года.
Стратегия на демо-счете видео работала более 4-х часов.
Код стратегии в ini-файле:
[SB_A1]
Security = SRZ5, SPBFUT, PR_sber, A1
WorkSize = 10