Tradedate

Страницы: Пред. 1 2
RSS
Tradedate
 
Ответ в категориях "наверное", "по идее" и т.п. не устраивает. Мы с вами не баллистические ракеты проектируем  :smile:
Можете пригласить тов. Nikolay Pavlov, надеюсь он сможет что-то конкретное сказать.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
getTradeDate() в OnCleanUp всегда даёт актуальную дату торгов или это у меня так совпало?
Добрый день.
Параметр TRADEDATE это параметр из Информационного окна Рабочего места QUIK, который обновляется так же при получении с сервера Quik новой даты торгов. Функция getInfoParam("TRADEDATE") просто возвращает значение этого параметра, который может просто еще не обновиться. Функция getTradeDate() обращается непосредственно к внутренней функции терминала GetTradeDate(), что является более надежным способом получения даты торгов, параметр TRADEDATE на момент вызова OnCleanUp() гарантированно еще старый, а функция getTradeDate() вернет новую дату торгов, если вызов OnCleanUp() был инициирован сменой сессии, а т.к. OnCleanUp() может вызываться в нескольких случаях (см. описание ниже), то актуальную дату торгов в OnCleanUp() нужно ждать в самом последнем вызове, а их может быть максимум 3. Обычно клиент подключается каждый день одним и тем же пользователем, к одному и тому же серверу, тогда вызов OnCleanUp() будет один (по смене сессии).

******************************Из документации**********************************************
OnCleanUp
Функция вызывается терминалом QUIK в следующих случаях:
- смена сервера QUIK внутри торговой сессии;
- смена пользователя, которым выполняется подключение к серверу QUIK, внутри торговой сессии;
- смена сессии.

При выполнении сразу нескольких из перечисленных условий, функция OnCleanUp() вызывается терминалом QUIK для каждого из них.

Вот мой пример. Первый вызов был инициирован сменой сервера, второй сменой сессии.
Код
is_run = true

function OnStop(signal)
  is_run = false  
end

function OnCleanUp()
  message('getInfoParam' .. tostring(getInfoParam("TRADEDATE")))
  message('getTradeDate' .. tostring(getTradeDate().date))
end

function main()
  while is_run do
    sleep(100)
  end
end

Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
Страницы: Пред. 1 2
Читают тему
Наверх