Optimus1 Optimus1 написал: Еще только не понятно одно, закачка идет именно с сервера брокера ?
абсолюьно точно.
ав подключается к серверу, поэтому с компьютера негритянки, которая работает мойщицей посуды в новом орлеане вы точно ничего не скачаете.
Пасхалочка для Алексея Иванникова:
Цена свечи без тега графика
Пользователь
Сообщений: Регистрация: 30.01.2015
26.11.2017 21:36:40
Да и вообще.
ds:C(-1) это в qlua всегда ошибочно. Такое возможно только в расширениях (типа алертера или подобных скриптов).
в чистом qlua нужно брать размер выборки и адресоваться к предпоследней свече
Пасхалочка для Алексея Иванникова:
Цена свечи без тега графика
Пользователь
Сообщений: Регистрация: 30.01.2015
26.11.2017 21:33:25
Цитата
Optimus1 Optimus1 написал: Спасибо! Подскажите пожалуйста еще, я правильно понимаю, что, если я при отключенном подключении захочу получить данные:
ds:Size(), а потом и значение самой произвольной свечи:
ds:C(i-1)
То Quik ничего не выдаст, так как эти запросы обращены к серверу, а значит сам терминал Quik должен быть подключен к серверу и в оффлайне это не работает ?
все зависит от той истории, которая скачана с сервера в терминал на требуемом таймфрейме.
возможно, часть истории уже терминал когда-то получил и вы получите историю, которая не будет актуальной. А можете ничего не получить, если по этому инструменту и этому таймфрейме терминал ничего не получал.
в момент когда вы присоединитесь к серверу, история котировок по заказанному таймфрейму начнет закачиваться и через какое-то неопределенное время она станет доступной полностью.
поэтлму в оффлайне вы получите , что что когда-то было сохранено в базе и что покажет ds;c(-1) - неведомо. Вернее ведомо, но это точно не будет предпоследняя свеча торгов
Пасхалочка для Алексея Иванникова:
Мастер LUA, Помощь в переписи индикатора из thinkorswim в LUA
Пользователь
Сообщений: Регистрация: 30.01.2015
25.11.2017 17:44:43
Текст
Пасхалочка для Алексея Иванникова:
Мастер LUA, Помощь в переписи индикатора из thinkorswim в LUA
Пользователь
Сообщений: Регистрация: 30.01.2015
25.11.2017 17:44:15
Цитата
Денис Лихачев написал: Уважаемые мастера, кто может расшифровать код написанный в thinkorswim, индикатор: "stochastic momentum index"
Когда смотришь графики скажем с таймфремом месяц, то зачастую ось У при Авто режиме проваливается в отрицательные значения. По логике это невозможно, т.к. цена на акцию не может быть отрицательной. Почему бы тогда не ввести поправку, чтобы ось У не убегала ниже нуля? Это улучшило бы читаемость графиков за счет того, что он был бы более растянут по Оси У. А так снизу графика сантиметра 2-3 занимают значения меньше 0, которые в принципе не могут быть на графике.
Убирать режим Авто и фиксировать вручную 0 как минимальную границу по оси У не вариант, т.к. в этом случае теряется автоподбор масштаба.
отртцательные значения на графике невозможны для цен акций, но вполне возможны для других инструментов
Пасхалочка для Алексея Иванникова:
id метки
Пользователь
Сообщений: Регистрация: 30.01.2015
02.11.2017 16:03:01
Здравствуйте
id метки уникален в пределах окна (панели), диаграммы или терминала?
Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.
Егор, мне ждать ответ или лучше сразу начинать подставлять костыли? Предыдущее моё сообщение об ошибке терминала вы "изучаете" уже месяц.
(так и вижу: сгрудились всей аркой у терминала, морщат лбы, нервно курят, спорят, даже домой не идут. Это же арка - спать, есть не будем, но ошибку найдём!)
Пасхалочка для Алексея Иванникова:
CreateDataSource: блуждания
Пользователь
Сообщений: Регистрация: 30.01.2015
01.11.2017 11:53:10
Попробую облегчить ваши долгие и упорные труды: проблема возникает (у меня) всегда при загрузке терминала с запущенным скриптом
Пасхалочка для Алексея Иванникова:
CreateDataSource: блуждания
Пользователь
Сообщений: Регистрация: 30.01.2015
31.10.2017 23:32:25
Цитата
Egor Zaytsev написал: Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.
Как понимаю, проблема все еще изучается?
Пасхалочка для Алексея Иванникова:
Запаздывает обновление таблицы лимитов
Пользователь
Сообщений: Регистрация: 30.01.2015
30.10.2017 14:53:20
Цитата
Анна написал: Добрый день. Есть робот, который на открытии сессии должен выставлять стопы и далее торговать, если есть количество открытых позиций меньше какого-то числа. Сведения по открытым позициям получаю через обращение к таблице лимитов. Периодически проскакивает проблема, что на открытии дня или перезапуске квика таблица лимитов возвращает пусто, соответственно стопы не ставятся, а новая позиция набирается сверх лимита. Есть ли варианты, как можно обезопаситься от этого? И проблема эта на стороне брокера (финам) или все-таки квика? Думала логировать позицию в конце дня, но непонятно в какой момент переключаться со считывания позиции из файла на считывание из квика.
Анна.
Таково природное свойство таблицы лимитов. Она обновляется время от времени в произвольные моменты времени. С этим нужно смириться и изменить логику робота.
Пасхалочка для Алексея Иванникова:
Очередные подарки
Пользователь
Сообщений: Регистрация: 30.01.2015
27.10.2017 12:01:04
Нужно еще добавить что абрау-дюрсо (TQBR/ABRD) не должен попадать в результаты запроса - он явным образом не пройдет проверку по seccode в фильтрующей функции database.search_function запроса SearchItems
Пасхалочка для Алексея Иванникова:
Очередные подарки
Пользователь
Сообщений: Регистрация: 30.01.2015
27.10.2017 11:22:09
Кусочек текста скрипта,занимающегося обработкой таблицы обезличенных сделок:
Код
-- Собирает из ТОС новые обезличенные сделки
rescan =
function()
if not database.need_tos_rescan then
return
end
local num_trades = getNumberOf("all_trades") - 1
local items = SearchItems("all_trades",
database.tos + 1,
num_trades,
database.search_function,
"class_code,sec_code,datetime.day,datetime.month,datetime.year"
) or {}
database.tos = num_trades
for _,n in ipairs(items) do
database.process_trade(getItem("all_trades",n))
end
database.save()
end,
---------------------------------------------------------------
-- Обработка одной сделки
process_trade =
function(trade)
log.write(trade)
local trade_datetime = datetime(trade.datetime)
что мы тут имеем?
rescan() получает новые сделки из ТОС и для каждой вызывает обработчик process_trade первое действие в process_trade есть вывод в лог самой сделки следующее действие - превращение времени сделки в некий объект.
Время от времени (закономерность неясна) последнее действие приводит к развалу скрипта по причине недопустимых данных в datetime сделки.
Все строчки абсолютно нормальные, а последняя выведенная очень интересна. Все поля нулевые, в том числе и datetime. Соответственно, обработка datetime приводит к краху:
Код
E:\quik\LuaIndicators\BS.lua:1085: Assert failed: /GoogleDisk/ROBOT/_LUA/datetime.lua : 106
Невозможно рассчитать Unix time: {week_day=1,hour=0,ms=0,mcs=0,year=1601,month=1,day=1,sec=0,min=0,isdst=false}
stack traceback:
E:\quik\LuaIndicators\BS.lua:1085: in function <E:\quik\LuaIndicators\BS.lua:1074>
(tail call): ?
E:\quik\LuaIndicators\BS.lua:1446: in function 'floor'
E:\quik\LuaIndicators\BS.lua:2563: in function 'process_trade'
E:\quik\LuaIndicators\BS.lua:2545: in function 'rescan'
E:\quik\LuaIndicators\BS.lua:2828: in function 'iterate'
E:\quik\LuaIndicators\BS.lua:1839: in function <E:\quik\LuaIndicators\BS.lua:1802>
Ситуация регулярно появляется как на моем компьютере, так и на множестве других компьютеров, что установлен этот скрипт.
И собственно вопросы:
Что это было?
За что такое счастье?
Как этого счастья избежать?
Пасхалочка для Алексея Иванникова:
В окне "Доступные скрины" нет кнопки "Добавить"., В оокне "Доступные скрины" нет кнопки "Добавить" (оно почему то постоянно моргает, как бутто лагает)
Пользователь
Сообщений: Регистрация: 30.01.2015
25.10.2017 13:28:15
Цитата
Zoya Skvorcova написал: Михаил ,добрый день. В параметрах экрана для Изменения размера текста, приложений и других элементов должно быть установлено 100%
о как. Приложение уже рассказывает операционке как надо жить.
это наше суверенное ноу-хау )
Пасхалочка для Алексея Иванникова:
Ищем разработчика!, Необходимо разработать скрипт или решение для QUIK, по поиску точки входа.
валерий написал: , Я как-то так и думал. И как понимаю выхода нет? Или можно управлять порядком? По алфавиту? А что скажете про скорость? Не в курсе getCandlesByIndex вообще так работает или только в индикаторах?
Готовых способов нет.
Вам нужно или каждый раз экспериментировать с порядком наложения индикаторов или в своем индикаторе писать более сложную логику, пересчитывая индикатор на следующих тиках. Второй вариант не работает в отсутствии торгов и на неликвидных инструментах. Также там появляются навороты, если адресуемый индикатор имеет пропущенные свечи или меняет свои значения задним числом и так далее.
Ищите другой путь решения своей задачи, если не готовы продираться через эти джунгли.
Пасхалочка для Алексея Иванникова:
getCandlesByIndex что не так?
Пользователь
Сообщений: Регистрация: 30.01.2015
24.10.2017 12:39:27
Индикаторы рассчитываются последовательно. Один за другим. Ваш индикатор в списке для расчета оказался раньше чем тот, к которому вы адресуетесь.
Пасхалочка для Алексея Иванникова:
Новая очередная дырка
Пользователь
Сообщений: Регистрация: 30.01.2015
20.10.2017 15:19:03
Цитата
Egor Zaytsev написал: Ошибка, описанная в данном инциденте, будет исправлена в одной из очередных версий программы.
Приносим извинения за причиненные неудобства.
и как же вы, Егор, планируете ее исправить?
Размножить вызов ondestroy - это полбеды. А что вы собираетесь делать с тем, фактом, что при размножении индикатора в новой диаграмме отсутствуют идентификаторы графиков и любая работа с метками из индикатора луа в размноженном окне невозможна?
Пасхалочка для Алексея Иванникова:
Пересчет индикатора раз в таймфрейм (1 мин, 5 мин и т.д.), а не после каждой заявки
Заранее извиняюсь за тупой вопрос. Подскажите пожалуйста, как можно реализовать, чтобы индикатор пересчитывался не после каждой заявки, а на каждой новой свечке?
очень просто.
хранить в переменной количество свечей графика и при каждом вызове oncalculate сравнивать актуальное количество свечей с запомненным в переменной.
если разное - значит новая свеча появилась.
Пасхалочка для Алексея Иванникова:
Новая очередная дырка
Пользователь
Сообщений: Регистрация: 30.01.2015
13.10.2017 19:19:46
В продолжение темы
индикатор рисует на графике метки. в ondestroy() эти метки стираются.
накладываем индикатор на график. Размножаем график через Ctrl-N
удаляем индикатор с исходного графика: ondestroy срабатывает, метки удаляются удаляем индикатор с размноженного графика. Ну вы поняли....
Пасхалочка для Алексея Иванникова:
SIerrachart, для стабильных и разных чартов
Пользователь
Сообщений: Регистрация: 30.01.2015
07.10.2017 08:45:01
Вот,
Пасхалочка для Алексея Иванникова:
Принудительное исполнение стоп-заявки
Пользователь
Сообщений: Регистрация: 30.01.2015
06.10.2017 17:23:02
Виталий.
аы формулирует свою очень частную задачу.
рассчитывать, что она будет реализована хоть когда-нибудь нет никаких оснований.
главная причина такой уверенности состоит в возможности реализовать эту вашу надобность на встроенном терминал языке программирования.
мой вам совет - не ждите у моря погоды, бесполезно. Если вам это действительно нужно - пишите сами или просите кого-то.
Пасхалочка для Алексея Иванникова:
Цена в долларах
Пользователь
Сообщений: Регистрация: 30.01.2015
05.10.2017 21:21:11
Цитата
Виталий написал: Уже скоро 2017 год закончится, а функции с графиками так и не реализованы. Самые нужные это, конечно, произведение графиков. Например, чтобы получить рублевые цены на нерублевые инструменты. Также полезно деление графиков, чтобы получить соотношение, например, привилегированных акций к обычным.
а зачем ждать? Берите и делите, умножайте.. хоть в степени возводите.
С данной проблемой уже к нам обращались, однако воспроизвести проблему не удалось. Можете выложить полный скрипт.
Он очень большой, не имеет смысла
Пасхалочка для Алексея Иванникова:
CreateDataSource: блуждания
Пользователь
Сообщений: Регистрация: 30.01.2015
05.10.2017 06:12:14
Здравствуйте
Очередная непонятка с CreatedDataSource
Есть скрипт, который должен крутиться постоянно и собирать данные из таблицы обезличенных сделок.
Чтобы каждый раз не открывать таблицу обезличенных сделок, через CreateDataSource подписываюсь на тиковый интервал котировок. Как понимаю, этго достаточно в любом случае, чтобы обезличенные сделки поехали с сервера в терминал и стали доступны для чтения в скрипте. Или недостаточно?
Каждое утро далее при подключении к серверу (приходу oncleanup) скрипт по необходимым ему инструментам делает подписку
Код
local _class,_code = string.match(instrument,"^(%w+)#(%w+)$")
local ds,err = CreateDataSource(_class,_code,INTERVAL_TICK)
if not ds then -- Нет такого инструмента
log.write("Инструмент ",instrument," не найден: ",err)
return
end
ds:SetEmptyCallback()
table.insert(database.ds,ds)
log.write("Подписка на инструмент ",instrument," успешна")
Вроде бы все чистенько - если есть какие-то проблемы (недоступен инструмент или что-то в этом роде) - мы получим ошибку. Если ошибок нет, значит подписка успешна и ждем обезличенные сделки.
Конечно на самом деле все не так )) Вот фрагмент лога quik 7 11 1 5, демо арка
и далее ни одной сделки не получено, хотя все подписки успешны. Озадачивает и нервирует. Торги идут, график бегает. Открываю руками таблицу обезличенных сделок - и чудо:
В чем состоит недоступное мне сокровенное знание? Спасибо.
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
02.10.2017 14:26:35
Ага. ...
спасибо , Николай, за разъяснения
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
02.10.2017 13:25:54
Вот и проверил. quk 7 11 1 5, демо от арка. Тест был такой:
Код
function write_log(text)
local connect = ""
if isConnected() == 1 then
connect = "Connected"
end
local f = io.open("D:\\test.log","a")
f:write(os.date() .. " " .. connect .. " " .. text .. "\n")
f:close()
end
function main()
write_log("Start " .. getInfoParam("TRADEDATE") .. " " .. getInfoParam("SERVERTIME"))
while true do
write_log(getInfoParam("TRADEDATE") .. " " .. getInfoParam("SERVERTIME"))
sleep(60000)
end
end
function OnCleanUp()
write_log("OnCleanUp " .. getInfoParam("TRADEDATE") .. " " .. getInfoParam("SERVERTIME"))
end
function OnConnected(flag)
write_log("OnConnected flag=" .. tostring(flag) .. " " .. getInfoParam("TRADEDATE") .. " " .. getInfoParam("SERVERTIME"))
end
function OnDisconnected()
write_log("OnDisonnected " .. getInfoParam("TRADEDATE") .. " " .. getInfoParam("SERVERTIME"))
end
написал: Я правильно понимаю, что сначала срабатывает колбек oncleanup и только потом торговая дата кладется в то место, откуда ее вынимает getInfoParam?
да
не подтверждается.
10/02/17 03:16:26 Connected OnCleanUp 01.10.2017
Торговая дата доступна функции getInfoParam только после завершения колбека, но в непосредственно в нем самом
2. Поведение параметра tradedate отличается от параметра servertime ServerTime недоступен в отсутствии связи с брокером а также внутри колбеков OnCleanUp и OnConnected. Про иные колбеки сказать ничего о не могу. Возможно, недоступность servertime из колбеков не есть всеобщее правило и обусловлено оно стечением обстоятельств в данном случае.
3. Предположение о том, что oncleanUp должен сопровождаться onconnected(true) не опровергается
Толпа колбеков OnDisconnected на уже отсоединенном от сервера терминале. Откуда и что они означают - сказать трудно. При этом в 02-48-44 связь как ни в чем не бывало уже имеется и никаких onconnected и близко нет. Туманно, загадочно и волки воют.
Пасхалочка для Алексея Иванникова:
SearchItems: утечки памяти
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2017 12:08:20
У меня очень похожая история
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
29.09.2017 11:58:01
Ok, я проверю.
Пасхалочка для Алексея Иванникова:
Закрытие терминала QUIK средствами QLUA - возможно ли?, Закрытие терминала QUIK средствами QLUA - возможно ли?
Пользователь
Сообщений: Регистрация: 30.01.2015
29.09.2017 11:08:25
Без понятия ) думаю поставить эксперимент несложно.
дуиается, что ничего не сохранится.
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
29.09.2017 10:43:26
Николай. Вопрос в том, будет ли приходить onconnected, если соединение с брокером не прерывалось с момента 23-50 до 10-00.
будет ли приходить onconnected в этом случае? Я не уверен. Нужно экспериментировать и проверять (вот нечем мне в жизни заниматься кроме как ставить опыты и конспектировать поведение этого чучела)
а вообще это просто феерия: получение торговой даты (базовая функция!) вызывает у нас какие-то неимоверные усилия. Вы пишете простыни на пол экрана с кучей условий. И все это ради элементарнейшей цели.
а тот факт, что разработчики а принципе не в состоянии сказать ничего внятного, вообще удручает.
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 17:26:00
Цитата
Николай Камынин написал: Михаил,а чем не устраивает дата торгов из ТТП
Николай, это еще более условная штука, чем tradedate. ТТП может быть у пользователя вовсе не открыта или этот параметр в ней не будет присутствовать. Какие в нем инструменты есть - непонятно. Да и колбек не получишь - придется долбиться в нее на каждом проходе как ошпаренному
При этом мы ничего не выигрываем: заполнение полей ТТП произойдет уж точно никак не раньше чем параметра tradedate.
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 14:54:02
Ничто не мешает администратору сервера, которой внук своей бабушки, взять и не выключить сервер на ночь ))
скрипт должен работать и без подключения к серверу.
Тогда нужно реализовывать две ветки, собственно работа скрипта оффлайт (дата торгов не поменяется точно) и работа скрипта после коннекта к серверу (только тут уже смотреть не на OnCleanUp, а на OnConnected), а там уже в зависимости от того поменялась дата торгов или нет свои алгоритмы...
а вы уверены, что торговая дата всегда меняется при с разрывом связи? Я не уверен. А точно это никто не знает)
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 14:40:23
Цитата
написал: Николай, спасибо.
скрипт должен работать и без подключения к серверу.
на имеющихся в нем данных. Если они имеются.
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 14:39:40
Николай, спасибо.
скрипт должен работать и без подключения к серверу.
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 14:10:26
Сергей.
Что такое "дата торгов"? Это параметр терминала, который tradedate? Получение tradedate есть цель первого поста этой ветки.
или это нечто другое?
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 13:53:02
Пятница повторяю, чтобы не терялась основная цель, которую я преследую. Иначе все время мы уходим в сторону.
вот и сейчас вы пишете про выставление каких-то ночных заявок. Зачем мне это? Мне все равно что там будет во времени.
к меня есть терминал и в нем есть таблица обезличенных сделок.
сделки в этой таблице могут быть датированы одним днём или двумя. Больше двух дней торговых сессий я не знаю)
мне нужно отфильтровать те сделки, которые идут последним днём. После этого собрать все эти сделки, обработать и записать в файл.
последний день я определяю через tradedate.
идея просто посмотреть, за какие даты есть в таблице обезличенных сделок сделки и выбрать те, что имеют старшую дату, не проходит из-за того, что таблица обезличенных сделок может быть в процессе закачки и сделки второго дня ещё в ней могут не присутствовать.
фильтповать по астрономическому времени нельзя. Ничто не мешает запустить скрипт в воскресенье без соединения с брокером и ни одной сделки за воскоесенье в нем не найти, хотя за пятницу (tradedate) они там будут. Я об этом вам писал и мне было неудобно.
как я понимаю, кроме общих слов я добиться ничего не смогу. Если так, я прошу прощения за беспокойство, благодарю за внимание и перестаю тратить время.
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 13:23:38
Цитата
Sergey Gorokhov написал: , Для начала, Вам нужно определиться, для чего именно Вам нужна дата. Если для получения данных из таблиц, графиков и прочие, то как уже было сказано TRADEDATE в данном случае не подойдет. Так как TRADEDATE это дата торговой сессии, а не астрономическая дата. Получается как только пройдет полночь, дата на графиках поменяется, а TRADEDATE останется прежним. На наш взгляд, дата торговой сессии Вам не нужна. А нужна текущая астрономическая дата, т.е. компьютера.
Сергей, мне даже неудобно Вам на это указывать, но астрономическая дата никак не связана с содержимым таблиц терминала. Например в воскресенье, если данные в терминале не очищены с пятницы. Они будут разными отсутствии соединения с брокером и т.д.
Тем более если время в таблицах квика зависит от какой-то глубоко закопанной галочки, о которой 99% пользователей (и я в том числе) просто не имеют понятия, так как она нахрен не нужна.
Цитата
"Получается как только пройдет полночь, дата на графиках поменяется, а TRADEDATE останется прежним."
Я не уверен, что вы уверены в написанном вами.
Зачем мне требуется весь этот огород Мне нужно собирать данные из таблицы обезличенных сделок, обрабатывать их и раскладывать по файлам. Один файл - один торговый (!) день. С отсеиванием вечерней сессии.
Ээээ, да это же просто!
А вот хрен. Потому что datetime зависит от тонны условностей, о которых уже упоминалось выше. Только не надо предлагать косорылые способы. Надо нормальный и надежный. И желательно не зависящий от галочек, разбросанных по всем пыльным углам терминала.
Повторяю свою надобность
Нужна функция, которая возвращает дату текущей сессии при старте программы. Под этой датой я понимаю последнюю дату, в которую в таблицу обезличенных сделок терминала приходили сделки.
Нужен текст колбека или еще чего-то, что мне сообщит, что эта торговая дата изменена и необходимо сделать рестарт всего скрипта.
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 11:31:43
Уффф.
как же это все же тяжело.... Вроде и вопросы стараюсь делать понятно и так, чтобы из нельзя было прочесть неправильно.
сергей.
как в вашем чертовом терминале получить сигнал о смене торговой даты?
мне не нужно других сигналов, на которые срабатывает oncleanup и всего остального. Мне нужно только получить торговую дату при старте скрипта (дату, а не nil, не бум, и не бац) и получить сигнал об изменении ее со значением новой торговой даты.
если где-то можно прочитать про эти ваши нагромождения неописаннвх сущностей -скпжиье где. Если нет - не могли бы вы просто привести луа код, который будет правильно ВСЕГДА работать?
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 10:28:53
Актуальная торговая дата в моем понимании -это совпадающая с тем что на графиках, таблицах и прочие.
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 10:27:23
Непустую
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 10:26:59
Узнать -то не проблема..
правильно ли это утверждение:
1. Если после прихода колбека мы видим герустую торговую дату - это ГАРАНТИРОВАННО в любым случаях актуальная торговая дата, а не оставшаяся в кишках со вчерашнего дня?
Sessioniddd.
что это за зверь и каковы его своейства?
я подразумеваю, что документация этого мне не расскпжет,. Если ошибаюсь - прошу прощения
написал: Следить за чем? Куда смотреть, что ждать?
Добавить флаг в OnCleanUp В цикле который в main проверять значение флага. как только флаг поменялся, дернуть getInfoParam
и возможны 3 варианта
1. Пустая дата 2. Вчерашняя дата (изменения не пришли ещё или пришли, но сервер поднят вчерашним числом) 3. Новая дата.
первый вариант - курим и ждем второй - непонятно что дальше делать третий -нам свезло
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 09:52:53
Про Setvalue я действительно когда-то писал, было. Помнится, что писало об этом уйма народу кроме меня - слишком очевидная дырка была. Ну что же, теперь можно констатировать, что толк есть. Целый один толк. )))
"Добавить флаг в OnCleanUp и следить за ним в main?"
написал: Я правильно понимаю, что сначала срабатывает колбек oncleanup и только потом торговая дата кладется в то место, откуда ее вынимает getInfoParam?
да
От моего имени зарегистрировано за 10 лет пара десятков пожеланий.Не было случая чтобы реализовали. Уж не знаю какой у вас толк, а для меня никакого.
"Как вариант, можно смотреть getInfoParam в main(), после того как сработает OnCleanUp "
Отлично. И насколько позже? И как узнать, что данные уже обновились, если придти может снова вчерашняя дата?
Похоже что Вы запрашиваете данные через getInfoParam в момент когда в терминал эти данные еще не пришли. Колбеки срабатывают непосредственно перед тем как данные появятся в терминале. Как вариант, можно смотреть getInfoParam в main(), после того как сработает OnCleanUp Можем предложить зарегистрировать пожелание на добавление в OnCleanUp параметра, в котором будет возвращаться дата торгов.
Был бы толк от этих регистраций....
Я правильно понимаю, что сначала срабатывает колбек oncleanup и только потом торговая дата кладется в то место, откуда ее вынимает getInfoParam?
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 09:14:36
Точнее задача стоит так:
1. Определить торговую дату в момент старта скрипта 2. Получить сигнал об изменении торговой даты и вернуть новую дату
При этом правильно обработать все отключения и подключения к серверу.
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
28.09.2017 08:56:32
Приходится экспериментировать, так как нет внятной документации.
Приход колбека в 10 -00 был обусловлен настройками автоподключения. Время автоподключения было установлено с 10-00 до 23-00.
В момент подключения приходит колбек, в котором производится запрос getInfoParam("TRADEDATE")
Результат исполнения - либо пустой либо строка времени. Исходя из ваших разъяснений время может придти как вчерашнее так и сегодняшнее взависимости от температуры бабушки системного администратора сервера квик.
Кашамала какая-то..
Сергей.
Сможете привести однозначный алгоритм определения торговой даты, которая работает всегда и надежно, без расползающихся условностей?
Пасхалочка для Алексея Иванникова:
Tradedate
Пользователь
Сообщений: Регистрация: 30.01.2015
26.09.2017 05:25:34
Приход колбека oncleanup в 10 часов утра понедельника ставит под сомнение написанное вами, Сергей.