Друзья, я только начинаю программировать на языке Lua. Начал разбираться и писать бота, но возник затык. Я запускаю 1 раз программу и хочу обрабатывать каждый тик после этого. Если новый тик соответствует заданным мной условиям, то бот совершает определённые действия (покупка-продажа). Как сделать так, чтобы робот был постоянно в работе и обрабатывал каждый тик? Если возможно, то с примером куска кода
Никита, подпишите ь на приход каждого типа посредством функции crratedatasource. При этом проверьте, что ваш брокер транслирует вам тиковые данные.
функция обратного вызова, которую вы укажете параметром в этой функции, будет вызываться на каждом тике и давать вам информацию об этом тике. Что делать дальше -решать уже вам.
Никита написал: Друзья, я только начинаю программировать на языке Lua. Начал разбираться и писать бота, но возник затык. Я запускаю 1 раз программу и хочу обрабатывать каждый тик после этого. Если новый тик соответствует заданным мной условиям, то бот совершает определённые действия (покупка-продажа). Как сделать так, чтобы робот был постоянно в работе и обрабатывал каждый тик? Если возможно, то с примером куска кода
Заранее спасибо всем неравнодушным!
1) изучите программирование на Lua https://russianblogs.com/article/84611423964/ ---------------------------- 2) Изучите документацию по QLUA.и примеры в документации. ------------------------------------ 3) Если останутся вопросы, то спросите.
Никита написал: Друзья, я только начинаю программировать на языке Lua. Начал разбираться и писать бота, но возник затык. Я запускаю 1 раз программу и хочу обрабатывать каждый тик после этого. Если новый тик соответствует заданным мной условиям, то бот совершает определённые действия (покупка-продажа). Как сделать так, чтобы робот был постоянно в работе и обрабатывал каждый тик? Если возможно, то с примером куска кода
Заранее спасибо всем неравнодушным!
Ну если действительно желаете работать по тикам, то Вам надо ---------------- 1) изучить: язык программирования CИ, интерфейсы FIX/FAST https://habr.com/ru/company/iticapital/blog/243657/ 2) написать" собственное ПО для торговли 3) разместить: свой комп в дата-центре. ------------------------ В итоге у Вас получится HFT робот.
Никита, Чтобы робот был постоянно в работе, нужно его запустить и больше не останавливать. В этом случае возможны проблемы а) если упал Интернет и б) если торги прекратились. Короче, в любой момент, когда возникают перерывы в торговле у клиента, брокера, биржи или даже отдельного тикера. Поэтому скрипт должен уметь определять моменты приостановки и возобновления торгов и реагировать на них соответствующим образом.
А вот "чтобы робот обрабатывал каждый тик" делать не нужно (если, конечно, Вашей задачей не является испортить его до уровня полной неработоспособности). Тиковых массивов полно в Инете, но для отладки они практически бесполезны, поскольку не привязаны ко времени: может быть сотня тиков в секунду, а могут быть и перерывы между ними в десятки минут и более. Когда я отлаживал скрипт по историческим данным, я специально переводил тиковый массив в свечной, усредняя цену сделок, если их было несколько за секунду. В результате массив на 2 миллиона тиков превратился в массив на 6 миллионов секундных свечей. Вот с ним уже можно работать, ибо время, в отличие от тиков, течёт равномерно. То же самое в боевом режиме: тики не нужны никому и никогда, в т.ч. HFT роботам. Точно так же для торговли в Квике нафиг не нужны ни язык программирования CИ, ни интерфейсы FIX/FAST, ни размещение своего компа в дата-центре. Наконец, нынешний софт Квика вовек не позволит Вам получать все эти тики. По крайней мере, вовремя и без глюков. Да и слава богу!
Владимир, Вы правы только в том, что обрабатывать тиковые данные через proxy терминал Квик - это не лучшая затея. Хотя обрабатывать обезличенные сделки, т.е. каждый тик, вполне можно. Все зависит от задачи и скорости принятия решений. Для примера, задача: определить был ли реализован видимый объем в стакане сделками или снят - решается довольно просто, с достаточной точностью.
В остальном же, как обычно - не надо мне, не надо никому. Но мир не вращается вокруг Вас.
Nikolay, Можно, но не нужно. Бориса я переубедил - он тоже хотел считать свечи через обезличенные сделки, и у него частота сделок намного выше, чем у меня (в этом не переубедил). Это тормоза и глюки, а уж обслуживать при этом хотя бы сотню тикеров - об этом можно даже не мечтать. В Квике скорость принятия решений по ТТТ максимально возможная - остальные способы дают замедление в разы, если не на порядки.
В остальном действительно, как обычно - не надо мне, не надо никому. Не мир не вращается вокруг меня, а я даю именно те варианты решений, которые именно я считаю оптимальными, чего и другим желаю. В частности, ни объёмы, ни стаканы меня не интересуют вообще. Они не приносят никому ничего и никогда, кроме тормозов и глюков - я так ДУМАЮ!(с)
Владимир, большое спасибо! Возможно я не так начал решать задачу, которая стоит и возможно тики не нужны. Но почему я их хотел использовать и какая логика. Есть какой-то финансовый инструмент, допустим акция; есть какой-то ценовой уровень, где я хочу совершить сделку на покупку определённым объёмом. Конечно, изначально можно выставить отложенную заявку, но для чего собственно нужен робот. После того как заявка сработает и сделка будет завершена робот автоматически рассчитает тейк-профит и выставит его. Затем, в случае обновления low, робот будет двигать тейк-профит и параллельно рассчитает новый ценовой уровень для новой сделки. Собственно по тикам я хотел контролировать обновление low и уже от этого значения производить расчёты. Возможны, Вы могли бы предложить какое-то более эффективное решение в данной ситуации?
Никита, Так и я когда-то тики хотел использовать. И полностью согласен: на кой выставлять отложенные заявки, если робот и так постоянно мониторит рынок? Или на кой тогда нужен робот если их выставлять.
Да, именно так: робот двигает тейк-профит и в случае опасности разворота кидает заявку на закрывающую сделку, фиксируя прибыль. А некоторое время назад я вообще перестал выставлять заявки заранее по каким-то своим соображениям профита - фантазия рынка оказалась куда круче, чем мои доморощенные представления о нём. Поэтому я очень часто продаю по биду, а покупаю по аску, т.е. дожидаюсь момента, когда эта цена меня устраивает и лишь тогда посылаю заявку. В результате практически все мои заявки исполняются в течение пары секунд, а не висят там часами, связывая свободные деньги, вероятность исполнения близка к 100%. Правда, ходят слухи про какие-то тейкерные-мейкерные комиссии за это дело: вроде как выгодно, чтобы заявка какое-то время полежала в стакане (и прибыль от этого только вырастет, и комиссия упадёт), но когда я попробовал сдвигать цену сделки всего на один шаг цены с этой целью, четверть моих заявок перестала исполняться (я снимаю неисполненные или частично исполненные через 3 минуты), и мне это дело сильно не понравилось. Так что я теперь, скорее всего, плачу эту повышенную комиссию, да и хрен бы с ней - время дороже! Более эффективных решений я не знаю, да уже и знать не хочу: существующая версия скрипта меня вполне устраивает, за исключением некоторых мелких шероховатостей.
Владимир, Да вроде как сейчас на срочном рынке, если покупаешь через лимитные заявки, то комиссию отменили. А для тех кто торгует по рынку увеличили в 3 раза, но это не суть. Мне интересно, как правильно мониторить текущую цену (фактически цену последней сделки), если не через тики. Ваш скрипт не обращается к текущей цене?
Владимир написал: nikolz, Может, хватит безграмотные глупости писать?
Никита, Чтобы робот был постоянно в работе, нужно его запустить и больше не останавливать. :: В этом случае возможны проблемы а) если упал Интернет и б) если торги прекратились. Короче, в любой момент, когда возникают перерывы в торговле у клиента, брокера, биржи или даже отдельного тикера. Поэтому скрипт должен уметь определять моменты приостановки и возобновления торгов и реагировать на них соответствующим образом.
А вот "чтобы робот обрабатывал каждый тик" делать не нужно (если, конечно, Вашей задачей не является испортить его до уровня полной неработоспособности). Тиковых массивов полно в Инете, но для отладки они практически бесполезны, поскольку не привязаны ко времени: может быть сотня тиков в секунду, а могут быть и перерывы между ними в десятки минут и более. Когда я отлаживал скрипт по историческим данным, я специально переводил тиковый массив в свечной, усредняя цену сделок, если их было несколько за секунду. В результате массив на 2 миллиона тиков превратился в массив на 6 миллионов секундных свечей. Вот с ним уже можно работать, ибо время, в отличие от тиков, течёт равномерно. То же самое в боевом режиме: тики не нужны никому и никогда, в т.ч. HFT роботам. Точно так же для торговли в Квике нафиг не нужны ни язык программирования CИ, ни интерфейсы FIX/FAST, ни размещение своего компа в дата-центре. Наконец, нынешний софт Квика вовек не позволит Вам получать все эти тики. По крайней мере, вовремя и без глюков. Да и слава богу! ::
Увы, Владимир, это вы пишите чушь. ----------------- Вот пример Вашей глупости. Цитата: "Тиковых массивов полно в Инете, но для отладки они практически бесполезны, поскольку не привязаны ко времени" ---------------------------- Глупость Ваша в том, что тики -это конкретные контракты и они точно привязаны к конкретному времени их заключения на бирже. а вот свечи - это средний объем по интервалу и два плавающих экстремума внутри интервала с неопределенным моментом возникновения. ------------------------------ Более того, свеча это индикатор, который по определению физически не реализуем, так как начало свечи всегда меньше времени первого тика (контракта). ----------------------- В свече лишь объем является усредненным значением. =================== по тикам (т е по обезличенным сделкам ) играют крупные игроки. ================= Если у Вас телега , то это не основание, чтобы считать самолет бесполезным.
Владимир , Вы сами себе противоречите. Вы говорите, что робот не должен обрабатывать каждый тик, ------------------ а свечи секундные Вы из чего собираете и очевидно вручную? ----------------------------
Если надо вычислять свечи на интервалах меньше 1 минуты можно использовать два источника ---------------------------- 1) точное вычисление свечей - тиковый график или таблицу обезличенных сделок. 2) приближенное вычисление свечей - колбек onParam. ------------------------- но если решение о сделке принимается резе , чем 1 раз в 10 минут, то делать свечи с интервалом менее 1 минуты практического смысла не имеет. ---------------------
nikolz, Лапуль, надо бы договориться о терминах. Что Вы понимаете под "чушью"? Я - почти всё, что пишете Вы, за редчайшими исключениями, с которыми я публично соглашался - как правило, подчёркивая, что это именно исключение.
Лапуль, я неоднократно говорил, что отвечаю ЗА ВСЕ свои слова! И за сказанные более, чем за четверть века моего пребывания в Инете, и за более полувека вне его. Так что если я говорю: "Тиковых массивов полно в Инете, но для отладки они практически бесполезны, поскольку не привязаны ко времени", значит, они ПРАКТИЧЕСКИ БЕСПОЛЕЗНЫ! Как минимум, это моё мнение, а мнения мои, как правило, очень сложно опровергнуть - тем более, недоучками вроде Вас. Ну, и что же Вам в моей фразе не понравилось? Подтверждаю каждую запятую!
Лапуль, это ВАША глупость считать, "что тики привязаны к конкретному времени их заключения на бирже" только потому, что там есть таймерная отметка. Именно по этим отметкам я и переводил тиковый массив (ПРАКТИЧЕСКИ БЕСПОЛЕЗНЫЙ для отладки) в массив секундных свечей (очень даже полезный). Я даже немного описал КАК я это делал и ЗАЧЕМ, но для Вашего уровня интеллекта... короче, не берите в голову.
И снова о терминах: я много раз писал, что свечи для меня вовсе не эта "японская" дребедень, а нормальное среднее арифметическое значения курса за интервал, т.е. ОДНО, блин, значение, а не этот идиотский "джентльменский набор", который также для принятия решений практически бесполезен. И переводил я тиковый массив, разумеется, в массив НОРМАЛЬНЫХ секундных свечей, а не этой гадости. На объём, как я уже говорил... ну да, в этой самой ветке Николаю - на них мне всегда было насрать. Было, есть и будет!
Лапуль, по тикам (т е по обезличенным сделкам ) играют только дебилы, у которых нет нормального алгоритма торговли, и я сильно сомневаюсь, что это синоним "крупные игроки".
Лапуль, сколько раз повторять, что моя "телега" обслуживает ТЫСЯЧИ тикеров, а Ваш сраный "самолёт", в лучшем случае, ДЕСЯТКИ. Согласитесь, я имею некоторые основания считать Ваше говно "бесполезным".
Лапуль, не я "сам себе противоречу", а Ваши идиотские интерпретации моих слов. Да, я говорил и говорю, что робот не должен обрабатывать каждый тик. Говорил также раз 10 за время моего пребывания здесь, КАК я собираю свечи (и не только секундные, а по 10 таймфреймам, вплоть до четырёхчасовых) и ПОЧЕМУ я их вообще собираю и почему именно ТАК. Не этим же "японским" говном пользоваться! Но Ваш уровень интеллекта... ГОВНО эти Ваши "два источника"! Что тиковый график, что таблица обезличенных сделок, что колбек onParam - НИЧЕМ из этого набора я никогда не пользовался и не собираюсь. А решение о сделке, лапуль, принимается вовсе не по таймеру, а тогда, когда эту сделку следует совершить. А потому интервал между сделками может составлять и доли секунды, и минуты, и часы. Лично у меня стоит ограничение: нельзя подавать заявки чаще, чем 2 раза в секунду, но это просто страховка от отвисания Квика, чтобы не захлёбывался. А решения принимает алгоритм - тогда, когда ИМЕННО ОН посчитает это нужным.
Владимир, Ну вот опять у вас кроме словесного поноса ничего конкретного. ------------------- Если Вы все уже рассказали на форуме, так дайте ссылку, а не трындите про говно и собственную значимость. -------------------- Или вы не можете написать конкретно с числовыми данными ваших достижений, а опять будете соплями по экрану?
nikolz, Чо за истерика, лапуль? Я вообще не понял, что Вам от меня надобно. Какие ссылки? Какие числовые данные? Какие мои достижения? Всё Вам было разжёвано предельно конкретно.
В остальном же, как обычно - не надо мне, не надо никому. Но мир не вращается вокруг Вас.
Золотые слова. Именно так он и счиьает : ""ну типа не надо мне и другим запрещаю это использовать ""
А мир и наша биржевая торговля гораздо более широка и каждый из нас в праве самостоятельно убедиться в жизне способности выбранных нами стратегий. А рекомендации типа : " Не надо мне - значит не надо даже это обсуждать - это плохая попытка самоутвердиться "
БорисД, Боря, я же тебе говорил: есть железобетоннейший, надёжнейший и объективнейший критерий: размер кошелька. В смысле, скорость его изменения. И это единственно правильный способ оценки в жизнеспособности любых стратегий.
P.S. Я никогда ничего никому не запрещал и не отказывался что-либо обсуждать. Просто результаты говорят сами за себя. По тому самому критерию.
Владимир, вот завтра я у тебя этот критерий и буду выпытывать , как раз месяц заклнчился и время оценить этот результат , но только по критериям именно моим с Серегой а не только твои показатели капитализации
Владимир, в отличии от Сереги я более обьемно понимаю твои скрипты и твои прописанные в нем алгоритмы и их правила , а также блокировки для обхода этих правил.
Но давай сейчас обсудим результаты торговли тобой твоим роботом за месяц.
твой робот у себя перед отпуском с поездкой в Турцию я отключил
БорисД, Зато Серега уже умеет пользоваться меню по таймфреймам "в корыстных целях", а ты ещё нет. И с новой структурой IN-файла ты пока не справишься, а он уже как-то разбирается. А в алгоритмах, правилах и блокировках для обхода этих правил даже я не совсем объёмно всё понимаю.
А зачем ты его отключил? Я же тебе говорил: запусти его в тестовом режиме - ты же умеешь! Глядишь, добрая половина вопросов уже бы снялась. А "результаты торговли за месяц" обсуждать практически невозможно: ни ты, ни он в логи почти не смотрите, а основное обсуждение именно там. Вот вчера был интересный день: Газпром объявил, что хрен вам, а не дивиденды, и его акции тут же рухнули на 30%. А за ним и весь остальной рынок резко пошёл на снижение. Только какой-то придурок (то ли Камаз, то ли Иркут) "плыл против течения". Я-то пытался поймать один "мерцающий" глюк (описан в соседней ветке), несколько раз останавливал торги, а у Серёги рекордное количество сделок вообще за всё время! А теперь представь, что делала бы твоя любимая старая версия: сидела бы в своей ярко-красной жопе с парой-тройкой случайных сделок, а то и вовсе без них. И это было бы самой правильной линией поведения при её куцых возможностях. И вообще, приехал бы ты лучше "живьём" на пару деньков на "мозговой штурм": последний бой - он трудный самый. В т.ч. и для шлифовки алгоритмов под твой любимый срочный рынок (хотя даже там у меня вопросов почти не осталось).
Владимир написал: БорисД, И вообще, приехал бы ты лучше "живьём" на пару деньков на "мозговой штурм": последний бой - он трудный самый. В т.ч. и для шлифовки алгоритмов под твой любимый срочный рынок (хотя даже там у меня вопросов почти не осталось).
А ты что уже из гостей домой вернулся ? Приехать опять к тебе пока не могу , все таки 1300 км. расстояние , и тем более что двумя днями не обойтись . Давай лучше по старинке через интернет пообщаемся. Кстати ты все еще не ответил на вчерашнее мое письмо в эл.почте.
Владимир, тестовый включен , но что толку мне за ним наблюдать если релиз уже обновился ? А вот боевой режим как в начале июня перед Турцией отключил , так и не запускал еще его опять в боевой режим торговли на бирже.
БорисД, Нет, недели две я здесь ещё точно пробуду. Кроме того, есть вероятность, что я умотаю в Белоруссию - тоже на неделю-другую. А письма твоего я и не видел. Да, что-то пришло, сейчас посмотрю. Ты мне пришли свой IN/OUT - сам ты в нём вряд ли сумеешь поправить, а последняя версия с ним работать не будет. А там посмотрим, что и как.
Мало ли что релиз обновился. Твоя последняя версия достаточно резко отличалась от предыдущей, хотя и не так сильно как нынешняя. А боевой режим пока лучше и не запускай - слишком много изменений.
Никита написал: Друзья, я только начинаю программировать на языке Lua. Начал разбираться и писать бота, но возник затык. Я запускаю 1 раз программу и хочу обрабатывать каждый тик после этого. Если новый тик соответствует заданным мной условиям, то бот совершает определённые действия (покупка-продажа). Как сделать так, чтобы робот был постоянно в работе и обрабатывал каждый тик? Если возможно, то с примером куска кода
Заранее спасибо всем неравнодушным!
1) изучите программирование на Lua https://russianblogs.com/article/84611423964/ ---------------------------- 2) Изучите документацию по QLUA.и примеры в документации. ------------------------------------ 3) Если останутся вопросы, то спросите.
Вот ты дятел, человек как раз и изучает, а раз спрашивает, значит, не очень понятно в документации. Вали отсюда, если нормально не можешь отвечать людям.
Никита написал: Друзья, я только начинаю программировать на языке Lua. Начал разбираться и писать бота, но возник затык. Я запускаю 1 раз программу и хочу обрабатывать каждый тик после этого. Если новый тик соответствует заданным мной условиям, то бот совершает определённые действия (покупка-продажа). Как сделать так, чтобы робот был постоянно в работе и обрабатывал каждый тик? Если возможно, то с примером куска кода
Заранее спасибо всем неравнодушным!
1) изучите программирование на Lua https://russianblogs.com/article/84611423964/ ---------------------------- 2) Изучите документацию по QLUA.и примеры в документации. ------------------------------------ 3) Если останутся вопросы, то спросите.
Вот ты дятел, человек как раз и изучает, а раз спрашивает, значит, не очень понятно в документации. Вали отсюда, если нормально не можешь отвечать людям.