Я программистом был в позапрошлой жизни, а сейчас только и исключительно для себя. Да и то, по правде сказать, больше чтоб мозги не ржавели. Но дам наводку. quikluacsharp.ru/landing/
Сам не обращался, но у них всякие примеры подсматриваю периодически.
astic, мне не в конце дня надо, а в оперативном режиме для мани/риск-менеджмента в своем трейдинге, чтобы в числовом виде или лучше линии на графике была средняя цена набранных фьючей!
AlexGood, так если интрадей в течении для до клиринга есть же поле «Эффективная цена позиции». В клиринг она пересчитывается по цене закрытия но до клиринга это и есть твоя средняя цена.
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
AlexGood, а все правильно скопировал? у меня все ок щас проверил. А в настройках поставь версию луа 5.3.5 может из-за этого. Ну и таблица сделок должна существовать и сделки в ней.
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)
funjpg, пишет ошибку 5: attempt to get length of a nil value, после совершения сделки по фьючам заданного в коде тикера просто не запускается, ничего не пишет!
AlexGood, не находит трейды заданного фьюча, напиши точно тикер, может в нем ошибка. У меня не было сегодня трейдов по золоту, такая же ошибка. Как вариант, можно добавить проверку на nil, если nil, то выводить сообщение, не нашел трейдов по инструменту.
...
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
...
Самые лучшие новости по фондовому рынку теперь и в MAX!
Дорогие товарищи! С тех пор как наши читатели стали испытывать проблемы с доступом к телеграм, мы продублировали функционал нашего топового новостного канала для инвесторов @newssmartlab в МАХ!...
23.03.2026
Российский рынок начал неделю в красной зоне
Торги 23 марта на российских фондовых площадках стартовали на отрицательной территории. К 13:00 мск индекс Мосбиржи опустился на 0,77%, до 2843 пунктов, РТС снизился на 0,79%, до 1066, индекс...
Австралийский доллар на недельном графике вернулся к пробитому горизонтальному уровню 0.6942, который практически совпадает с 50% уровнем Фибо последнего нисходящего движения (растянутого от...
X5 МСФО 2025 г. - капзатрат меньше, дивиденд больше?
Компания X5 опубликовала финансовые результаты за 2025 год. Выручка прибавила +18,8% до 4,6 трлн руб., в 4-м квартале рост на 14,9% до 1,24 трлн руб. Валовая прибыль за год выросла на +17,9%...
fusy, а я и не говорю, что у них все классно. У кого сейчас все классно? Но сравните отчет ЕТ и УС например. АО «Уральская сталь» по итогам 9 месяцев 2025 года перешло к убытку, зафиксировав отрица...
HENDERSON: где точки роста в эпоху маркетплейсов? 🛒 Российский fashion‑рынок напоминает качели: с одной стороны, рост в денежном выражении обгоняет инфляцию, с другой — потребители всё реже покупают д...
о, а димона только на днях вспоминали
кукляш откатил так откатил, ну давайте без эмоций эта «дыра» была видна, не так глубоко, как вышло, но тем не менее, надо держать в голове что могут и перелои ...
весёлые данные сегодня ии выдал. вечернее опорожнение на пол ляма лотов менее чем за секунду
Топ агрессоров:
21:16:34 — покупка 50,312 лотов (456 тиков за 35 мс!) — огромная заявка
13:05–1...
Путин заявил об увеличении производства и ввп, при ставке в 15% и борьбы цб с инфляцией, что может сделать правительство в таком случае, правильно закупить самолёты и увеличить тем самым производство ...
Booppa
Че банки не ракетят? Ведь Главнокомандующий приказал нефтянке ввпрямиться перед банкамих
На запуске межконтинент с подводных положений, «кузькину мать» нефтянке продеМонстрим ))
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
...
можно добавить строчку выделенную жирным