(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)
Дезинфляция в еврозоне и стагфляция Британии: кому сложнее из ЦБ
USD/JPY торгуется около 156.70 в среду, прибавляя 0.53% за день, и это движение выглядит не столько “про доллар”, сколько “против иены”. Ключевой триггер — сомнение рынка в том, что...
Дивидендная доходность «голубых фишек». Какой она будет
На российском рынке в разгаре сезон отчётности: компании подводят результаты 2025 года, а значит, можно оценить и потенциальные дивиденды. Традиционно «голубые фишки» ассоциируются у инвесторов...
Оптимальная структура капитала в условиях высокой ставки: когда долг всё ещё выгоден
Структура капитала эмитента напрямую влияет на риск инвестиций в выпускаемые им ценные бумаги. Для вложений в долговые инструменты главное — правильно оценивать способность компании обслуживать...
Актуализация взгляда на акции Северстали: пришло ли время покупать?
Здравствуйте! Хочу поделиться актуальным видением на бизнес Северстали и стоимость акций в условиях текущей неблагоприятной рыночной конъюнктуры.
Глобальные цены от США до России и Китая...
По мере наращивания темпов производства самолётов в РФ, будет падать производство других самолётов в мире и всему виной авиационный титан, который около 30% в мире производится в РФ и будет уходить дл...
Дмитрий Г., Ты для чего тут страшилки используешь, для того чтобы инвесторы стали свои облиги по дешёвке сливать, а ты задёшево закупился? Мы таких как ты с хитрожопными схемами давно знаем.
Итог сегодняшнего аукциона ОФЗ Еженедельно по средам
Минфин проводит аукционы ОФЗЧтобы выполнить план,
Минфину нужно размещать по 100 млрд руб. в неделю.
Силуанов в 19ч. заявил, что
Правит...
❗️❗️Картонный фасад МКБ: что скрывает отчетность МКБ и почему акции упадут еще ниже.
а наш взгляд перспективы инвестирования в акции МКБ выглядят крайне рискованными. На первый взгляд, цифры мог...
SP65,
== не является индивидуальной инвестиционной рекомендацией==
ты не влезай в трактовку, почему на тонком вечернем рынке поводырь куклит и реализует трамбовку
акции ,
а подумай почему...
Есть функция. Она бегает по «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)