Владимир Киселев (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
повторный Init() без OnDestroy() в индикаторе, При смене инструмента графика в Lua индикаторе перечитывается файл без предварительного срабатывания OnDestroy()
 
Есть Таблица текущих торгов и связанный с ней график.
На график добавлен индикатор за основу взят пример индикатора ATR.
Изменения:
Код
dofile(getWorkingFolder().."\\LuaScripts\\kv_log.lua")

inited = false
            
function Init()
    if not inited then
        kvLogOpen()
        kvLog("ATR Price Init")
        func = ATR()
        inited = true
    end
    return #Settings.line
end

function OnDestroy() 
    if inited then
        kvLog("ATR Price OnDestroy")
        kvLogClose()
        inited = false
    end
end

function OnCalculate(Index) 
    if Index == 1 then kvLog("ATR Price OnCalculate(Index == 1)") end
    return func(Index, Settings)
end
При смене инструмента срабатывает
Код
kvLog("ATR Price Init")
из лога:
Цитата
: ATR Price Init
: ATR Price OnCalculate(Index == 1)
14:50:28 : ATR Price OnCalculate(Index == 1)
< Меняем инструмент >
14:50:43 : ATR Price Init
14:50:43 : ATR Price OnCalculate(Index == 1)
Соответственно теряется дескриптор открытого в первый раз файла лога.
Как можно этого избежать?

Скрытый текст
Страницы: 1
Наверх