---------------------------------------------------------------------------------------
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, при старте индикатора линия показывает последнее значение накопленной дельты (т.е. нет истории), а вот по ходу дальнейшей работы эта линия должна показывать изменение позиций, ну и так же следует учитывать что все это работает только внутри дня, т.к. таблица всех сделок сбрасывается с новым днем. Вроде так работало. Я то уже давно его не использую, как впрочем и саму таблицу всех сделок — уж сильно оно грузит трафик, а толку особо я так и не поимел :)
💰 СД Займера рекомендовал направить на дивиденды 100% чистой прибыли IV квартала 2025
Совет директоров Займера на заседании 12 мая рекомендовал направить на выплату дивидендов за IV квартал 2025 года 1,11 млрд рублей. Это соответствует выплате 11,10 рублей на акцию и 100% чистой...
Страховка на миллион: как Tickmill защищает ваши средства через Lloyd's of London
Многие брокеры не предлагают никакой страховки сверх того, что требует регулятор. Мы в Tickmill считаем, что этого недостаточно и пошли дальше. Сегодня рассказываем подробнее: кто нас...
На прошлой неделе Московская биржа поделилась итогами торгов драгоценными металлами в апреле — общее количество сделок выросло почти в 1,5 раза по сравнению с апрелем 2025 года, до 286 тыс., при...
Продолжит ли Совкомбанк наращивать прибыль? Совкомбанк в пятницу, 15 мая, опубликует финансовые результаты по МСФО за 1-й квартал 2026 г. Что мы можем увидеть в отчете?
Авто-репост. Читать в б...
Кирилл Егоров, Пускай тогда неустойку платят, вон на кредиты же начисляют в праздники %-ы, переводы и платежи работают в праздничные дни. Слово праздники и выходные это очередная лапша на уши инвес...
Нам поступила информация от НКО АО НРД о выплате купона по облигациям ГК Самолет оббП13, ISIN: RU000A107RZ0.
Референс корпоративного действия по ценной бумаге: 891275
ISIN: RU000A107RZ0
Разме...
Nordstream,
ахереть, в нормальных организациях наконец-то дармоедов сокращать начали (в Сбере), а эти дебилы — набирают балласт, да ещё и гордятся.
Пацаны, голосовать не забывайте, дивиденд...
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 кажется), также надо включить поток обезличенных сделок по этому инструменту (могут затормаживать квик) — это здесь Система-Заказ данных-Поток обезличенных сделок (по умолчанию у брокера это выключено, нужно звонить ему, чтобы для Вас лично включили), и потом по идее еще нужно создать где нибудь Таблицу обезличенных сделок для этого инструмента: Создать окно-Таблица обезличенных сделок. В обоих эих местах нужно задать фильтр для одного этого инструмента, чтобы не тащить всю кучу данных.