Событие получения данных всех таблиц и графиков после подключения к серверу

Страницы: Пред. 1 2
RSS
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Цитата
Михаил Понамаренко написал:
Написал скрипт
Хороший код. Я бы добавил sleep(9999) на входе и в каждой таблице -- торопиться нам некуда -- весь день вперед -- пусть всё спокойно прогрузится.
 
Цитата
Михаил Понамаренко написал:
        local chart = getCandlesByIndex("chart", 0, getNumCandles("chart") - 1, 1)[0].close
У меня Ваш код выпадает сейчас в ошибку: qwe.lua:42: attempt to index a nil value (field 'integer index')
 
Юрий Волошин, график с тегом "chart" должен существовать.
 
Цитата
Михаил Понамаренко Написал скрипт
Я так написал робот на Lua QUIK который проверяет при старте всё ли хорошо -- почему-то именно так  меня всё работает:
Код
function OnInit(script)
is_run = true
end

function OnStop()
is_run = false
end

function main()

birzhaSPB = 'SPBXM'
birzhaSPBDE = 'SPBDE'
birzhaMSK = 'TQBR'
birzhaNYSEbest = 'NYSE_BEST'
birzhaNasdaqBest = 'NASDAQ_BEST'
birzhaMSKvalyuta = 'CETS'
BabloKodUSD = 'USD000UTSTOM'
BabloKodEUR = 'EUR_RUB__TOM'
birzhaMSKvalyutaSmall = 'CETS_S1'
BabloKodUSDsmall = 'USD000SMALL'
BabloKodEURsmall = 'EUR000SMALL'

is_run_test = true
while is_run_test and is_run do is_run_test = false; message('Загрузка...'); sleep(9999)
for key in pairs(XXXXsFull) do local result = getParamEx(XXXXsFull[key].birzha, key, 'TRADINGSTATUS')
if result.result == '1' then elseif result.result == '0' then is_run_test = true else message('пипец is_run_test TRADINGSTATUS '..key, 3) end
if getBuySellInfo(firm, clients[1], XXXXsFull[key].birzha, key, 0).share == nil then is_run_test = true end
end --for key in pairs(XXXXsFull)
end --while is_run_test

sleep(9999)

-- дальше робот работает спокойно

while is_run do
USDRUB = getParamEx(birzhaMSKvalyuta, BabloKodUSD, 'LAST').param_value
EURRUB = getParamEx(birzhaMSKvalyuta, BabloKodEUR, 'LAST').param_value
EURUSD = EURRUB/USDRUB

-- дальше робот работает спокойно

if os.date('%H%M')=='2304' then is_run = false else sleep(9999) end -- настоящие торги закончены -- пора спать
end --while is_run

end --main()
Замечания по коду приветствуются!
 
Как много ответов от умных людей. Читал, много думал.))
Может быть все можно будет сделать гораздо проще, если кто-нибудь скажет правду:
c какой свечи CreateDataSource начинает грузить данные - с нулевой или с последней?
 
Kolossi, это неважно - размер датасорца меняется в момент завершения загрузки данных. При работе с колбеками тоже неважно - они явно указывают какая свеча была загружена.
 
Цитата
Артем написал:
Kolossi, это неважно - размер датасорца меняется в момент завершения загрузки данных. При работе с колбеками тоже неважно - они явно указывают какая свеча была загружена.
Те вы утверждаете, что ds(Size) будет отличен от нуля только после завершения загрузки?
 
Kolossi, да. Если ждать в цикле пока количество свечек станет больше 0, то видно что значение прыгает от 0 сразу к 5000 (или сколько свечек вернёт брокер + имеется в архиве).
 
Цитата
Kolossi написал: ds(Size) будет отличен от нуля только после  завершения  загрузки?
Хороший вопрос... я понаблюдаю в динамике этот процесс через PrintDbgStr()...
 
Цитата
Артем написал:
Если ждать в цикле пока количество свечек станет больше 0, то видно что значение прыгает от 0 сразу к 5000
Очень интересно -- спасибо...
Страницы: Пред. 1 2
Читают тему
Наверх