ivanov petya,
сам не писал индикаторы никогда, но видел в руководстве QLua вроде как вполне себе информативные примеры. Вы в них разбирались? Так-то «последнее значение», возможно, имеет смысл получать из функции OnAllTrade, примерно таким вот образом:
— глобальный объект
GDS = { { 0, «SPBFUT», «BRQ7» }, { 1, «CETS», «USD000000TOD» }, { 2, «SPBFUT», «SRU7» }, { 3, «SPBFUT», «GZU7» } }
— --
for i = 1, #GDS do
local gd = GDS[i]
if (class == gd[2]) and (sec == gd[3]) then
doSomething( gd[1],
os.time(alltrade.datetime),
alltrade.price,
alltrade.qty,
alltrade.flags )
--PrintDbgStr( string.format( «Guide%d has been passed», gd[1] ) )
return
end
end
для того, чтобы эти тики транслировались в OnAllTrade, на них надо предварительно подписаться при инициализации скрипта:
local gs = {}
local dss = {}
for i = 1, #GDS do
local gd_info = getSecurityInfo( GDS[i][2], GDS[i][3] )
if gd_info ~= nil then
gs[i] = { GDS[i][1], gd_info.short_name, gd_info.min_price_step }
dss[i], errMess = CreateDataSource( GDS[i][2], GDS[i][3], INTERVAL_TICK )
PrintDbgStr( errMess )
else
gs[i] = nil
dss[i] = nil
PrintDbgStr( string.format( «Wrong security for i = %d», i ) )
end
end
return gs, dss
А так, руководство Qlua в помощь, за вас код никто писать не будет. Только, возможно, помогут с каким-нибудь багом разобраться, но это должно так совпасть, чтобы кто-то другой с ним тоже столкнулся...