Я программистом был в позапрошлой жизни, а сейчас только и исключительно для себя. Да и то, по правде сказать, больше чтоб мозги не ржавели. Но дам наводку. 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
...
ММК: результаты в 2026 году продолжат ухудшаться. Актуализация взгляда на акции компании.
Здравствуйте! Продолжаю серию публикаций с актуализацией взгляда на российские металлургические компании и состояние рыночной конъюнктуры в секторе. Сегодня остановимся на ММК. Слабые...
Поставки казахстанской нефти в Германию через «Дружбу» остановятся с мая
Россия с 1 мая может остановить транзит казахстанской нефти в Германию трубопроводу «Дружба». По данным Reuters, в 2025 году по этому маршруту страна получила 2,146 млн тонн нефти, а в первом...
Представитель «большой тройки» металлургов отчитался за 1 квартал Северсталь (CHMF) ➡️ Инфо и показатели 🔶 Результаты за 1 квартал — выручка: ₽145,3 млрд (-19%); —...
Долларовые российские облигации: ищем интересные идеи
Доходности российских долларовых облигаций, после достижения локального минимума в сентябре 2025 г., скорректировались вверх и сейчас торгуются в сравнительно широком боковике. Какие уровни...
ProstoVladimir, спасибо за честность!
На всякий случай еще вам для общего развития немного из толкового словаря русского языка:
ЖАДНЫЙ, 1. Стремящийся к наживе, скупой. Жадный человек. 2. На...
ГК Кириллица: рост бизнеса есть, долг под контролем. Что это значит для Оил Ресурс 🧐 Пока все активно обсуждают геополитику и готовятся к пятничному заседанию ЦБ, ГК «Кириллица», в состав которого вхо...
Ygrek, Для того все и сделано — smart-lab.ru/blog/1292732.php Кризис надо олигархам США… Война все спишет… Ща погодите: Трамп может на Иран войной пойти… Чтобы нефть под 150-200 пошла… Так и надо и...
dmitriy80, ваше кун-фу в арифметике сильнее моегоТам еще что-то типа 75 лямов взяли через стандартный режим размещения, я округлял «до красивого»
Но суть не меняется: их оставят в простыне, или ...
Чад Кутежа, www.youtube.com/watch?v=McLbIxPNhVo
Колебания немецкой марки и доллара отображены в таблице. Время выхода репортажа указано выделением. После него марка укреплялась еще 2 года и до...
Вон кстати не инсайды ли видны и их использование — деньги же капнули на ФУ раньше, чем пошли выплаты на кошели — смотрите плита в бай вечерняя — не спроста, кто то уже в курсе был и прикуп сделал =)
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
...
можно добавить строчку выделенную жирным