Блог им. XXM
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
Параметры приведены исключительно как пример для составления собственных стратегий. Для облегчения процесса запуска приложен файл Lbot180.tab для экспорта вкладки в QUIK.
На этих примерах вы можете сконструировать свои стратегии для реального счета на своих любимых акциях, фьючерсах.
Обновлена программа LbotTest (также в свободном пользовании с полным функционалом) в части корректной обработки параметра EOD (ежедневное закрытие позиций в определенное время). В комплекте для тестера 17 стратегий для Сбербанка:
[SB_A1] Стратегия на двух скользящих средних, реверсная; [SB_A2] На двух скользящих средних, с тэйк-профитом и стоп-лоссом; [SB_A3] Лонг/шорт на пересечениях MACD, реверсная; [SB_A4] Лонг/шорт на пересечениях MACD, с тэйк-профитом и стоп-лоссом; [SB_A5] входы на MACD с применением фильтра из пары скользящих средних; [SB_A6] Лонг/шорт и выход - на фиксированных уровнях; [SB_A7] Лонг/шорт - на фиксированных уровнях, с выходами по тэйк-профиту или стоп-лоссу; [SB_A8] Лонг и выход - на фиксированных уровнях; [SB_A9] Шорт и выход - на фиксированных уровнях; [SB_AA] Лонг от нижней линии канала, продажа - по верхней, фиксированный стоп-лосс; [SB_AB] Лонг от нижней линии канала, с фильтром на MACD, стоп-лосс на MACD; [SB_AC] Шорт от верхней линии канала, продажа - по верхней; [SB_AD] Шорт от верхней линии канала, с фильтром на MACD; [SB_AE] Лонг пр прорыве верхней линии, шорт - от нижней, со стопом и трейлинг-профитом; [SB_AF] Лонг от нижней линии канала, шорт - от верхней, со стопом и трейлинг-профитом. Только при пересечениях ценой линий канала; [SB_AG] входы - на свечных комбинациях, стоп и тейк-профиты - в пунктах; [SB_AX] входы - на пересечениях RSI и уровней, стоп и тейк-профиты - в процентах;
Графические пояснения:
Для облегчения запуска примеров имеются файлы-вкладки для QUIK: LbotTest_TQBR.tab (QUIK 7.19.0.51) и LbotTest_QJSIM.tab (QUIK 7.23.1.14)
Программы «as is», никаких гарантий и обязательств.
На вопросы отвечу с удовольствием!
Успехов в алготорговле!
С наступающим Новым Годом!
Не то, что говнобобот.рф, готовый продать мать родную.
KLoYH, да я смайлик не нарисовал, так-то понял.
Там все по-взрослому: Руководство пользователя, Версия 1.8, на 17 листах.
Логика действий бота основана на правилах, прописанных алготрейдером в виде четких указаний в ini-формате.
Важное уточнение: Lbot работает (т.е. открывает-закрывает) с количеством лотов, указанных в параметре WorkSize.
Но, если при открытой позиции трейдеру захочется вручную откорректировать количество бумаг через т.н. «стакан», то по получении команды «закрыть позиции» Lbot закроет ВСЕ лоты по данной бумаге. Например, WorkSize=10, Lbot в лонгах, 10 лотов. Вы решили прикупить вручную еще 15 (например, на «долгосрок»). Но при получении сигнала на закрытие позиции Lbot продаст все 25 лотов, а не только «свои» 10.
«Вот такая вот зараза» ©
Тут нужно выбирать, робот будет торговать, или ваша рука ;)
P.S. В этом «конструкторе» зачем-то сетевые функции используются.
Если вы опасаетесь этих сетевых функций, удалите их безо всякого ущерба для работоспособности «конструктора».
Эти миллисекунды в протоколе нужны для тех, кому захочется их видеть. Сам я их не применяю, т.к. стратегии все не HFT.
1. собственно программа;
2. индикатор KeltnerChannel.lua;
3. ini-файл и вкладка QUIK для демо счета QJSIM;
4. ini-файл и вкладка QUIK для TQBR.
----------------
Демо-версию QUIK беру тут: https://arqatech.com/ru/support/demo/
У Вас в примере:
OpenLong = {Close, 1} < {High, 2}
OpenShort = {Close, 1} > {Low, 5-2}
Ошибки со знаком больше/меньше нет?
NikGood, какая разница какие там знаки? Это же просто пример. Или Вы ожидаете, что оно начнет Вам рубить бабло вот прямо сразу? =)
Кстати, лучшая реклама робота (или платформы) — эквити портфеля торговых роботов, которые сам на свои деньги торгует автор этого торгового комплекса… ;-)
Не будет ошибки и в том, если кто-нибудь напишет по другому:
Дело в том, что стратегии могут быть как трендовыми, так и контртреновыми. Вы (или кто другой) вольны применять правила торговли так, как сами считаете нужным. Вы свободны в выборе правил торговли и независимы от программиста (если это не вы сами).
В этом отличие «роботов на стохастиках» или на скользящих с RSI-ями всякими от конструкторов стратегий.
NikGood, :) точно, тогда это ошибка!
Мы -д`Артаньяны!!!
вы наш местный дед мороз
Zweroboi, тонкий стеб. Улыбнуло.
grpc.io
С Наступающим! Пусть в следующем году все Ваши месяцы будут зеленые.
Жену свою я не хаю,
И никогда не брошу её.
Это со мной она стала плохая,
Взял-то ее я хорошую.
Олег Григорьев
1. https://smart-lab.ru/blog/285523.php (Конструктор стратегий «Lbot3D»)
2. https://smart-lab.ru/blog/322198.php (Lbot3D: углубление внутреннего содержания.)
НО:
Выше коллега Friendly Deep Space написал: "в версии 3D, в отличии от предшественника, добавилась возможность на один тикер вешать сразу несколько алгоритмов и применять лимитные заявки. Понятно...". Я не стал продолжать разговор про отличия Lbot и Lbot3D, ибо разговор сегодня про первую программу. Но, как вижу, все же стоит прояснить некоторые моменты, заодно ответить на ваш вопрос.
Сказать, что добавились некоторые возможности и на этом «понятно», конечно, не так. Между этими двумя программами огромные отличия! Разница сопоставима с разницей между объектом в двух измерениях и этим же объектом в пространстве 3D. Что значит «сразу несколько алгоритмов» на бумаге? Это, фактически, стратегия с управлением капитала, что недоступно в Lbot. Что значит «применение лимитированных заявок»? Это реальная возможность ловить «сквизы» и комфортно чувствовать себя на боковых участках движения цены.
И ответ на ваш вопрос:
Да, в Lbot3D «события» можно использовать в написании стратегий!
Например: факт изменения количества изменений по инструменту (https://smart-lab.ru/blog/322198.php), факт достижения цены инструмента в некоторой стратегии определенной величины (пояснение тут: https://smart-lab.ru/blog/511216.php).
А алгоритм «лесенка» реализован как таковой в Lbot3D, только он не задокументирован, т.к. для нее я выделил отдельный скрипт — fn041.lua.
Скрипт fn044.lua (отсюда: «Fn044.lua, версия 2.1», https://smart-lab.ru/blog/502068.php) «вырос» как раз из этой древней «лесенки».
"И как скачать то, если ошибка выскакивает?", не понял, про какую ошибку пишете. Ошибка при скачивании? Приведите подробности, можно в личку.
Исходники? А с какой целью интересуетесь?
Параметры задокументированы?
Например, какие в валюте а какие в процентах?
Оттуда, гл. 5 стих п.1:
Эта цифра в валюте и единицах цены инструмента. Для фьючерса на индекс РТС — в пунктах.
P.S. Спасибо большое за робота!
это или плохой индикатор, или плохая реализация хорошего индикатора.
На вопрос отвечу: не знаю. Рекомендую запустить на демо-счете и провести комплексные испытания. Но по уму — лучше переделать индикатор.
Снова небольшой вопрос возник. У меня интернет бывает вылетает и в последней стратегии, которую я запускаю, сделки почему-то закрываются после переподключения.
Вот настройки ini:
И часть лог файла:
Подскажите, пожалуйста, можно ли как-то решить эту проблему?
21:57:08; [RIM9]; 01 STOP_Long; вход= 130510; Цена= 116290; SL= 129596.43. Запрет на OpenLong на баре 45344
Помеченное красным — нечто нереальное, можно сказать — потустороннее. Если это боевой счет — дело плохо. Ибо «прилетает» такая цена, что сразу вызывается StopLoss.Даже если эта цена была в этот день, и происходит переполучение данных, в программе Lbot должна сработать защита от сделок, которые прошли ранее 60 секунд (это внутренняя цифра).
Запишите видео, если такое повторяется, пришлите ссылку, или как-нибудь покажите мне в он-лайн.
Если демо-счет — дело другое, тут никаких гарантий за адекватность котировок, насколько знаю, нет. Но, тем не менее, странно это, даже для демо.
Если вы про стратегии, то в посте приведены примеры для Газпрома, Сбербанка и Лукойла.
Ставьте свои параметры и цифры, запускайте и наслаждайтесь.
*в своё время упоминание про «скользящие средние» на просторах интернета находила. В примере это на какой бумаге? Спасибо.
Задача простая: на любом графике валют на ммвб(но скорее всего на м5 или м1) в определенный оператором момент в торговую сессию крутится лонг/шорт определенным количеством лотов от точки задаваемой оператором пока не станет позиция по тренду…
Но почему? и как вы это дружите с остальным скриптом?
Так сложилось в далеком 2014 году. В какой-то момент при чтении ini-файла программа выдавала ошибку, связанную с сообщениями о кодировке, с которой очень не хотела работать. Стоило мне включить в качестве первой строки вышеупомянутое вами «encoding = „UTF-8“», как все наладилось. Тему я тогда закрыл и более не возвращался.
Но признаюсь, что эта строка в программе НИКАКОГО участия не принимает.
Игорь Кадыров, программа обновлена: xsharp.ru или с Drive.google
Не демо.