Хочу заказать скрипт., Хочу заказать скрипт по поиску роботов, которые покупают или продают рыночными заявками.
Пользователь
Сообщений: Регистрация: 11.05.2023
13.07.2024 12:44:33
Вот поэтому я рандомно ставлю заявки как по времени, так и по объемам))) А еще есть айсберги и никто не запрещает их ставить по несколько штук с разными объемами. Кстати, есть ли в луа функция генератора случайных чисел без повторений с момента каждого запуска? Смутно представляю, что даст определение таких роботов. Хотите заранее перед ними успеть? И потом продавать им подороже? Так они могут и не купить у вас))
Получить историю параметра через CreateDataSource
Пользователь
Сообщений: Регистрация: 11.05.2023
25.06.2024 15:12:44
Ну я тоже на старте один раз в main, пока что-то вменяемое не придет. Но даже один раз очень долго для 50 инструментов если грузить. Обычные ценовые свечи намного быстрее грузятся. А эти данные, OFFERDEPTHT, очень медленно, как будто он всю историю заново грузит за несколько лет.
Получить историю параметра через CreateDataSource
Пользователь
Сообщений: Регистрация: 11.05.2023
25.06.2024 14:32:45
Вроде заработало. Но что-то для этих параметров он очень тормозить при создании CreateDataSource Может надо в настройках квика поставить где-то галку, чтоб заранее грузил? Галка "получать пропущенные данные" не влияет на скорость.
Получить историю параметра через CreateDataSource
Пользователь
Сообщений: Регистрация: 11.05.2023
25.06.2024 13:27:02
Или может я зря потом с ним работаю, как со свечами? askdepth = ASKDEPTH[i]:C(ASKDEPTH[i]:Size()-2)
Получить историю параметра через CreateDataSource
Пользователь
Сообщений: Регистрация: 11.05.2023
25.06.2024 13:10:11
Из документации я так понял, что в CreateDataSource можно указывать любой параметр из таблицы текущих торгов? Например историю OFFERDEPTHT можно так получить: ASKDEPTH[i] = CreateDataSource(SEC_CODES['class_codes'][i],SEC_CODES['sec_codes'][i],INTERVAL_M1, "OFFERDEPTHT") Но почему-то не работает??? Возвращает nil.
Альтернатива CanSell/CanBuy
Пользователь
Сообщений: Регистрация: 11.05.2023
13.04.2024 15:52:26
Ладно, с шортами можно принудительно решить проблему, вбив руками таблицу доступных элементов. Но вот то, что OnDepoLimit приходит только через несколько секунд после события у БКС, это вообще убивает всю работу скрипта. Я всегда из него брал подтверждение выставления заявки. Причем это только у БКС таки на VIP сервере, у остальных брокеров было норм. Кто-нибудь сталкивался с этим у БКС еще? Или может я зря квик обновил руками до последней версии?
Альтернатива CanSell/CanBuy
Пользователь
Сообщений: Регистрация: 11.05.2023
12.04.2024 14:55:58
is_short_allowed из getBuySellInfoEx какую то фигню выдает, даже сбер шортить нельзя, зато можно FIXP? хотя в реальности наоборот
Альтернатива CanSell/CanBuy
Пользователь
Сообщений: Регистрация: 11.05.2023
12.04.2024 14:49:24
Цитата
Serge123 написал: Из аналогичных функций есть ещё getBuySellInfoEx CalcBuySell
Попробовал все, не помогло. Проблема глубже, от брокера приходит такая неверная информация в квик. Причем в окне выставления заявки отображаются тоже неверные значения по размеру доступной операции. А есть поля просто доступности шортов в каких-то таблицах или функциях? по getBuySellInfoEx не понял что за типы клиентов и где хомяки? Тип клиента. Возможные значения: «1» – «МЛ»; «2» – «МП»; «3» – «МОП»; «4» – «МД»
Альтернатива CanSell/CanBuy
Пользователь
Сообщений: Регистрация: 11.05.2023
12.04.2024 13:59:46
Может это из-за * (единый брокерский счет)? Еще заметил, что OnDepoLimit приходит только через несколько секунд после события.
Альтернатива CanSell/CanBuy
Пользователь
Сообщений: Регистрация: 11.05.2023
12.04.2024 13:18:40
У трех брокеров всегда использовал getBuySellInfo(FIRM_ID,CLIENT_CODE,CLASS_CODE,SEC_CODE,price).can_sell для подсчета возможной позы. И там где не давали шортить can_sell = 0 выдавал. Но тут у БКС выяснилось, что эти значения не соответствуют реальности, и шортить не дают бумаги у которых can_sell не равон нулю. Есть ли в квике какая-то другая таблица с реальными значениями? Откуда еще можно узнать доступную позу?
Что изменилось в 11.1.1.11, что перестали приходить данные по CreateDataSource?
Просим Вас прислать используемый Lua-скрипт. Также уточните, пожалуйста, к какому серверу подключаетесь?
К серверу брокера. Вроде решил проблему принудительным обновлением CreateDataSource перед самым началом торгов.
Код
if SEC_CODES['m15'][i] == 0 or SEC_CODES['m15'][i] == nil then
SEC_CODES['m15'][i] = CreateDataSource(SEC_CODES['class_codes'][i],SEC_CODES['sec_codes'][i],INTERVAL_M15)
end
--- обновление свечей утром перед стартом
if (dt.hour == 9 and dt.min == 59 and dt.sec < 20) then
SEC_CODES['m15'][i] = CreateDataSource(SEC_CODES['class_codes'][i],SEC_CODES['sec_codes'][i],INTERVAL_M15)
end
local m15d = SEC_CODES['m15'][i]
SEC_CODES['pre_m15'][i] = m15d:C(m15d:Size()-1)
Но вопрос остается открытым, можно ли так обновлять результат CreateDataSource? Не занимает ли это дополнительной памяти?
После длительной работы QUIK: os.clock() =-0.001
Пользователь
Сообщений: Регистрация: 11.05.2023
20.02.2024 17:48:06
А что вам дает 1 мс, если рассинхрон с сервером брокера до 100 мс бывает? Тут как не синхронизируй часы ПК, синхронности с брокером не получишь. Даже если предположить, что это обойдем, то простая синхронизация времени ПК все равно будет не идеальна +-10 мс после синхронизации. Тут была тема про это, там все очень плохо на ПК в аппаратной части с этой точки зрения.
Что изменилось в 11.1.1.11, что перестали приходить данные по CreateDataSource?
Пользователь
Сообщений: Регистрация: 11.05.2023
20.02.2024 09:30:24
Можно ли несколько раз main (не очень часто) вызвать CreateDataSource переопределяя переменную?
Что изменилось в 11.1.1.11, что перестали приходить данные по CreateDataSource?
Пользователь
Сообщений: Регистрация: 11.05.2023
20.02.2024 01:57:59
Функцию CreateDataSource можно использовать только внутри функций main() и callback. А что будет, если в Init первый вызов был? Чет не обращал раньше на это внимание и все работало.
Что изменилось в 11.1.1.11, что перестали приходить данные по CreateDataSource?
Пользователь
Сообщений: Регистрация: 11.05.2023
20.02.2024 01:53:11
param – необязательный параметр. Если параметр не задан, то заказываются данные на основании таблицы обезличенных сделок, если задан – данные по этому параметру.
А если брокер не дает поток обезличенных сделок или отключен в настройках? Тогда как работает?
Что изменилось в 11.1.1.11, что перестали приходить данные по CreateDataSource?
Пользователь
Сообщений: Регистрация: 11.05.2023
20.02.2024 01:51:07
без последних параметров, имелось ввиду так: ds2 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1)
Что изменилось в 11.1.1.11, что перестали приходить данные по CreateDataSource?
Пользователь
Сообщений: Регистрация: 11.05.2023
20.02.2024 01:50:03
Все было нормально, но после обновления до последней версии перестали приходить данные по CreateDataSource без последних параметров. Вернее приходит только значения из открытого графика. По остальным инструментам не приходят. Уже перепробовал отключать в настройках "Исходя из настроек открытых пользователем таблиц". Не помогло. Не могу понять, что изменилось то?
CalcBuySell. Что не так?
Пользователь
Сообщений: Регистрация: 11.05.2023
23.01.2024 00:32:18
Кстати, эта функция раньше была очень тормозной. Может в 11.1 что-то изменилось?
Новая версия VCLua - библиотеки для GUI
Пользователь
Сообщений: Регистрация: 11.05.2023
16.01.2024 10:46:04
Эту штуку к квику прикрутить можно? Есть примеры такого? Круто было бы отказаться от извращений с вводом в таблицы квика. Еще хорошо бы умела графики рисовать и координаты клика мышкой по ним выдавать на событие.
Прикольно: Lua5.4 медленнее Lua5.3
Пользователь
Сообщений: Регистрация: 11.05.2023
15.01.2024 21:42:09
Как часто вы синусы в своих реальных роботах считаете? Скорее чаще идет работа с таблицами и обработка большого потока данных из потока сделок.
Что толку от jit, если квик однопоточный и большая часть тормозов внутренняя при отображении и обработке, а не в lua. Радует, что 5,4 на 20% шустрее 5,3. LuaJIT мы в квике не дождемся.
Сравнение языков программирования
Пользователь
Сообщений: Регистрация: 11.05.2023
14.12.2023 15:40:04
LuaJIT это ваша разработка? И какой от него смысл, если тормозит сам квик?
Сравнение языков программирования
Пользователь
Сообщений: Регистрация: 11.05.2023
14.12.2023 15:29:27
И что значат разноцветные точки?
Сравнение языков программирования
Пользователь
Сообщений: Регистрация: 11.05.2023
14.12.2023 15:28:47
что там по шкале?
Неверное отображение своих заявок в стакане Android X
Пользователь
Сообщений: Регистрация: 11.05.2023
08.12.2023 18:42:35
А все уже само наладилось. Пока больше таких проблем не могу выявить.
Неверное отображение своих заявок в стакане Android X
Пользователь
Сообщений: Регистрация: 11.05.2023
08.12.2023 03:41:34
Неверное отображение своих заявок в стакане Android X. На графике рядом правильно отображается. На стационарном квике тоже норм.
Страшно тормозит квик при исполнении айсберг заявки
Пользователь
Сообщений: Регистрация: 11.05.2023
10.11.2023 02:46:29
При исполнении крупной айсберг заявки состоящей из 10 частей в 1000 лотов страшно тормозит квик, практически виснет. Пакеты почти перестают приниматься. Все таблицы виснут, кроме стакана, который немного шевелится, но запаздывает по времени. Если посмотреть в это время в мобильном квике другого брокера, то заявка давно исполнилась и цена ушла ниже минут 5 назад. Вы бы хотя бы таблицы в отдельные потоки сделали и прием данных в буфер.
ПростоПример
Пользователь
Сообщений: Регистрация: 11.05.2023
23.10.2023 23:52:04
nikolz, а смысл с подкреплением обучать, а не на исторических данных? это ж сколько времени надо? вы ее на потоке сделок обучаете в онлайн? вроде же не скальперская?
ПростоПример
Пользователь
Сообщений: Регистрация: 11.05.2023
23.10.2023 20:29:15
nikolz, а где обучали в колабе или на домашнем компе с видяхой?
ПростоПример
Пользователь
Сообщений: Регистрация: 11.05.2023
23.10.2023 20:05:52
nikolz, чем бинарная лучше обычных? тем, что на домашнем компе можно обучать? Или слоев побольше можно запихать? Что-то я не слышал, чтоб они особо развивались. Там у них все тоже самое, как у обычных по структуре? Сверточные слои есть? Библиотеки хоть есть? А на обычной какие результаты были? Намного хуже? А градиентный бустинг, деревья пробовали? Ускоритель котов? Там как результаты? Говорят, нужно постоянно их дообучать на последних данных, тогда что-то полезное начинают показывать?
ПростоПример
Пользователь
Сообщений: Регистрация: 11.05.2023
18.10.2023 20:56:17
На ЛЧИ его ))
ПростоПример
Пользователь
Сообщений: Регистрация: 11.05.2023
18.10.2023 20:29:21
Хоть на чем торгует напишите. Кластерный анализ?
SearchItems не успевает обновить данные по заявкам при вызове в OnTrade
Пользователь
Сообщений: Регистрация: 11.05.2023
22.09.2023 08:16:10
скрипт выше
SearchItems не успевает обновить данные по заявкам при вызове в OnTrade
Пользователь
Сообщений: Регистрация: 11.05.2023
22.09.2023 08:15:28
nikolz, nikolz, ищу поиск и подсчет своих заявок в стакане в пределах 100 вокруг текущей ценыск
SearchItems не успевает обновить данные по заявкам при вызове в OnTrade
Пользователь
Сообщений: Регистрация: 11.05.2023
21.09.2023 23:26:10
Како же тормозной этот SearchItems. Или это у меня комп уже старый. Чтоб проверить 100 цен на наличие в них заявок уходит около минуты. Есть альтернативные методы?
Узнать точное время скриптом
Пользователь
Сообщений: Регистрация: 11.05.2023
20.09.2023 22:29:25
люди не зря наверно Плазу и колокацию биржевую придумали, а иначе надо быть готовым к задержкам в несколько секунд или даже десяткам секунд.
Узнать точное время скриптом
Пользователь
Сообщений: Регистрация: 11.05.2023
20.09.2023 22:26:24
Цитата
Serge123 написал: activation_time NUMBER Время активацииdatetime TABLE Дата и время
проще попробовать и в потоке сделок потом посмотреть время исполнения и в логах выставление заявки они могут висеть на сервере брокера до этого времени, а там уже от сервака брокера зависит, у Открытия вообще задержки по несколько секунд внутри дня бывают в "критические" дни, уж что там на открытии происходит страшно подумать
SearchItems не успевает обновить данные по заявкам при вызове в OnTrade
Пользователь
Сообщений: Регистрация: 11.05.2023
20.09.2023 15:08:39
Хах, но появилась другая проблема. Если заявка недавно выставлена, то она не находится в системе через SearchItems. Какой же этот Квик мееедленный((.
SearchItems не успевает обновить данные по заявкам при вызове в OnTrade
Пользователь
Сообщений: Регистрация: 11.05.2023
20.09.2023 12:49:04
Короче, разобрался, перекинул эти функции в OnOrder Там хоть возвращает таблицу заявок, а не сделок. Можно отфильтровывать исполненные до вызова моей findNumOrderPrice. Но как и OnTrade тоже по несколько раз вызывается на одну сделку.
SearchItems не успевает обновить данные по заявкам при вызове в OnTrade
Пользователь
Сообщений: Регистрация: 11.05.2023
20.09.2023 11:33:49
Цитата
После получения всех сделок, информация о состоянии заявки, нам больше не нужна.
А как тогда информацию о исполнении заявки брать? Я всегда из флагов заявки брал. Таблица исполненных заявок всегда содержит информацию по всем исполненным заявкам. Как тогда узнать, что больше активных заявок по этой цене не осталось?
SearchItems не успевает обновить данные по заявкам при вызове в OnTrade
Пользователь
Сообщений: Регистрация: 11.05.2023
20.09.2023 10:38:24
поправочка myLog('norders='..tostring(#norders)) возвращает данные до сделки
SearchItems не успевает обновить данные по заявкам при вызове в OnTrade
Пользователь
Сообщений: Регистрация: 11.05.2023
20.09.2023 10:36:48
Пытаюсь найти оставшиеся заявки по текущей цене внутри OnTrade
Код
function findNumOrderPrice(ordtable, TRADE_CLASS_CODE, TRADE_SEC_CODE, fPrice)
function myFindPriceNum(C,S,F,P)
if (tostring(C) == tostring(TRADE_CLASS_CODE)) and (tostring(S) == tostring(TRADE_SEC_CODE)) and (bit.band(F, 0x1) ~= 0) and (tostring(P) == tostring(fPrice)) then
return true
end
return false
end
local norders = SearchItems(ordtable, 0, getNumberOf(ordtable)-1, myFindPriceNum, "class_code,sec_code,flags,price")
if (norders ~= nil) and (#norders > 0) then
myLog('norders='..tostring(#norders))
return #norders
end
return 0
end
Но, в таблице заявок к этому моменту не успевают обновится данные, даже флаги, что заявка исполнена. Как их принудительно перепроверить внутри этой функции? myLog('norders='..tostring(#norders)) возвращает количество в последней сделке, даже если там несколько заявок было и все они разом исполнились. Точно такой же код поиска нормально работает в main cо старыми долговисящими заявками
История ошибок выполнения скрипта
Пользователь
Сообщений: Регистрация: 11.05.2023
15.09.2023 10:13:47
Возможно добавить в ближайших версиях отображение таких ошибок в общем логе сообщений?
История ошибок выполнения скрипта
Пользователь
Сообщений: Регистрация: 11.05.2023
14.09.2023 21:01:30
Где-то в квике сохраняется история ошибок выполнения скриптов, хотя бы последнего ввполнения? Или только в окне запуска скриптов можно увидеть? А после закрытия квика больше эту ошибку н.бю. посмотреть?
Работа асберг-заявки
Пользователь
Сообщений: Регистрация: 11.05.2023
05.09.2023 01:17:16
Недавно был удивлен, ставил айсберг примерно 1% от дневного оборота по акции кусочками по 100 лотов. До этого всегда думал, что если по этой же цене стоит кто-то еще за тобой, то между кусочками айсберга его пропустят вперед твоего очередного кусочка, при удовлетворении заявки. А тут кто-то крупный бахнул по рынку и мой айсберг почти полностью съел, но не весь, а тот чел так и остался за мной. Но самое удивительной, что в потоке обезличенных сделок эта сделка прошла одной строкой в несколько тысяч контрактов. Это как? Я вообще думал, что айсберги, как и стопы, хранятся на сервере брокера и отправляются на биржу по мере исполнения кусочков? Пусть даже это ММ шалит и убрал свою же заявку перед тем как бахнуть по моей. Но в потоке сделок должны же быть видны все кусочки айсберга?
Отправка заявки айсберг с использованием полей на англ. языке
Пользователь
Сообщений: Регистрация: 11.05.2023
05.09.2023 00:31:04
Что нибудь изменилось за 4 года? Айсберг заявки также нужно на русском отправлять? Или можно на английском? В документации к луа квика поля таблицы заявок только на английском описаны.