... Потокобезопасная функция sconcat sremove sinsert ssort
взято из документации QLUA.chm
Сергей,сейчас поиском в QLUA.chm поискал эти функции - не нашел. Может такое быть, что у меня справка не полная? Квик 6,16,0,42 только что обновил.
по CALLBACK, алгоритм работы
Пользователь
Сообщений: Регистрация: 04.03.2015
15.04.2015 17:59:24
Понял, попробую так, спасибо.
по CALLBACK, алгоритм работы
Пользователь
Сообщений: Регистрация: 04.03.2015
15.04.2015 17:48:11
Цитата
Michael Bulychev пишет: Добрый день. В вашем случае можно данные из функций обратного вызова (OnOrder, OnTrade ...) складывать в одну или несколько очередей и обрабатывать данные в main(). В этом случае Вы сами будете контролировать порядок обработки данных.
День добрый, Михаил! Не могли бы Вы натолкнуть на способ такого складывания? sam063rus, спасибо, но корутины пока выше моих возможностей.
по CALLBACK, алгоритм работы
Пользователь
Сообщений: Регистрация: 04.03.2015
15.04.2015 13:59:02
Цитата
Sergey Gorokhov пишет: Это нельзя сделать, так как появление очереди приведет к полному отказу в работе терминала.
Вроде же разрабы говорили, что события встают в очередь и хронология не меняется. Значит очередь эта возникает. Что подразумеваете под "полным отказом"? просто подвисает?
по CALLBACK, алгоритм работы
Пользователь
Сообщений: Регистрация: 04.03.2015
15.04.2015 13:52:21
я мог бы конечно отсечь влияние событий глобальным флагом, но хотелось бы, чтоб событие не терялось а в очередь вставало и отработало в итоге.
по CALLBACK, алгоритм работы
Пользователь
Сообщений: Регистрация: 04.03.2015
15.04.2015 13:48:00
Сергей, спасибо что отозвались. Нет. Происходит событие. Вы говорите, что терминал подвисает и начинает его обрабатывать. Мне же надо, чтобы при возникновении события сначала доработала какая -то моя функция, а потом уже пошла обработка события. Причем по моему выбору. В каких-то для меня критичных местах. То есть не код в событии продолжал работать, а, например, тот же main. Доработал бы до какого-то места, а потом бы разрешил обработать событие. Это возможно?
по CALLBACK, алгоритм работы
Пользователь
Сообщений: Регистрация: 04.03.2015
15.04.2015 12:50:53
Добрый день! Проясните, пожалуйста алгоритм работы. Работает скрипт, происходит событие. Скрипт прерывается и включается обработка? А потом скрипт продолжает работу? Как сделать так, чтобы пока, например, функция не выполнится, обработка не выполнялась? В тех случаях, когда мне так надо. Бывают случаи, например когда нужно снять заявки. Скрипт начинает их удалять, одну удалил, произошло событие - снятие, и скрипт может сбиться, потому что данные для второго удаления уже изменились, а мне надо, чтобы первый "слепок" данных не менялся.
поле STATUS в таблице orders, оно изменилось?
Пользователь
Сообщений: Регистрация: 04.03.2015
14.04.2015 22:04:01
прошу прощения, флаги увидел. Вопрос снимается.
поле STATUS в таблице orders, оно изменилось?
Пользователь
Сообщений: Регистрация: 04.03.2015
14.04.2015 21:59:05
Вечер добрый! Не помню, использовал я раньше на купайле это поле или нет, но в документации по таблице заявок оно было. Имело три значения. Сейчас в документации по клуа я его не вижу, пытаюсь вызвать - nil. Как теперь добраться до этого поля анализируя таблицу заявок? Хочу отсечь те, что "KILLED" например..
Быть может, вопрос мой затерялся.. Разработчики, пожалуйста, ответьте на него. Главное, каким полем передать в транзакцию комментарий.
Создание своего события, локальный callback
Пользователь
Сообщений: Регистрация: 04.03.2015
10.04.2015 22:23:55
И мне вот кажется, что отсутствие глоб. переменных какой то архаизм.. Вэлс 4 и тот поддерживает. Через это глобальное поле можно было бы общаться между скриптами напрямую, а не через ж.. файлы. Вот что-что, но этого я не ожидал от продукта, внедренного недавно. События - есть, ура, двинулись. Глоб. переменных нет. Приехали.
Создание своего события, локальный callback
Пользователь
Сообщений: Регистрация: 04.03.2015
10.04.2015 22:03:53
s_mike@rambler.ru, понимаю, конечно, что не мне адресовано Ваше сообщение, но если б разработчики реализовали то, о чем шла речь у меня, и задокументировали, то мне бы, не программисту, было бы проще сделать некоторые вполне адекватные вещи. Конечно, каждый должен заниматься своим делом, нечего мне лезть в эту тему для себя, когда есть программисты. Но с другой стороны, есть и другие заинтересованные лица, которые хотят, чтобы народу было по-больше на рынке, чтоб больше людей в квике копались и т.д. Вот на балансе этих интересов и развивается продукт. Как может)
Как получить стоимость шага цены фьючерса?
Пользователь
Сообщений: Регистрация: 04.03.2015
10.04.2015 18:34:05
Отлично, хоть какая то польза) Ну вы понял как искать на будущее любой параметр из ТТП?
Как получить стоимость шага цены фьючерса?
Пользователь
Сообщений: Регистрация: 04.03.2015
10.04.2015 18:16:29
Через формальные заголовки ТТП
stepprice steppricet
сам не пробовал.
Поля в OnOrder, требуются разъяснения
Пользователь
Сообщений: Регистрация: 04.03.2015
10.04.2015 17:59:56
по вопросу 2. Значение в это поле заносится из формы выст. заявки (снизу два поля - Код Клиента//Поручение). А как через sendtransaction в эти поля занести значения? Поле COMMENT из гайда не работает. Но там и написано, что оно для группового снятия. Значит есть какое-то другое поле. Какое?
Поля в OnOrder, требуются разъяснения
Пользователь
Сообщений: Регистрация: 04.03.2015
10.04.2015 17:10:23
Скажите, пожалуйста, что означают следующие поля:
1. Идентификатор пользователя (trans_order["uid"]) 2 .Комментарий (trans_order["brokerref"]) - в это поле можно что-то вносить при выставлении заявки?
Создание своего события, локальный callback
Пользователь
Сообщений: Регистрация: 04.03.2015
10.04.2015 15:36:33
Цитата
Michael Bulychev пишет: На мой взгляд, все это можно реализовать и сейчас используя корутины.
А не могли бы показать пример как то, что мне нужно реализовать, раз это сделать можно. [USER=21][/USER]
Создание своего события, локальный callback
Пользователь
Сообщений: Регистрация: 04.03.2015
10.04.2015 13:05:23
Сергей, понял. Спасибо.
Создание своего события, локальный callback
Пользователь
Сообщений: Регистрация: 04.03.2015
10.04.2015 11:12:52
Здравствуйте, Сергей! Совершенно верно. Двумя и более.
Создание своего события, локальный callback
Пользователь
Сообщений: Регистрация: 04.03.2015
10.04.2015 01:24:09
Можно ли в qlua создать свое событие, которое можно было бы перехватывать другим или несколькими скриптами? Создать и, понятно, обработать.
Вставить функцию из источника, Есть ли что-то вроде Include?
Пользователь
Сообщений: Регистрация: 04.03.2015
10.04.2015 00:18:36
s_mike@rambler.ru, спасибо. С ними, гляжу без 100 грамм не разобраться. пока буду дописывать ручками в файл) Вы не знаете, а такое возможно, запустив квик, скайт, писать скрипт в скайте и чтоб он работал с qlua. Подхватывал данные, сделки отсылал.. чтоб не мучаться каждый раз в квик не грузить скрипт для проверки. Это вообще реально?))
Вставить функцию из источника, Есть ли что-то вроде Include?
Пользователь
Сообщений: Регистрация: 04.03.2015
09.04.2015 23:37:26
Можно ли в qlua подключать функции из других своих скриптов, как это делается?
Функции работы со временем, есть ли такие?
Пользователь
Сообщений: Регистрация: 04.03.2015
09.04.2015 17:20:52
s_mike@rambler.ru, у меня пример работает с поправкой. но не 3600, а на 3*3600. То есть на 3 часа. Добавляю к секундам 3*3600 и тогда все ок.
Функции работы со временем, есть ли такие?
Пользователь
Сообщений: Регистрация: 04.03.2015
09.04.2015 16:40:40
s_mike@rambler.ru, первый же пример не работает. Я уже как то пытался колдовать с юлианским календарем, тоже по формулам не сходилось. По первому примеру у меня выдает 1379097615, а у Вас 1379094015. Ну и как следствие, при обратном преобразовании в данном случае время уплывает. Что может быть?
Скажите, есть ли возможность напрямую работать со временем? Без разбора на часы/минуты, анализа и т.д.? Например хочу проверить одно время относительно другого. больше оно или меньше.
message, параметры
Пользователь
Сообщений: Регистрация: 04.03.2015
09.04.2015 13:49:32
День добрый, Егор! Да, зарегистрируйте, пожалуйста.
Как получить событие - изменение в ТТП?
Пользователь
Сообщений: Регистрация: 04.03.2015
08.04.2015 21:07:59
Серж,спасибо, не обратил внимание. С этими функциями еще не сталкивался. Ознакомлюсь.
String.format, не могу найти описание опций
Пользователь
Сообщений: Регистрация: 04.03.2015
08.04.2015 20:32:43
sam063rus,спасибо! да нет, я не лукавил, зато, похоже, не понятно как пропустил стандартные библиотеки. Сейчас попробовал вычислить модуль и получилось. math в квике есть. За ссылку еще раз спасибо. А то читаю что ни поподя, а столкнувшись с разницей в синтаксисе того что я нашел и того, что вижу в в квике понял, что поиск первоисточника той еще задачкой будет. Что на англицком, не страшно. Лишь бы правильно.
String.format, не могу найти описание опций
Пользователь
Сообщений: Регистрация: 04.03.2015
08.04.2015 17:48:50
sam063rus,не подскажете, где найти информацию по функциям LUA? даже вычисление модуля не нашел, да и синтаксис отличается.. Получается что LUA в квике не тот LUA, а какой тот - не знаю.
String.format, не могу найти описание опций
Пользователь
Сообщений: Регистрация: 04.03.2015
08.04.2015 16:53:03
а в LUA есть регулярные выражения? Сейчас тоже занят вопросом базового функционала, но ничего путного не нашел..
Повторное выставление заявки
Пользователь
Сообщений: Регистрация: 04.03.2015
08.04.2015 16:50:05
lergen,вот и я подумал, стоит ли в данном случае глубоко копать (не хочу обидеть разработчиков, понятно, что и я не программист но и продукт не идеальный). Тоже думаю запустить доп проверку и рубить хвосты.. Не потому что прям не могу понять как сделать, а потому что понимаю, что предусмотренное мной может рассыпаться от всяких "нюансов недодукомментированных" и прочих "недо..."
message, параметры
Пользователь
Сообщений: Регистрация: 04.03.2015
08.04.2015 16:04:35
на всякий случай сист. имена соответственно: URGENCY, SOURCE, CATEGORY
message, параметры
Пользователь
Сообщений: Регистрация: 04.03.2015
08.04.2015 15:50:57
В таблице системных сообщений есть поля - Важность, Источник, Категория. Как свое сообщение дополнить этими данными?
Повторное выставление заявки
Пользователь
Сообщений: Регистрация: 04.03.2015
08.04.2015 14:55:30
Вопрос практикам. Может быть ситуация, когда скрипт повторно выставляет заявку, хотя по алгоритму и по работе скрипта такой ситуации быть не должно? Весь скрипт на анализ кидать смысла нет, вопрос в общем, бывает такой баг или нет? Скрипт два дня работает. Выставляет новую заявку только после получения подтверждения о снятии предыдущей. Все работало нормально. Оставил на 2 часа без присмотра, вернулся - две заявки. Одна залипла. С чем связано - не выяснить. Можно, конечно, опять скрипт проверять и т.д.. Если багов таких ни у кого не наблюдалось, тогда буду проверять, копать. Если бывает - оставлю как есть. Зона видимости переменных, надеюсь, на другие открытые скрипты не распространяется, таких-то "чудес" не бывает??))
Как получить событие - изменение в ТТП?
Пользователь
Сообщений: Регистрация: 04.03.2015
08.04.2015 14:47:26
Серж, да, спасибо.. Я уже понял. Событие - ЛЮБОЕ изменение. Его обрабатываем и выясняем. Только надо запоминать предыдущее значение. Подписаться на изменение конкретного параметра не возможно.
описание полей ТТП, где взять полное и актуальное
Пользователь
Сообщений: Регистрация: 04.03.2015
07.04.2015 19:09:58
Дмитрий, добрый день! Вам удалось найти список? А то вижу тут так и не ответили на вопрос.. Если да, сообщите, пожалуйста. Тоже интересно. Если сам найду - скину сюда.
Да можно, в функции getParamEx вы и указываете тот параметр на которых хотите подписаться. Т.е пр вызове функции Onparam вы можете вызваться функцию и получить значение необходимого параметра.
Я, Constantin Constantin,теперь тоже так думаю. Но слова Егора Зайцева понял иначе. Что можно вызвать функцию при изменении именно тор цены, а не ТТП в целом, а потом разбираться было ли там изменение нужного мне параметра или нет.
Как получить событие - изменение в ТТП?
Пользователь
Сообщений: Регистрация: 04.03.2015
06.04.2015 20:00:51
не могу удалить прошлое свое сообщение, удалите, пожалуйста. Вот рабочий скрипт
Код
is_run=true
function main( ... )
while is_run do
sleep(2000)
end
end
function OnParam(class,sec)
if class == "SPBOPT" and sec == "SR6500BR5" then
tp1 = getParamEx(class,sec,"theorprice")
message(class.." "..sec.." "..tp1.param_value,2)
end
end
function OnStop(stop_flag)
is_run=false
end
но логику в нем я вижу следующую: произошло изменение (не важно чего) в ТТП по опционам. Вызывается функция моя и в ней я анализирую, что пришло. Это не есть подписка именно на событие изм. теор. цены. Я что-то не так сделал или это и есть максимум в решении задачи?
Как получить событие - изменение в ТТП?
Пользователь
Сообщений: Регистрация: 04.03.2015
06.04.2015 17:50:24
Егор, я пробую как в примере сделать:
Код
is_run=true
function main( ... )
while is_run do
sleep(2000)
end
end
function OnParam(class,sec)
if class == "SPBOPT" and sec == "SR006500BR5" then tp = getParamEx(class,sec,"theorprice") end
message(tp,2)
end
function OnStop(stop_flag)
is_run=false
end
Хочу, чтобы при изменении теор цены выскочило сообщение. Понимаю, что ошибка в пока что не понимании принципов построения. Можете ответить, что не так?
Как получить событие - изменение в ТТП?
Пользователь
Сообщений: Регистрация: 04.03.2015
06.04.2015 14:52:59
Егор, еще вопрос. А в qlua в принципе можно получить реакцию при изменении конкретного параметра, как у меня? Судя по документации OnParam вызовется при любом изменении текущих параметров, а потом уже я разбираю какое значение принял интересующий меня параметр.
Как получить событие - изменение в ТТП?
Пользователь
Сообщений: Регистрация: 04.03.2015
06.04.2015 14:05:03
Понял, спасибо, не вопрос, буду разбираться.
Как получить событие - изменение в ТТП?
Пользователь
Сообщений: Регистрация: 04.03.2015
06.04.2015 11:59:27
Здравствуйте, Егор! Спасибо, что откликнулись. Я хотел увидеть скрипт полностью. С синтаксисом. Чтобы была обозначена функция, например просто сообщение выдавала по изменению цены. Чтобы main был прописан с обработкой этой функции (именно Function, обращение к ней, а не в теле main). В итоге я хотел на этом примере разобраться, как правильно писать скрипты на qlua. Я только начинаю осваивать этот язык, и хочу понять конструкцию. Понимаю, что задача простая, но требует время. Если будет возможность, был бы признателен за помощь. На примере я бы быстрее разобрался. как в свое время с купайлом. Нужен старт. Еще раз спасибо за отклик. Если у Вас руки так и не дойдут, понимаю.
Как получить событие - изменение в ТТП?
Пользователь
Сообщений: Регистрация: 04.03.2015
03.04.2015 19:51:29
Добрый день! Решил освоить азы qlua. Не понимаю, какая конструкция должна быть, чтобы запустить свою функцию по событию.
Код
T = getParamEx("SPBOPT","SR6000BQ5","theorprice")
message(T.param_value,2)
а событие - изменение этого параметра в ТТП
Пожалуйста, напишите этот скрипт полностью. С обозначением функции, с main, все как полагается. Очень буду признателен, а то собираю куски по частям, ерунда какая то получается..