(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)
Alex Hell, попробуйте сделать так в функции main в цикле.
while is_run do
local lastPrice = getLastPrice(p_seccode)
message («Цена:»..lastPrice)
sleep(10)
Если я правильно понимаю, cb получает на вход index, т.е. каждую свечу? По идее, каждую свечу вы должны получать значение цены последней вашей сделки. Но так как переменная локальная, функция main ничего про нее не знает и она видна только в функции cb.
Alex Hell, не знаю, со стаканом не работал. Но можно получить цену последней сделки
local lPrice = tonumber(getParamEx(«SPBFUT»,SEC_CODE,«last»).param_value)
👨🏻💻 Учимся зарабатывать в торговом терминале: новая серия вебинаров
Т-Инвестиции запускают серию бесплатных вебинаров о том, как пользоваться торговым терминалом — главным инструментом людей, зарабатывающих биржевой торговлей. Вести занятия будут три...
АПРИ продолжает строительство всесезонного мультикурорта «ФанПарк»
АПРИ продолжает строительство всесезонного мультикурорта «ФанПарк»
«ФанПарк» – это мультифункциональный всесезонный курорт на западном берегу Шершневского водохранилища . На...
Аналитики БКС ожидают, что давление на курс иностранных валют в II квартале сохранится. И это хорошая возможность увеличить долю валютных облигаций в портфеле, так как во втором полугодии вновь...
Ваш любимый Мозговой штурм спешит на помощь! Мнение по текущему рынку простыми словами
В нашем рейтинге акций знаменательное событие! Рекордное число акций с рейтингом 4 — 14 штук!!!
И, вероятно, будет еще больше!
Сегодня я как обычно расскажу вам, что мы обсуждали в офисе по...
Меня забавляют те «мамкины инвесторы», которые и 19 марта и вчера называли меня «хомячком». Процитирую: «Ой а хомячки льют… Малейшаий новостной шум, и сразу сливаются».
Я хотел спросить, как у вас ...
⚡Чёрные металлурги столкнулись с самым масштабным кризисом в современной России - Коммерсант Чёрные металлурги столкнулись с самым масштабным кризисом в современной России — Коммерсант
Металл не нах...
⚡Чёрные металлурги столкнулись с самым масштабным кризисом в современной России - Коммерсант Чёрные металлурги столкнулись с самым масштабным кризисом в современной России — Коммерсант
Металл не нах...
Средняя цена на платину в 2026 году может вырасти на 58–83% в годовом сравнении, а на палладий – на 31–60% — Kept Согласно обзору аудиторско-консалтинговой компании Kept, средняя цена на платину в 202...
📅 Торговый план: ЗОЛОТО (XAUUSD) - 8 апреля 2026
📊 УРОВНИ ДНЯ
🔺 Поддержка
4760-4780 → Ключевая зона
4730-4740 → Зона вчерашнего максимума и сильная поддержка
🔻 Сопротивление
4...
Сиделец, не согласен
, маркетмейкер один- это Минфин. Если он захочет проявить экономию бюджета, то может опустить доходность длинных облиг. весьма быстро. Просто их нужно не размещать некоторое...
🔴 Эфир начинается через 5 минут
Уже совсем скоро, в 11:00 начнём эфир, посвящённый финансовым результатам Группы МГКЛ по МСФО за 12 месяцев 2025 года.Разберём ключевые показатели, динамику бизнеса ...
Полный расклад по нефти WTI на ближайшее время и мои результаты В своё время, о Майтрейде ходили разговоры, что он настолько крут, что рынок подстраивается под его сделки) Но, разговоры разговорами, ...
Есть функция. Она бегает по «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
while is_run do
local lastPrice = getLastPrice(p_seccode)
message («Цена:»..lastPrice)
sleep(10)
Если я правильно понимаю, cb получает на вход index, т.е. каждую свечу? По идее, каждую свечу вы должны получать значение цены последней вашей сделки. Но так как переменная локальная, функция main ничего про нее не знает и она видна только в функции cb.
так же можно вызвать из другой функции?
local lPrice = tonumber(getParamEx(«SPBFUT»,SEC_CODE,«last»).param_value)