Всем доброго времени суток!
Через пол года решил добавить скрипт LUA в Quik от Открытия
Сервисы->Lua скрипты...
Добавляю, нажимаю запустить и ноль внимания, ничего не происходит, красный квадрат и все, ни ошибки, ничего, хотя бы ругнулся на что-нить, игнор полный.
Простейший скрипт, туплю , поменялось может что-то?
Скрипт прикрепил
--[[
*******************************************************************
Индикатор Спреда для QUIK
*******************************************************************
]]
Settings =
{
Name = "SPRED_V.1.0",
aChartID1 = "GR1",
bMultiple1 = 0.1,
fZamedl1 = 1,
cOperation = "/",
dChartID2 = "GR2",
eMultiple2 = 100,
gZamedl2 = 1,
DateYY = "2015",
DateMM = "9",
DateDD = "16",
Delta1 = 0,
Delta2 = 0,
line =
{
{
Name = "SPRED",
Color = RGB(0, 0, 255),
Type = TYPE_LINE,
Width = 2
}
}
}
function Init()
DoInit ()
return 1
end
function DoInit ()
CLS1 = 0
CLS2 = 0
Close1 = 0
Close2 = 0
end
function OnCalculate(index)
--index=1
if index == 1 then ups = 0 end
if index < 2 then return nil end
if index ~= indexNow then indexNow = index CLSP1 = CLS1 CLSP2 = CLS2 end
--message("index="..index, 1) -- выводит индекс перебора свечей графика 1
Bars1 = getNumCandles(Settings.aChartID1) -- количество свечек на графике 1
Bars2 = getNumCandles(Settings.dChartID2) -- количество свечек на графике 2
--Bars3 = getNumCandles(Settings.dChartID3) -- количество свечек на графике 3
--message("Bars1 = "..Bars1.." Bars2 = "..Bars2, 1) -- выводит количество свечек на графике 1
if Bars1 == 0 then -- если нет свечей графика 1
message("ѓрафик с ID "..Settings.aChartID1.." не найден. Проверьте наличие идентификатора и загрузите индикатор снова.", 3) -- выводит сообщение об ошибке
return nil -- выходим из функции ничего не рисуя
end -- выход из условия: если нет свечей графика 1
if Bars2 == 0 then -- если нет свечей графика 2
message("ѓрафик с ID "..Settings.dChartID2.." не найден. Проверьте наличие идентификатора и загрузите индикатор снова.", 3) -- выводит сообщение об ошибке
return nil -- выходим из функции ничего не рисуя
end -- выход из условия: если нет свечей графика 2
if index == Bars1 or index == 2 then -- если последний индекс
tChart1, Num1, Legend1 = getCandlesByIndex(Settings.aChartID1, 0, 0, Bars1) -- информация о свечках по идентификатору 1
tChart2, Num2, Legend2 = getCandlesByIndex(Settings.dChartID2, 0, 0, Bars2) -- информация о свечках по идентификатору 2
-- tChart3, Num3, Legend3 = getCandlesByIndex(Settings.dChartID3, 0, 0, Bars3) -- информация о свечках по идентификатору 2
end -- выход из условия: если последний индекс
tDateTime = tChart1[index-1].datetime -- таблица таймсерии
DateYY = tonumber (tDateTime.year..tDateTime.month..tDateTime.day)
DateSetYY = tonumber (Settings.DateYY..Settings.DateMM..Settings.DateDD)
if DateYY == DateSetYY then ups = 1 CLSP1 = Settings.Delta1 CLSP2 = Settings.Delta2 end
Close1=tChart1[index-1].close -- записываем Close из текущей свечи графика 1
Close2=tChart2[index-1].close -- записываем Close из текущей свечи графика 2
CLS1 = Close1*Settings.eMultiple1
CLS2 = Close2*Settings.eMultiple2
if ups == 0 then -- если меньше Даты то не строю, но всё считаю
return nil -- выходим из функции
end -- выход из условия: если меньше заданной даты
if Settings.cOperation == "-" then -- если операция вычитание
return CLS1 - CLS2 -- если используется арбитраж разницы
end
if Settings.cOperation == "+" then -- если операция сложение
return CLS1 + CLS2 -- если используется арбитраж суммы
end
if Settings.cOperation == "/" then -- если операция деление
return 100*CLS1 / CLS2 -- если используется арбитраж деления (коэффициент)
end
if Settings.cOperation == "*" then -- если операция умножение
return CLS1 * CLS2 -- если используется арбитраж умножения
end
Close2nak=1
end -- выход из функции OnCalculate
Через пол года решил добавить скрипт LUA в Quik от Открытия
Сервисы->Lua скрипты...
Добавляю, нажимаю запустить и ноль внимания, ничего не происходит, красный квадрат и все, ни ошибки, ничего, хотя бы ругнулся на что-нить, игнор полный.
Простейший скрипт, туплю , поменялось может что-то?
Скрипт прикрепил
--[[
*******************************************************************
Индикатор Спреда для QUIK
*******************************************************************
]]
Settings =
{
Name = "SPRED_V.1.0",
aChartID1 = "GR1",
bMultiple1 = 0.1,
fZamedl1 = 1,
cOperation = "/",
dChartID2 = "GR2",
eMultiple2 = 100,
gZamedl2 = 1,
DateYY = "2015",
DateMM = "9",
DateDD = "16",
Delta1 = 0,
Delta2 = 0,
line =
{
{
Name = "SPRED",
Color = RGB(0, 0, 255),
Type = TYPE_LINE,
Width = 2
}
}
}
function Init()
DoInit ()
return 1
end
function DoInit ()
CLS1 = 0
CLS2 = 0
Close1 = 0
Close2 = 0
end
function OnCalculate(index)
--index=1
if index == 1 then ups = 0 end
if index < 2 then return nil end
if index ~= indexNow then indexNow = index CLSP1 = CLS1 CLSP2 = CLS2 end
--message("index="..index, 1) -- выводит индекс перебора свечей графика 1
Bars1 = getNumCandles(Settings.aChartID1) -- количество свечек на графике 1
Bars2 = getNumCandles(Settings.dChartID2) -- количество свечек на графике 2
--Bars3 = getNumCandles(Settings.dChartID3) -- количество свечек на графике 3
--message("Bars1 = "..Bars1.." Bars2 = "..Bars2, 1) -- выводит количество свечек на графике 1
if Bars1 == 0 then -- если нет свечей графика 1
message("ѓрафик с ID "..Settings.aChartID1.." не найден. Проверьте наличие идентификатора и загрузите индикатор снова.", 3) -- выводит сообщение об ошибке
return nil -- выходим из функции ничего не рисуя
end -- выход из условия: если нет свечей графика 1
if Bars2 == 0 then -- если нет свечей графика 2
message("ѓрафик с ID "..Settings.dChartID2.." не найден. Проверьте наличие идентификатора и загрузите индикатор снова.", 3) -- выводит сообщение об ошибке
return nil -- выходим из функции ничего не рисуя
end -- выход из условия: если нет свечей графика 2
if index == Bars1 or index == 2 then -- если последний индекс
tChart1, Num1, Legend1 = getCandlesByIndex(Settings.aChartID1, 0, 0, Bars1) -- информация о свечках по идентификатору 1
tChart2, Num2, Legend2 = getCandlesByIndex(Settings.dChartID2, 0, 0, Bars2) -- информация о свечках по идентификатору 2
-- tChart3, Num3, Legend3 = getCandlesByIndex(Settings.dChartID3, 0, 0, Bars3) -- информация о свечках по идентификатору 2
end -- выход из условия: если последний индекс
tDateTime = tChart1[index-1].datetime -- таблица таймсерии
DateYY = tonumber (tDateTime.year..tDateTime.month..tDateTime.day)
DateSetYY = tonumber (Settings.DateYY..Settings.DateMM..Settings.DateDD)
if DateYY == DateSetYY then ups = 1 CLSP1 = Settings.Delta1 CLSP2 = Settings.Delta2 end
Close1=tChart1[index-1].close -- записываем Close из текущей свечи графика 1
Close2=tChart2[index-1].close -- записываем Close из текущей свечи графика 2
CLS1 = Close1*Settings.eMultiple1
CLS2 = Close2*Settings.eMultiple2
if ups == 0 then -- если меньше Даты то не строю, но всё считаю
return nil -- выходим из функции
end -- выход из условия: если меньше заданной даты
if Settings.cOperation == "-" then -- если операция вычитание
return CLS1 - CLS2 -- если используется арбитраж разницы
end
if Settings.cOperation == "+" then -- если операция сложение
return CLS1 + CLS2 -- если используется арбитраж суммы
end
if Settings.cOperation == "/" then -- если операция деление
return 100*CLS1 / CLS2 -- если используется арбитраж деления (коэффициент)
end
if Settings.cOperation == "*" then -- если операция умножение
return CLS1 * CLS2 -- если используется арбитраж умножения
end
Close2nak=1
end -- выход из функции OnCalculate