Нужен скрипт для КВИК вычисляющий среднюю цену фьючей в позиции!
Друзья и коллеги, всем привет! Кто сможет написать или достать скрипт (на lua?) считающий среднюю цену фьючей в моей позиции?!
417 |
Читайте на SMART-LAB:
Итоги Smart-Lab & Cbonds PRO облигации 2026
Итоги Smart-Lab & Cbonds PRO облигации 2026
28 февраля прошла конференция по вопросам облигационного рынка Smart-Lab & Cbonds...
USD/CAD: канадец оказался зажат в тисках экономики и геополитики
Канадский доллар в целом разнонаправленно колебался в узком диапазоне, лишь изредка показывая вялые всплески в ответ на происходящие события....
X5 укрепила лидерство на рынке онлайн-продаж в 2025 году
По итогам 2025 года GMV онлайн-бизнеса Х5 составила 323,7 млрд руб., а доля на рынке e-grocery, по данным INFOLine, достигла 18,6%. Цифровой...
Хэдхантер. Я не дождался отчета за 25г. и обновил прогноз по прибыли и дивидендам
Хэдхантер послезавтра 6 марта опубликует отчет по МСФО за 2025 год. Модель по компании обновлял здесь , но сегодня решил сделать...
quikluacsharp.ru/landing/
Сам не обращался, но у них всякие примеры подсматриваю периодически.
это в какой таблице?
Все что ниже в отдельный файл с расширением lua:
function main()
local avgprice = 0
local pos = 0
function myFind(C,S) return C == «SPBFUT» and S == «SiM3» end
local tradeTable = SearchItems(«trades», 0, getNumberOf(«trades»)-1, myFind, «class_code,sec_code»)
for n = #tradeTable, 1, -1 do
trade = getItem(«trades», tradeTable[n])
if bit.band(trade.flags, 0x4) == 0 then
avgprice = avgprice — trade.value
pos = pos + trade.qty
elseif bit.band(trade.flags, 0x4) ~= 0 then
avgprice = avgprice + trade.value
pos = pos — trade.qty end end
avgprice = avgprice/-pos
message(«avgprice = »..tostring(avgprice))
end
function main()
local avgprice = 0
local pos = 0
local tradeTable = SearchItems('trades', 0, getNumberOf('trades')-1, myFind, 'class_code,sec_code')
for n = #tradeTable, 1, -1 do
trade = getItem('trades', tradeTable[n])
if bit.band(trade.flags, 0x4) == 0 then
avgprice = avgprice-trade.price
pos = pos + trade.qty
elseif bit.band(trade.flags, 0x4) ~= 0 then
avgprice = avgprice+trade.price
pos = pos-trade.qty end end
avgprice = avgprice/-pos
message('avgprice = '..tostring(avgprice))
end
function myFind(C,S) return C == 'SPBFUT' and S == 'GDM3' end
попробуй этот вариант, я заменил двойные кавычки на одинарные, либо Расширенный символ с кодом 171 в таблице символов это кавычка вида «. Менять вид кавычек на " (код 187). (с форума поддержки квика)
В двух местах при копипасте минус заменился на дефис.
Также заменил вытаскиваемое значение с объема на цену (trade.value на trade.price)
...
local tradeTable = SearchItems('trades', 0, getNumberOf('trades')-1, myFind, 'class_code,sec_code')
if tradeTable == nil then message('not found trades', 2); return end
for n = #tradeTable, 1, -1 do
...
можно добавить строчку выделенную жирным