---------------------------------------------------------------------------------------
function FFF()
local CC={}
local LL={}
local VV={}
return function(ind, _p,_N)
local index = ind
local MAX = 0
local MAXV = 0
local MIN = 0
local RR = 0
local jj = 0
local kk = 0
if index == 1 then
VV={}
CC={}
LL={}
------------------
VV[index]=V(index)
CC[1]=0
return nil
end
------------------------------
VV[index]=V(index)
if index < (Size()-2) then return nil end
MAX = H(index)
MIN = L(index)
for i = 0, _p-1 do
MAX=math.max(MAX,H(index-i))
MIN=math.min(MIN,L(index-i))
end
----------------------------------------
for i = 1, _N do CC[i]=0 end
for i = 0, _p-1 do
jj=math.floor( (H(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
kk=math.floor( (L(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
for k=1,(jj-kk) do
CC[kk+k-1]=CC[kk+k-1]+V(index-i)/(jj-kk)
end
end
--------------------
MAXV = 0
for i = 1, _N do MAXV=math.max(MAXV,CC[i])end
for i = 1, _N do
CC[i]=math.floor(CC[i]/MAXV*50)
end
---------------------
for i = 1, _N do
LL[i]= i/_N*(MAX-MIN)+MIN
if CC[i]==0 then LL[i]=nil end
end
for i = 1, 50+1 do
for j = 1, _N do
if CC[j]>i then
SetValue(index-i, j, LL[j])
else
SetValue(index-i, j, nil)
end
end
end
return unpack(LL)
end
end
---------------------------------------------------------------------------------------
function Init()
Settings.line = {}
for i = 1, 100 do
Settings.line[i] = {}
Settings.line[i] = {Color = RGB(255, 192, 0), Type = TYPE_LINE, Width = 1}
end
myFFF = FFF()
return 100
end
function OnCalculate(index)
return myFFF(index, Settings.period, 100)
end
AlexGood, я не пользуюсь индикаторами, но этот запускался. как мы выяснили (см. ниже) сработала автозамена при вставке кода на сайт. попробую по-другому.
Settings={}
Settings.period = 100
Settings.Name = "xHV"
---------------------------------------------------------------------------------------
function FFF()
local CC={}
local LL={}
local VV={}
return function(ind, _p,_N)
local index = ind
local MAX = 0
local MAXV = 0
local MIN = 0
local RR = 0
local jj = 0
local kk = 0
if index == 1 then
VV={}
CC={}
LL={}
------------------
VV[index]=V(index)
CC[1]=0
return nil
end
------------------------------
VV[index]=V(index)
if index < (Size()-2) then return nil end
MAX = H(index)
MIN = L(index)
for i = 0, _p-1 do
MAX=math.max(MAX,H(index-i))
MIN=math.min(MIN,L(index-i))
end
----------------------------------------
for i = 1, _N do CC[i]=0 end
for i = 0, _p-1 do
jj=math.floor( (H(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
kk=math.floor( (L(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
for k=1,(jj-kk) do
CC[kk+k-1]=CC[kk+k-1]+V(index-i)/(jj-kk)
end
end
--------------------
MAXV = 0
for i = 1, _N do MAXV=math.max(MAXV,CC[i])end
for i = 1, _N do
CC[i]=math.floor(CC[i]/MAXV*50)
end
---------------------
for i = 1, _N do
LL[i]= i/_N*(MAX-MIN)+MIN
if CC[i]==0 then LL[i]=nil end
end
for i = 1, 50+1 do
for j = 1, _N do
if CC[j]>i then
SetValue(index-i, j, LL[j])
else
SetValue(index-i, j, nil)
end
end
end
return unpack(LL)
end
end
---------------------------------------------------------------------------------------
function Init()
Settings.line = {}
for i = 1, 100 do
Settings.line[i] = {}
Settings.line[i] = {Color = RGB(255, 192, 0), Type = TYPE_LINE, Width = 1}
end
myFFF = FFF()
return 100
end
function OnCalculate(index)
return myFFF(index, Settings.period, 100)
end
AlexGood, а какая разница, дельта ли, объем ли, любой другой ли? Все индикаторы одинаково добавляются на график. Либо не туда положили, либо не так указываете. Третьего не дано.
Чего то не видит этот код квик, ошибка что ли там. PS: понял кавычки в Settings.Name не <<>>, а "" должны быть.
Здесь у меня есть дельта: smart-lab.ru/blog/204994.php
AlexGood, как и любой индикатор — ничего не надо запускать, нужно добавлять его на график, я использовал в отдельном окне как MACD например, (называется Delta), положив файл .lua в папку quik/LuaIndicators.
И цитата из моего коммента по ссылке: чтобы работал этот индикатор, нужно у брокера включить передачу таблицы всех сделок Там еще можно почитать про особенности, например, истории нет для этого индикатора, т.к. у брокера нет истории по этой самой таблице, по которой считается та самая дельта.
Serg, несмотря на то что этот индикатор дельты в нужной папке, квик его не видит, он не появляется среди стандартных КВИКовских индикаторов! Что предпринять?
AlexGood, не знаю — только проверил все есть, называется «Delta» — такой ищете? Вы вот написали папку как «lua indicators», а надо без пробела, если у Вас с пробелом, то ничего и не увидите.
Скопирую сюда из личной переписки пояснения для всех:
Во, еще забыл, в свойствах индикатора надо задать инструмент, для текущего ри-3.20 это будет RIH0 (там сейчас стоит SRU5 кажется), также надо включить поток обезличенных сделок по этому инструменту (могут затормаживать квик) — это здесь Система-Заказ данных-Поток обезличенных сделок (по умолчанию у брокера это выключено, нужно звонить ему, чтобы для Вас лично включили), и потом по идее еще нужно создать где нибудь Таблицу обезличенных сделок для этого инструмента: Создать окно-Таблица обезличенных сделок. В обоих эих местах нужно задать фильтр для одного этого инструмента, чтобы не тащить всю кучу данных.
Serg, сделал все как вы говорили: на график индикатор Дельта добавил, тикер в коде индикатора заменил на текущий, поток обезличенных сделок и таблица есть, cделки проходят в таблице, но вот на графике в окне этого индикатора ничего не происходит, нарисовалась ваша темно-синяя горизонтальная линия и все!
AlexGood, при старте индикатора линия показывает последнее значение накопленной дельты (т.е. нет истории), а вот по ходу дальнейшей работы эта линия должна показывать изменение позиций, ну и так же следует учитывать что все это работает только внутри дня, т.к. таблица всех сделок сбрасывается с новым днем. Вроде так работало. Я то уже давно его не использую, как впрочем и саму таблицу всех сделок — уж сильно оно грузит трафик, а толку особо я так и не поимел :)
X5 объявляет о размещении корпоративных облигаций на сумму 11 млрд руб.
X5 объявляет о размещении ООО «ИКС 5 ФИНАНС» рублевых облигаций серии 003P-18 на сумму 11 млрд руб. Ставка купона по облигациям с ежемесячным купонным периодом с офертой через 27 мес. установлена...
Представитель «большой тройки» металлургов отчитался за 1 квартал Северсталь (CHMF) ➡️ Инфо и показатели 🔶 Результаты за 1 квартал — выручка: ₽145,3 млрд (-19%); —...
Долларовые российские облигации: ищем интересные идеи
Доходности российских долларовых облигаций, после достижения локального минимума в сентябре 2025 г., скорректировались вверх и сейчас торгуются в сравнительно широком боковике. Какие уровни...
Андрей
говорил вчера на закрытии — пора выходить, бумага перекуплена… нет ждут чудес…
Ремора, где вы так говорили?
Вижу только сегодня в 9 утра постфактум, после начала падения.
А как же те...
С января 2026 года биржевая цена АИ-92 выросла с 53 до 66 тыс. руб. за тонну в апреле. Но перед январём был обвал с пика 74 тыс. в сентябре 2025 года до 53 тыс. в январе 2026 года. Хорошо, что не пада...
Потери на рынке нефти оценили в 1 млрд баррелей Trafigura оценила выпавший из-за войны на Ближнем Востоке с рынка объем нефти в 1 млрд баррелей. Масштаб шока эта статистика, по нашему мнению, передает...
Потери на рынке нефти оценили в 1 млрд баррелей Trafigura оценила выпавший из-за войны на Ближнем Востоке с рынка объем нефти в 1 млрд баррелей. Масштаб шока эта статистика, по нашему мнению, передает...
USD/JPY: рынок собирается проверить решимость японского регулятора Японская иена продолжает разнонаправленно колебаться в ограниченном коридоре, продолжая тестировать психологический рубеж 160, которы...
Карта стоимости ижс в России по регионам.
С начала 2026 года выдачи ипотеки Сбера на строительство частных домов выросли более чем в два раза и превысили 48 млрд рублей. Только в феврале и марте об...
Жертва ВДО. Сегежа - бьется в попытке отсрочит неизбежное. Придет ли спасение?
16 апреля 2026 года «Сегежа Групп» $SGZH раскрыла годовой отчёт за 2025-й. Реакция рынка не заставила себя ждать...
Settings={}
Settings.period = 100
Settings.Name = «xHV»
---------------------------------------------------------------------------------------
function FFF()
local CC={}
local LL={}
local VV={}
return function(ind, _p,_N)
local index = ind
local MAX = 0
local MAXV = 0
local MIN = 0
local RR = 0
local jj = 0
local kk = 0
if index == 1 then
VV={}
CC={}
LL={}
------------------
VV[index]=V(index)
CC[1]=0
return nil
end
------------------------------
VV[index]=V(index)
if index < (Size()-2) then return nil end
MAX = H(index)
MIN = L(index)
for i = 0, _p-1 do
MAX=math.max(MAX,H(index-i))
MIN=math.min(MIN,L(index-i))
end
----------------------------------------
for i = 1, _N do CC[i]=0 end
for i = 0, _p-1 do
jj=math.floor( (H(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
kk=math.floor( (L(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
for k=1,(jj-kk) do
CC[kk+k-1]=CC[kk+k-1]+V(index-i)/(jj-kk)
end
end
--------------------
MAXV = 0
for i = 1, _N do MAXV=math.max(MAXV,CC[i])end
for i = 1, _N do
CC[i]=math.floor(CC[i]/MAXV*50)
end
---------------------
for i = 1, _N do
LL[i]= i/_N*(MAX-MIN)+MIN
if CC[i]==0 then LL[i]=nil end
end
for i = 1, 50+1 do
for j = 1, _N do
if CC[j]>i then
SetValue(index-i, j, LL[j])
else
SetValue(index-i, j, nil)
end
end
end
return unpack(LL)
end
end
---------------------------------------------------------------------------------------
function Init()
Settings.line = {}
for i = 1, 100 do
Settings.line[i] = {}
Settings.line[i] = {Color = RGB(255, 192, 0), Type = TYPE_LINE, Width = 1}
end
myFFF = FFF()
return 100
end
function OnCalculate(index)
return myFFF(index, Settings.period, 100)
end
А в какую папку и какое расширение файла?
Settings={} Settings.period = 100 Settings.Name = "xHV" --------------------------------------------------------------------------------------- function FFF() local CC={} local LL={} local VV={} return function(ind, _p,_N) local index = ind local MAX = 0 local MAXV = 0 local MIN = 0 local RR = 0 local jj = 0 local kk = 0 if index == 1 then VV={} CC={} LL={} ------------------ VV[index]=V(index) CC[1]=0 return nil end ------------------------------ VV[index]=V(index) if index < (Size()-2) then return nil end MAX = H(index) MIN = L(index) for i = 0, _p-1 do MAX=math.max(MAX,H(index-i)) MIN=math.min(MIN,L(index-i)) end ---------------------------------------- for i = 1, _N do CC[i]=0 end for i = 0, _p-1 do jj=math.floor( (H(index-i)-MIN)/(MAX-MIN)*(_N-1))+1 kk=math.floor( (L(index-i)-MIN)/(MAX-MIN)*(_N-1))+1 for k=1,(jj-kk) do CC[kk+k-1]=CC[kk+k-1]+V(index-i)/(jj-kk) end end -------------------- MAXV = 0 for i = 1, _N do MAXV=math.max(MAXV,CC[i])end for i = 1, _N do CC[i]=math.floor(CC[i]/MAXV*50) end --------------------- for i = 1, _N do LL[i]= i/_N*(MAX-MIN)+MIN if CC[i]==0 then LL[i]=nil end end for i = 1, 50+1 do for j = 1, _N do if CC[j]>i then SetValue(index-i, j, LL[j]) else SetValue(index-i, j, nil) end end end return unpack(LL) end end --------------------------------------------------------------------------------------- function Init() Settings.line = {} for i = 1, 100 do Settings.line[i] = {} Settings.line[i] = {Color = RGB(255, 192, 0), Type = TYPE_LINE, Width = 1} end myFFF = FFF() return 100 end function OnCalculate(index) return myFFF(index, Settings.period, 100) endЗдесь у меня есть дельта: smart-lab.ru/blog/204994.php
И цитата из моего коммента по ссылке:
чтобы работал этот индикатор, нужно у брокера включить передачу таблицы всех сделок
Там еще можно почитать про особенности, например, истории нет для этого индикатора, т.к. у брокера нет истории по этой самой таблице, по которой считается та самая дельта.
Во, еще забыл, в свойствах индикатора надо задать инструмент, для текущего ри-3.20 это будет RIH0 (там сейчас стоит SRU5 кажется), также надо включить поток обезличенных сделок по этому инструменту (могут затормаживать квик) — это здесь Система-Заказ данных-Поток обезличенных сделок (по умолчанию у брокера это выключено, нужно звонить ему, чтобы для Вас лично включили), и потом по идее еще нужно создать где нибудь Таблицу обезличенных сделок для этого инструмента: Создать окно-Таблица обезличенных сделок. В обоих эих местах нужно задать фильтр для одного этого инструмента, чтобы не тащить всю кучу данных.