Как работать с OnDepoLimit ?, Работа с callback функцией OnDepoLimit.
Пользователь
Сообщений: Регистрация: 01.02.2015
24.05.2015 16:33:05
Скрытый текст
Код
-- Флаг поддержания работы скрипта
IsRun = true;
function main()
-- Цикл будет выполнятся, пока IsRun == true
while IsRun do
sleep(1000);
end;
end;
-- Функция вызывается терминалом QUIK при получении изменений лимита по бумагам
function OnDepoLimit(dlimit)
message("Код бумаги "..tostring(dlimit.sec_code));-- STRING
message("Счет депо "..tostring(dlimit.trdaccid));-- STRING
message("Идентификатор фирмы "..tostring(dlimit.firmid));-- STRING
message("Код клиента "..tostring(dlimit.client_code));-- STRING
message("Входящий остаток по бумагам "..tostring(dlimit.openbal));-- NUMBER
message("Входящий лимит по бумагам "..tostring(dlimit.openlimit));-- NUMBER
message("Текущий остаток по бумагам "..tostring(dlimit.currentbal));-- NUMBER
message("Текущий лимит по бумагам "..tostring(dlimit.currentlimit));-- NUMBER
message("Заблокировано на продажу количества лотов "..tostring(dlimit.locked_sell));-- NUMBER
message("Заблокированного на покупку количества лотов "..tostring(dlimit.locked_buy));-- NUMBER
message("Стоимость ценных бумаг, заблокированных под покупку "..tostring(dlimit.locked_buy_value));-- NUMBER
message("Стоимость ценных бумаг, заблокированных под продажу "..tostring(dlimit.locked_sell_value));-- NUMBER
message("Цена приобретения "..tostring(dlimit.awg_position_price));-- NUMBER
message("Тип лимита "..tostring(dlimit.limit_kind));-- NUMBER Возможные значения: "0" – обычные лимиты, значение не равное "0" – технологические лимиты
message("__________");
end;
-- Функция вызывается терминалом QUIK при остановке скрипта из диалога управления и при закрытии терминала QUIK
function OnStop()
-- Останавливает цикл в функции main
IsRun = false;
end;
а также, посмотрите здесь:
Как работать с OnDepoLimit ?, Работа с callback функцией OnDepoLimit.
Пользователь
Сообщений: Регистрация: 01.02.2015
24.05.2015 16:12:12
ask to Google ->:
задайте поисковый запрос следующего содержания: site:forum.qlua.org ondepolimit
and now....
win!!! :)))
6.17.0.58 bugs collection, разработчикам на заметку. (все остальные - прошу проходить мимо и не засорять топик)
Пользователь
Сообщений: Регистрация: 01.02.2015
24.05.2015 02:50:35
насчёт документации разработчикам уже даже и перестал напоминать :) )) просто отчаился - это бесполезно. Даже тему создал: а в ответ - тишина. думаю, недолго осталось - эволюция сделает своё дело - безответственные фирмы - рано или поздно разваливаются...
sam063rus пишет: думаю, совсем было бы чудом, если со временем каким-то образом можно было бы построить полноценную "улыбку волатильности", а также весь открытый интерес по всем страйкам (страйки по абсциссе, а величина OI - по ординате разумеется). Но, это уже врядли возможно без создания полноценного модуля отрисовки чартов.
если вы готовы обсирать моё предложение, называя его ерундой - тогда, думаю, на этом лучше закончить разговор...
Volume At Price для QUIK
Пользователь
Сообщений: Регистрация: 01.02.2015
23.05.2015 16:41:45
полагаю, что Вы уже прочитали этот линк? :
хотелось бы услышать для начала какова цена проекта такого уровня (по сути, - уровня vclua)?
Volume At Price для QUIK
Пользователь
Сообщений: Регистрация: 01.02.2015
23.05.2015 16:22:33
за класс для работы с метками - тоже спасибо... :))
Volume At Price для QUIK
Пользователь
Сообщений: Регистрация: 01.02.2015
23.05.2015 15:35:16
Было бы действительно полезно, если:
таким макаром можно было бы строить и показывать отрытый интерес по опционам (put/call разными цветами). Хотя бы те страйки, которые умещаются в отображаемый диапазон окна.
думаю, совсем было бы чудом, если со временем каким-то образом можно было бы построить полноценную "улыбку волатильности", а также весь открытый интерес по всем страйкам (страйки по абсциссе, а величина OI - по ординате разумеется). Но, это уже врядли возможно без создания полноценного модуля отрисовки чартов.
Но... в любом случае, спасибо за наводку. Посмотрю, что из себя представляет библиотека: LuaFileSystem.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
23.05.2015 12:15:57
Цитата
Николай Камынин пишет: Хочу обратить внимание на то, что НЕ для подачи заявок на биржу, а лишь поручений брокеру.
если я правильно понимаю то, по крайней мере у нас в России, напрямую на рынке "физики" не имеют право торговать, а лишь институциональные инвесторы в лице брокеров и т. д. Даже если Вы торгуете напрямую через шлюз - Вы всё равно зависите от брокера - у него к вам полный доступ и именно он устанавливает вам лимиты.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
23.05.2015 12:10:28
Цитата
Николай Камынин пишет: что библиотекаQLUA сделана как копия купала.
ошибаетесь - они по-разному интегрированы в квик и уж тем более обладают разным функционалом. --------
в остальном - полностью соглашусь и поддерживаю.
Цитата
Николай Камынин пишет: Ну не умеет трактор летать. Но если очень хочется...
и как быть? Связки QUIK-QLUA-"что-то там ещё" или QUIK-"что-то там ещё" - не предлагать.
Разработка торговых роботов, Разработка торговых роботов
Николай Камынин пишет: Зачем делать открытый проект библиотеки ?
это лишь один из вариантов - "не мытьём - так катаньем". Просто если разработчики - не "телятся" - то пользователям нельзя сидеть сложа руки. Если Вы предложите полностью коммерческий проект, обладающий аналогичным функционалом и стабильностью - предлагайте и, самое главное. как уже писал - назовите его итоговую сумму (в вашем понимании).
Цитата
Николай Камынин пишет: В остальном реализуемо любые мечты буратины.
что ж, как говорится: "You are welcome!"
Разработка торговых роботов, Разработка торговых роботов
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 19:49:12
если такой умный, как здесь семафоришь - то вот тебе задание:
справишься? :))
Разработка торговых роботов, Разработка торговых роботов
а что вам моё настоящее имя? что вам это знание даст? закон РФ защищает персональную информацию.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 19:30:01
Цитата
sam063rus пишет: квик не предназначен для стабильной роботорговли по определению. бо как любое его обновление может в одночасье угробить весь депозит, за что разработчики только в очередной раз мило извиняться и пообещают исправить прискорбную ситуацию в новых своих версиях, а брокер тем временем скажет, что, цитирую дословно: "... надо учитывать риски". Ну, а биржа, весело назовёт техническим сбоем и забудет об этом, в отличии от всяких SEC - так и не анулировав сделки.
извиняюсь:)))) не в ту ветку написал:))) но, как говорится, из песни слов не выкинешь.)))
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 19:27:53
квик не предназначен для стабильной роботорговли по определению. бо как любое его обновление может в одночасье угробить весь депозит, за что разработчики только в очередной раз мило извиняться и пообещают исправить прискорбную ситуацию в новых своих версиях, а брокер тем временем скажет, что, цитирую дословно: "... надо учитывать риски". Ну, а биржа, весело назовёт техническим сбоем и забудет об этом, в отличии от всяких SEC - так и не анулировав сделки.
Разработка торговых роботов, Разработка торговых роботов
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 19:22:56
Цитата
Алексей Злобин пишет: Если считаете,что заказчики "липовые" ,то прошу милости позвонить мне на скайп alexzlo2009
:))) причём здесь ваш скайп и заказчики? :))) в таком случае, логичней было бы "засветить" скайпы именно заказчиков... :)))
Разработка торговых роботов, Разработка торговых роботов
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 19:20:22
посмотрел его след в инете - примерно с 2011г "надрывается". Странно, как за это время только сейчас до квиковского форума добралси... :)))
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 18:51:19
Раньше я почему-то считал, что микросекунда - это своего рода квант биржевого времени - т.е. время, за меньшее которого нельзя однозначно определить время сделки. Однако, уделив чуть больше времени наблюдению за Таблицей Всех Сделок (ТВС) - я пришёл к разным интересным выводам. В квике, присутствует столбец "время (мкс)" - и хоть на нём и написано "мкс" - время в нём, почему-то всегда округлено до милисекунд, на манер: 123000, 430000, 234000 и т. п. Спрашивается, м-м, э-э, ЗАЧЕМ??? Я, конечно понимаю, что мне тут всегда могут сказать: так мол, транслирует биржа. Но, думаю, врядли.
Разработка торговых роботов, Разработка торговых роботов
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 18:18:44
мАладец! + за пиар.:)))
Индикаторы в QUIK на LUA
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 09:53:56
,
предлагаю Вам сделать полезное дело: просто назовите итоговую стоимость проекта такого уровня на ваш взгляд.
Этим Вы уже поможете. А другом я вас не прошу.
Индикаторы в QUIK на LUA
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 09:51:30
,
прошу также присоединиться к обсуждению. Как Вы считаете (как программист) - сколько должен в итоге стоить проект такого уровня? (написание функционального аналога qchart.dll (возможно, с LUA-прокладкой на манер, vclua))
Индикаторы в QUIK на LUA
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 09:46:55
Цитата
Sergey Gorokhov пишет: Да он платный. Но Вы же как раз про это и говорили, не так ли
одно дело когда платишь один раз и немного (при условии достаточности участников) и совершенно другое когда каждый месяц платить за "кота в мешке" от 6000р
Индикаторы в QUIK на LUA
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 09:44:33
,
не здоровый скептицизм. Вы отвечаете за всех? При этом, даже не являясь разработчиком, а всего лишь client support...
Индикаторы в QUIK на LUA
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 09:33:52
в крайнем случае, если никто не откликнется - сделаю сам (да что греха таить - итак уже по-тихоньку делаю). Просто хотелось бы рассмотреть альтернативу.
Индикаторы в QUIK на LUA
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 09:31:49
на всякий случай, поясню: если кого-то тут пугает прямая интеграция в квик посредством dll - всегда можно сделать lua-обёртку (считай, та же dll, например, как это сделано в vclua)
Индикаторы в QUIK на LUA
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 09:29:11
Цитата
Sergey Gorokhov пишет: Если хотите создать опенсорс проект для этого есть FIX Client Connector
во первых, это несовсем то, а точнее, совсем не то, что я спрашивал. К тому же, там сказано, что у него ежемесячная плата за пользование:
кроме того, что исходный код, а также интерфейс к ней - не распространяется - я ничего нового не услышал. Но если к примеру, пусть даже сам разработчик возьмётся за это - это не станет нарушением коммерческой тайны и не вступит в корпоративный конфликт интересов - бо как нас, как пользователей интересует не абсолютно точный клон, а лишь функциональный аналог. к тому же - есть такое понятие, как clear room.
Индикаторы в QUIK на LUA
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 09:13:07
to Разработчикам (Arqa Technologies),
Вас, прошу обязательно высказаться по этому вопросу.
Индикаторы в QUIK на LUA
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 09:11:36
Предложение к остальным Пользователям и самим Разработчикам: Ввиду закрытости интерфейса qchart.dll, а также крайней "урезанности" её пользовательского функционала (хотя полный функционал для разработчиков у ней просто шикарный) - предлагаю: Создать опенсорс-проект по созданию её полного аналога, например, на кикстартере или ещё где-то. То есть, каждый участник проекта "скидывается" финансово, "сколько ему не жалко" и если итоговая сумма будет приемлемой - кто-то, например, пусть даже автор qchart.dll или неменее опытный разраб - берётся за работу. В итоге, все - в плюсе и с минимальными усилиями и даже не придётся засорять более этот форум своими очередными пожеланиями на тему GUI и его функционала в квике.
Разработчики и пользователи, задумайтесь над этим...
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 08:51:28
ладно. всем спасибо за идеи и обсуждение. Думаю, сам разберусь.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 08:45:13
Цитата
Michael Bulychev пишет: То что я привел - лишь реализация моей идеи. Вы не поставили задачу корректно и полно.
Михаил:)))) вот вам охота лишним "писательством" заниматься. У меня, выражаясь Вашим языком, вполне корректная и полная задача - сделать секундный "спидометр" сделок. -> т.е. счётчик сделок по активу за одну секунду. Под конец, я её упростил до спидометра сделок по одному конкретному инструменту.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 08:40:54
насчёт "вчерашних" коллбеков - вопрос снимается.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 08:37:25
то, что вы привели - это неполный код. соответственно, я не могу оценить его работу.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 08:28:43
полуфабрикат
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 07:43:48
что такое: persistence.lua result.lua
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 07:40:57
Цитата
Michael Bulychev пишет: Так что вчерашние сделки формально относятся к одной торговой сессии.
это всё понятно. Но, как и говорил выше - "надо оставлять прошлое - в прошлом". я - про коллбеки дневной давности.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
22.05.2015 06:56:50
Цитата
sam063rus пишет: Вопрос: ДЛя чего мне получать коллбеки из прошлого и ладно бы это было секунду/минуту назад но, не день же назад???
Лично я бы использовал в качестве счетчика таблицу, в которой ключами являются строки из кода класса, бумаги и времени на сделке с точностью до секунд. И при получении сделки накручивал значение в нужном поле.
тогда это будет просто счётчик, а не "спидометр"
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
21.05.2015 22:59:46
если есть интерес к этой теме - впоследствии выложу для всех.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
21.05.2015 22:49:24
Серж, Дмитрий - спасибо за ссылки. Почитаю. Почти решил проблему - считает но, с декрементом на единицу. Думаю, добью впоследствии. Но, в любом случае, рад новым идеям.
Volume At Price для QUIK
Пользователь
Сообщений: Регистрация: 01.02.2015
21.05.2015 20:38:54
Цитата
sam063rus пишет: горизонтальные объёмы, если по-русски?
вопрос: то, что "горизонтально" - это метки?
и последний вопрос: что будет с линиями при масштабировании окна?
Volume At Price для QUIK
Пользователь
Сообщений: Регистрация: 01.02.2015
21.05.2015 20:13:10
горизонтальные объёмы, если по-русски?
вопрос: то, что "горизонтально" - это метки?
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
21.05.2015 20:09:03
немного переделал:
Код
act_time = 0
deal_time = 0
counter = 0
is_run = true
function OnAllTrade(alltrade)
if alltrade.class_code == "SPBFUT" and alltrade.sec_code == "SiM5" then
act_time =tonumber(string.sub(getInfoParam("SERVERTIME"), 7, 8))
if act_time == deal_time then
counter=counter+1
else
do
message(act_time .. " " .. tostring(counter))
counter = 0
deal_time = tonumber(alltrade.datetime.sec)
end
end
end
end
function main()
while is_run
do
sleep(100)
end
end
function OnStop()
is_run = false
return 1000
end
стало только хуже бо как время сервера и время из таблицы невсегда совпадает.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
21.05.2015 19:19:12
Цитата
Дмитрий пишет: Проверьте настройки в "Связь / Заказ всех сделок" - возможно, там включено получение сделок по классам Фьючерсы или Опционы FORTS (дополнительная сессия). Также название этих классов может содержать в скобках слова "история пред. вечерней сессии".
я к тому, что одно дело когда они (сделки/данные) приходят для всяких таблиц и совершенно другое когда вдобавок это ещё влияет на приход коллбеков, что мне совершенно не нужно.
к тому же, я не в той ситуации когда могу отключить приход данных за вчерашнюю сессию не нарушив тем самым функционал других своих скриптов. таким образом, мне надо "и то и это" НО!!! в разных целях и без ущерба.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
21.05.2015 18:45:53
это всего лишь маленький "винтик" в моей задумке.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
21.05.2015 18:44:32
Цитата
Николай Камынин пишет: позволю предложить следующий алгоритм (так cделал бы сам): ------------------- 1) По спискам формируем таблицу играющих инструментов (критерий на ваш вкус) 2) если я ожидаю, что будут запаздывающие данные, то задаю таблицу неопределенности (т е таблицу памяти N секунд, которые могут корректироваться опоздавшими данными. 3) В колбеке считаем распределение числа сделок по N последним секундам. ------------------------------------ Ну а далее думаю - и зачем я это все посчитал???
я уже смотрел в эту сторону - но, как уже написал выше - квик будет виснуть.
Цитата
Ну а далее думаю - и зачем я это все посчитал???
а вы не думайте - я уже подумал. Вы главное, код здесь приведите.
Вопросы по OnAllTrade
Пользователь
Сообщений: Регистрация: 01.02.2015
21.05.2015 16:54:57
Дополнительная информация: Чуть изменил скрипт, чтоб отслеживал только один тикер:
Скрытый текст
Код
local act_time = 0
local prev_time = 0
local counter = 0
local is_run = true
local date_time= ""
function OnAllTrade(alltrade)
if alltrade.class_code == "SPBFUT" and alltrade.sec_code == "SiM5" then
act_time = tonumber(alltrade.datetime.sec)
if act_time == prev_time then
counter=counter+1
else
date_time = tostring(alltrade.datetime.hour) .. ":" .. tostring(alltrade.datetime.min) .. ":" .. tostring(alltrade.datetime.sec)
message(date_time .. " " .. tostring(counter))
counter = 0
prev_time = tonumber(alltrade.datetime.sec)
end
end
end
--[[
function OnAllTrade(alltrade)
date_time = tostring(alltrade.datetime.hour) .. ":" .. tostring(alltrade.datetime.min) .. ":" .. tostring(alltrade.datetime.sec)
message(date_time)
end
--]]
function main()
while is_run
do
sleep(100)
end
end
function OnStop()
is_run = false
return 1000
end
тестовый 5-минутный прогон - показал:
"флешбеки" (нарушение временной последовательности распространения данных - прекратились).
Заглянул в ТВС - там полная "дискотека" - в рамках одного тикера - последовательность данных сохраняется, а между разными - полный хаос.
Скрипт считает сделки - неправильно. Пока непонятно в чём причина.
Текущие настройки рабочего места:
6.17.0.58 bugs collection, разработчикам на заметку. (все остальные - прошу проходить мимо и не засорять топик)