(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)
ФРС разочаровал рынок отложив повышение ставок. Что ждать по доллару?
Американский доллар пережил самое сильное падение за последние две недели. Триггером стало прошедшее заседание ФРС, в частности позиция нового главы Федеральной резервной системы Кевина Уорша. ЦБ...
Рекордные результаты и новые угрозы. Что происходит с Ozon
Ozon отчитался о пятой квартальной прибыли подряд. Рынок отреагировал на эту новость 5-процентным ростом котировок. Но одновременно над компанией нависает тень тяжелых событий....
Аналитики Т-Инвестиций обновили стратегию на 2026 год: как пережить период высокой неопределенности
Рынок снова оказался в условиях высокой неопределенности: геополитика, инфляционные риски и ожидания по ставке меняют правила игры для инвесторов. В обновленной стратегии аналитики...
ГМК Норникель: Прибыль иксанула, а котировки упали - обзор отчета по МСФО за 1-е полугодие 2026
ГМК Норникель отчитался сегодня по МСФО за 1- е полугодие
Чистая прибыль выросла в 2 раза по сравнению с прошлым годом
Отличный отчет, но помог рост цен на металлы в первом...
Иванов Владислав, я перепробовал всех кроме финама, в сбере самое норм, да года 2 назад тинек был топ, а сбер примитивен, но сейчас все поменялось. Правда сейчас в планах сделать свое приложение, т...
orbit, В интернете есть много сайтов с информацией на эту тему. Вот что нашлось в поиске Яндекса.
Эскалация российско-украинского конфликта, вероятнее всего, приведёт к росту стоимости энергон...
Alexey Rondine, молодец — вишенку тебе на торт для изменения вкуса)видения: а Татарстане действовало отдельное Положение об акционерных обществах —
Ельцин же подписался на особый путь суверине...
Есть функция. Она бегает по «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