Удаляю скрипт из Сервисы-Lua-Скрипты... , а его название до сих пор выпадает в списке добавить индикатор, как это все зачистить? И вообще , у меня открывается файл в скрипте, при перезапуске Quika - не открывается - f.open (...) выдает nill в общем танцы с бубнами.. но это следущий вопрос.
Вот вам обещанный код, C(ind-M+i) - берет Close свечи с заданным номером, никаких идентификаторов не надо, если вы конечно этот код в виде индикатора делаете, а не внутри скрипта:
Код
local Sp = 0
for i = 1 ,M do
Sp = Sp + C(ind - M + i)
end
Sp = Sp/M
local stddev = 0
local p_c = 0
for i = 1 ,M do
p_c = C(ind - M + i)
stddev = stddev + (p_c - Sp) * (p_c - Sp)
end
stddev = math.sqrt (stddev/M)
Спасибо! И это в квике будет работать?
а я клоусы получаю оч сложно :) :
Bars1 = getNumCandles(Settings.aChartID1) tChart1, Num1, Legend1 = getCandlesByIndex(Settings.aChartID1, 0, 0, Bars1) и вот сам клоус tChart1[index-i].close ну и в цикле гоняю это..
и я задолбался везде идентификаторы проставлять...
блин , а где почитать нормальный синтаксис к квику по луа? В справке, что идет к квику ничего ж нет нормального, кто ее писал. Ни описаний фнкций - ничего по сути, как в нормальных языках
нее, в экселе картинка другая, так тут и трендовый какой-то, единственное совпадение , что есть слово среднеквадратичное отклонение:). Кароче, забубенил сам, вроде получилось. Но если кто кусочек кода выложит, буду признателен:) .
Если пришлете картинку из Excel и Ваши формулы расчета, то могу сравнить со своими и прислать кусочек кода.
Картинку сейчас сложно сделать. ну так это просто рисуется СКО. Формула для нее такая, к примеру для 10ти периодов и для Клоузов: Корень из (Суммы квадратов разности CL(i) - CLср(10) деленное на 9 периодов) или SQRT(SUMM ((CL(i) - CLср(10))*(CL(i) - CLср(10)))/9) , ну стандартная такая формула для СКО
Это для Close, а вы изначально написали про Min|Max, что меня немного привело в замешательство, т.к. используются сразу 2 значения свечи, вот мне и интересно, как вы считаете СКО сразу по 2-м значениям.
Для Мин свое СКО для Макс свое. У меня вопрос - то был в коде, с циклами еще не работал, но оказалось все проще, а вы случайно не в курсе, как без идентификатора работать, чтобы сразу бросил индикатор на график и он построился? Сейчас мне приходится везде идентификаторы уникальные проставлять, что напрягает, машки же всякие и болинджеры ничего не требуют. добавил и все.
нее, в экселе картинка другая, так тут и трендовый какой-то, единственное совпадение , что есть слово среднеквадратичное отклонение:). Кароче, забубенил сам, вроде получилось. Но если кто кусочек кода выложит, буду признателен:) .
Если пришлете картинку из Excel и Ваши формулы расчета, то могу сравнить со своими и прислать кусочек кода.
Картинку сейчас сложно сделать. ну так это просто рисуется СКО. Формула для нее такая, к примеру для 10ти периодов и для Клоузов: Корень из (Суммы квадратов разности CL(i) - CLср(10) деленное на 9 периодов) или SQRT(SUMM ((CL(i) - CLср(10))*(CL(i) - CLср(10)))/9) , ну стандартная такая формула для СКО
Сергей написал: Всем доброго дня! Подскажите ,как построить Среднеквадратичное отклонение за заданный период по ценам Max и Min. Не пойму, как работать с массивами в lua, индикатор такой нужен. Может кто-нибудь подсказать кусок кода с рачетом на LUA?
нее, в экселе картинка другая, так тут и трендовый какой-то, единственное совпадение , что есть слово среднеквадратичное отклонение:). Кароче, забубенил сам, вроде получилось. Но если кто кусочек кода выложит, буду признателен:) .
Всем доброго дня! Подскажите ,как построить Среднеквадратичное отклонение за заданный период по ценам Max и Min. Не пойму, как работать с массивами в lua, индикатор такой нужен. Может кто-нибудь подсказать кусок кода с рачетом на LUA?
Sergey Gorokhov написал: Сергей , Это индикатор, а не просто скрипт. Для добавления индикатора, в каталоге с терминалом QUIK создайте папку LuaIndicators и поместите код скрипта в эту папку. После этого в списске индикаторов, при добавлении на график, появится пункт "SPRED_V.1.0" его надо добавить на график.
Всем доброго времени суток! Через пол года решил добавить скрипт LUA в Quik от Открытия Сервисы->Lua скрипты... Добавляю, нажимаю запустить и ноль внимания, ничего не происходит, красный квадрат и все, ни ошибки, ничего, хотя бы ругнулся на что-нить, игнор полный. Простейший скрипт, туплю , поменялось может что-то?
Скрипт прикрепил
--[[ ******************************************************************* Индикатор Спреда для QUIK
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
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 Нужен индикатор в виде гистограммы (как объем) подсчитывающий кол-во сделок в баре, ТФ М1. Такое возможно написать на LUA?