(QUIK Lua) Здравствуйте, я знаю что вас задолбали такие как я) но прошу помочь с кодом, конкретно нужен код для получения цены открытой позиции,цена нужна для выставления точного стоп ордера.
Спасибо
(QUIK Lua) Здравствуйте, я знаю что вас задолбали такие как я) но прошу помочь с кодом, конкретно нужен код для получения цены открытой позиции, цена нужна для выставления точного стоп ордера.Спасибо
Есть функция. Она бегает по «trades» циклом и ищет последнее значение. На вход функция получает SEC_CODE, например RIH8, SiH8. Возвращает она цену последней ВАШЕЙ сделки.
function getLastPrice(sec)
for i = 0,getNumberOf(«trades») do
local pr = getItem(«trades», i)
if pr ~= nil and type(pr) == «table» then
if pr.sec_code == sec and i == getNumberOf(«trades»)-1 then
return pr.price
end
end
end
end
В вашей main функции создайте локальную переменную, которая в необходимый момент будет дергать эту функцию. Не забудьте передавать в параметрах код инструмента.
Здравствуйте, спасибо вам за ответ, я попробовал сделать как вы сказали, но что то пошло не так
подправьте пожалуйста где ошибка?
p_classcode=«SPBFUT» --Код класса
p_seccode=«RIH8» --Код инструмента
is_run = true
function getLastPrice(sec)
for i = 0,getNumberOf(«trades») do
local pr = getItem(«trades», i)
if pr ~= nil and type(pr) == «table» then
if pr.sec_code == sec and i == getNumberOf(«trades»)-1 then
return pr.price
message (pr.price)
end
end
end
end
function cb(index)
local t = ds:T(index)
local str = «свеча № »..tostring(index-1).." из "..tostring(ds:Size()).." open="..ds:O(index-1)
str = str.." close="..tostring(ds:C(index-1))
---high="..tostring(ds:H(index)).." low="..tostring(ds:L(index))
local lastPrice = getLastPrice(p_seccode)
message (lastPrice)
Рынок облигаций: новые размещения от крупных российских компаний
Рассмотрим параметры двойного размещения АФК «Система» со значительной премией к рыночной доходности, а также условия нового валютного размещения «ФосАгро» с высоким юаневым купоном. ⚙️ АФК...
ИИ в России выходит в правовое поле: что это значит для рынка и инвесторов #ЭкспертыSOFL
Дорогие инвесторы! Мы запускаем новую отраслевую рубрику, которая называется #ЭкспертыSOFL. В рамках этой рубрики каждую неделю будем разбирать ключевые темы технологического рынка и комментарии...
Нефть по-прежнему широко колеблется, движимая противоречием между фундаментальными излишками предложения и краткосрочной геополитической премией за риск, где последняя оказалась доминирующей из-за...
Актуализация взгляда на акции Северстали: пришло ли время покупать?
Здравствуйте! Хочу поделиться актуальным видением на бизнес Северстали и стоимость акций в условиях текущей неблагоприятной рыночной конъюнктуры.
Глобальные цены от США до России и Китая...
Пятеру заработал (пост 67, 12+) 1. Привет, пацаны! Заработал пятеру, мелочь, а приятно. Как и на чем сделал? Смотри сюда. Сначала купил 500 лотов Сбера, потом продал 500 лотов Сбера. Смотри скрин...
Анализ РСБУ компании "Арлифт Интернешнл" за 3кв2025г 📊 Кредитный рейтинг: Эксперт РА (25.12.25): присвоили кредитный рейтинг «ВВ+» (прогноз стабильный)
🎬 Эфир с эмитентом от 26 апреля 2025...
greedy_gnom, да, именно так.
Выкуп на вторичном рынке: Минфин может проводить операции по выкупу ОФЗ на открытом рынке (через биржу) В этом случае выкуп происходит по текущим рыночным ценам и тол...
Корректировка бюджетного правила Сур пр вверх, ОФЗ вниз Кабмин рассматривает ужесточение бюджетного правила
Правительство рассматривает вопрос об ужесточении бюджетного правила с точки зрения цен...
Есть функция. Она бегает по «trades» циклом и ищет последнее значение. На вход функция получает SEC_CODE, например RIH8, SiH8. Возвращает она цену последней ВАШЕЙ сделки.
function getLastPrice(sec)
for i = 0,getNumberOf(«trades») do
local pr = getItem(«trades», i)
if pr ~= nil and type(pr) == «table» then
if pr.sec_code == sec and i == getNumberOf(«trades»)-1 then
return pr.price
end
end
end
end
В вашей main функции создайте локальную переменную, которая в необходимый момент будет дергать эту функцию. Не забудьте передавать в параметрах код инструмента.
local lastPrice = getLastPrice(SEC_CODE)
Ну как-то так.
Здравствуйте, спасибо вам за ответ, я попробовал сделать как вы сказали, но что то пошло не так
подправьте пожалуйста где ошибка?
p_classcode=«SPBFUT» --Код класса
p_seccode=«RIH8» --Код инструмента
is_run = true
function getLastPrice(sec)
for i = 0,getNumberOf(«trades») do
local pr = getItem(«trades», i)
if pr ~= nil and type(pr) == «table» then
if pr.sec_code == sec and i == getNumberOf(«trades»)-1 then
return pr.price
message (pr.price)
end
end
end
end
function cb(index)
local t = ds:T(index)
local str = «свеча № »..tostring(index-1).." из "..tostring(ds:Size()).." open="..ds:O(index-1)
str = str.." close="..tostring(ds:C(index-1))
---high="..tostring(ds:H(index)).." low="..tostring(ds:L(index))
local lastPrice = getLastPrice(p_seccode)
message (lastPrice)
end — конец функции
function main()
ds=CreateDataSource(p_classcode, p_seccode, INTERVAL_M1)
ds:SetUpdateCallback(cb)
while is_run do
sleep(10)
end
end
function OnStop(stop_flag)
is_run=false
end