Мистическая формула из предыдущего поста E=#X%VD была выведена эмпирически. На основе прошлого опыта. Все зависимости, которые она выражает непостоянны (это не закон типа E=mc^2). Можно говорить только о большой вероятности. В формуле изначально учитывался риск-менеджмент и диверсификация. Формализация зависимостей заставляет думать. Включать ассоциации. С такой формальности я начинал перед тем, как формализовать сами стратегии на очень простом и понятном языке Lbot3D.
Диверсификация. Особенно важна при алготрейдинге (использовании чужого труда). Пять символов обозначают 5 разных таймфреймов. Для каждого свои стратегии и свои активы (инструменты).Результат E формируется от сложения их эквити (не умножения )). D – облигации с недельным таймфреймом или деньги (кеш). V — акции на дневном таймфрейме. Фьючерсы на часовом и 4-часовом тф, соответственно X и %. Символ # — спреды на 15 минутках. Для реализации спредовой торговли на Lbot3D потребуются минимум 2 взаимосвязанные стратегии.
Вы верите в мистику? Даже перед Рождеством? Я да. Как можно торговать не веря? Ведь победить рынок невозможно… Впрочем, у нас есть общее. Мы все (почти) не верим Юджину Фаме, выдвинувшему гипотезу эффективного рынка. Иначе, зачем что-то изобретать? Искать неэффективности? Без конца проигрывать...
В свое время опубликовал статью на Смартлабе «О развитии трейдера через его … деградацию». Речь идет об упрощении трейдинга. Уверяю, это тоже развитие (в конкретной области). Это как выработка рефлексов у спортсмена. Переход от хаотичной, сложной, а значит быстро ломающейся, системы, к упорядоченной, упрощенной, а значит более надежной. Первые стратегии, которые ваял на Lbot3D были крайне сложными. Использовал 3D зависимости по полной. То есть срабатывание одной стратегии было сигналом для срабатывания другой. Конечно, у другой были свои дополнительные условия.
Ненадежность проявлялась в ошибках. Несмотря на более упрощенные инструкции языка Lbot3D, в отличие от Qlua. Описание всех условий и зависимостей занимало несколько страниц текста (max>5). Иногда, невозможно было понять почему сработала заявка на покупку (продажу) актива. Ошибка в логике? Или ошибка в описании этой логики? При усовершенствовании системы, в том числе упрощении, ошибки возникнут вновь. Но их будет чуть меньше.
До поры, до времени, каждый куда-то и в чем-то растет. Кое-кто все еще в длину. Очень многие в ширину. Есть профессиональный рост. Как вы думаете, кто был первый Java-программист в России? Без ложной скромности отвечу — я. На Java 0.9 начал программировать в ноябре 1996го. Появился, известный для своего времени, сервер (приложений и БД) — https://www.itweek.ru/idea/article/detail.php?ID=53982. После приглашения в США рост притормозился. Точнее трансформировался. Стал наемным прогером, выполняющим чужие хотелки.
Последние 3 года, рост наблюдался только в трейдинге (с перепадами). Приобрел Конструктор роботов Lbot3D 2 года назад (1го ноября 2022го). Нужен был именно конструктор. Рано или поздно, каждый трейдер приходит к своей стратегии. Чаще, постоянно идет ). От одной стратегии к другой. Да и саму стратегию требуется адаптировать. Под новые инструменты и волатильность. Показалось, копипастить текстовые фрагменты из блоков в Лбот гораздо проще и быстрее, чем перетаскивать отдельные блоки в ТСЛаб. Для написания инструкции Лботу, не нужен терминал. Текстовый редактор Notepad++ подойдет.
О конструкторе роботов 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.
Вчера у меня это получилось:
Сранья внес очередные правки в Lbot3D в связи с изменение версии Lua c 5.1 до 5.3. по результатам ночных прогонов на демо-QUIK, запустил на боевом счету на удаленном сервере и поехал на весь день за город. День был солнечный, приятный. Вечером результат работы программы тоже порадовал: стратегия MMA0, которая была в шортах с 03.06.2020, стала раздавать лимитированные заявки на покупку-продажу, причем некоторые сделки из них просто прекрасны: продажи на локальных «хаях», покупки на локальных «лоях».
Также примечательна работа стратегии MMB0: лонг от 01.06.2020 не смог реализоваться в плюс (не дошла цена до 2859.1 :(( «ну не шмогла» ) Но и стопа тоже пока нет! Тем не менее, есть повод проработать ее параметры, но это не скоро, пусть проработает еще месяц-другой.
В программе Lbot3D появилась реализация вычисления скользящего экстремума в конкретной стратегии при наличии позиции. Слово «конкретной» звучит потому, что этот самый экстремум можно использовать в других стратегиях из портфеля стратегий. Согласен, это нужно не всем. Скорее так: мало кому он нужен. Тем не менее, продолжу.
Допустим мы придумали стратегию на некотором активе, рассчитанную на тренд:
Покупаем на четверть портфеля. Если цена пошла против нас (пусть на 1%)- стопимся, но если в нашу сторону +1%, то в предположении, что мы тренде, выставим лимитированную заявку на покупку второй четверти на 0.5% ниже достигнутого экстремума: откат вероятен, и после того, как на откате вытряхнут часть пассажиров, (самых пугливых, самых недостойных :)), наш портфель зацепит еще несколько лотов и едем дальше, «на север». Но если первая четверть бумаг размещена в нашем портфеле на «долгосрок», то вторая четверть будет сразу же выставлена на продажу с профитом, например, в 1%.
Не буду утомлять вас теорией, что такое базис применительно к фьючерсным контрактам. А то придется писать такие слова, как «контанго и бэквордация», что, во-первых, скучно, а во-вторых, сильно отдалит нас от темы зарабатывания на рынке, да и оффтопом пахнёт ;)
Решил я торговать фьючерсный контракт на курс доллар США — российский рубль, Si-9.18.
Но торговать руками — это здоровье только портить, поэтому без вариантов — роботом. Готовых правил, конечно, нет: у кого есть, самим не хватает, а аналитиков читать — себя не уважать. Пришлось скачивать склеенный фьючерс с Финама и пытать эти данные на предмет поиска закономерностей ценовых движений. Ничего не нашел (плохо искал?). Попытался учесть нюансы склейки, стало только хуже.
От безысходности скачал котировки USDTOD, подкорректировал комиссию биржи и брокера под фьючерс, перезапустил тестер и voilà:
arqatech.com/ru/about/news/quik-7-10/
Цифры — шок:
Среди других нововведений версии следует отметить увеличение количества сохраняемых «свечек» графиков в локальном хранилище Рабочего места с 3000 до 65000.
Если ранее к тестированию в QUIK можно было относиться как к забаве, то теперь это становится уже интересным делом!
Скачивайте, тестируйте. Будут вопросы — пишите.