Добрый день.
Два дня мучился, осваивал работу через DataSourse. Заработало. Но код работает в 5 раз медленнее, чем когда я получал данные индикатора через идентификатор.
Прошу подсказать почему.
Вот код. Боллинджер считается внутри файла BB.lua, который выложили разработчики вот здесь:
А теперь - самое интересное. Места с задержками. Где скорость как у ласточки я не трогал, подсветил только места задержек:
То есть задержка то есть, то нету. Она равна 15 миллисекунд. И она бывает не только между 3 и 4, но и на разных участках кода. Вот например между 1 и 2 шагом.
Вопросы.
1. Почему происходят эти задержки?
2. Почему на разных участках кода?
3. Рационально ли составлен код?
Спасибо.
Два дня мучился, осваивал работу через DataSourse. Заработало. Но код работает в 5 раз медленнее, чем когда я получал данные индикатора через идентификатор.
Прошу подсказать почему.
Вот код. Боллинджер считается внутри файла BB.lua, который выложили разработчики вот здесь:
| Код |
|---|
function DataSource(class,sec,interval)
ds[sec] = CreateDataSource(class,sec,interval)
ds[sec]:SetEmptyCallback ()
return ds[sec]
end
function main()
dofile(getWorkingFolder().."\\LuaIndicators\\BB.lua")
for sec in string.gmatch(ticker_list,"%a+") do
DataSource(class,sec,interval)
end
while is_run do
stime=getSTime()
if stime==nil then stime=0 end
if stime>100000 and stime<184005 then --не считаем вне сессии
for sec in string.gmatch(ticker_list,"%a+") do
toLog (log, sec)
toLog (log, "1")
func = BB()
toLog (log, "2")
local num_candles=ds[sec]:Size()
toLog (log, "3")
line_10,_,line_3=func(num_candles, {Period=12, Metod = "SMA", VType="Typical", round=4, Shift=2}, ds[sec])
toLog (log, "4")
-- tbl:SetValue(line_count_table[sec],'BB_middle', line_10)
-- tbl:SetValue(line_count_table[sec],'BB_lower', line_3)
--sleep (1)
дальше не сложный анализ.
end |
А теперь - самое интересное. Места с задержками. Где скорость как у ласточки я не трогал, подсветил только места задержек:
| Цитата |
|---|
| 12/02/16 15:18:24,923 LNTA 12/02/16 15:18:24,923 1 12/02/16 15:18:24,923 2 12/02/16 15:18:24,923 3 12/02/16 15:18:24,938 4 12/02/16 15:18:24,938 LSRG 12/02/16 15:18:24,938 1 12/02/16 15:18:24,938 2 12/02/16 15:18:24,938 3 12/02/16 15:18:24,938 4 12/02/16 15:18:24,938 MAGN 12/02/16 15:18:24,938 1 12/02/16 15:18:24,938 2 12/02/16 15:18:24,938 3 12/02/16 15:18:24,938 4 12/02/16 15:18:24,938 MFON 12/02/16 15:18:24,938 1 12/02/16 15:18:24,938 2 12/02/16 15:18:24,938 3 12/02/16 15:18:24,938 4 12/02/16 15:18:24,938 MGNT 12/02/16 15:18:24,938 1 12/02/16 15:18:24,938 2 12/02/16 15:18:24,938 3 12/02/16 15:18:24,938 4 12/02/16 15:18:24,938 MOEX 12/02/16 15:18:24,938 1 12/02/16 15:18:24,938 2 12/02/16 15:18:24,938 3 12/02/16 15:18:24,938 4 12/02/16 15:18:24,938 MSNG 12/02/16 15:18:24,938 1 12/02/16 15:18:24,938 2 12/02/16 15:18:24,938 3 12/02/16 15:18:24,954 4 12/02/16 15:18:24,954 MSRS 12/02/16 15:18:24,954 1 12/02/16 15:18:24,954 2 12/02/16 15:18:24,954 3 12/02/16 15:18:24,954 4 |
То есть задержка то есть, то нету. Она равна 15 миллисекунд. И она бывает не только между 3 и 4, но и на разных участках кода. Вот например между 1 и 2 шагом.
| Цитата |
|---|
| 12/02/16 15:18:24,969 PIKK 12/02/16 15:18:24,969 1 12/02/16 15:18:24,985 2 12/02/16 15:18:24,985 3 12/02/16 15:18:24,985 4 12/02/16 15:18:24,985 PLZL 12/02/16 15:18:24,985 1 12/02/16 15:18:24,985 2 12/02/16 15:18:24,985 3 12/02/16 15:18:24,985 4 12/02/16 15:18:24,985 POLY |
Вопросы.
1. Почему происходят эти задержки?
2. Почему на разных участках кода?
3. Рационально ли составлен код?
Спасибо.