Врач-бондиатОр
Врач-бондиатОр личный блог
07 июля 2020, 20:29

Вопрос 2 по Lua

Всем привет!

Продолжаю изучать волшебный мир Луа в волшебном мире Квика и добрался до размещения скриптом заявок.
На текущий момент есть такой скрипт (в общем виде).

local SecCode = «LKU0»
local Quantity=1

function main()

while stopped == false do


local Quotes = getQuoteLevel2(«SPBFUT», SecCode)
local Offer_Price = tonumber(Quotes.offer[1].price)
local Offer_Vol = tonumber(Quotes.offer[1].quantity)

--отправка формы заявки
local LimitOrderBuy = { ххххх}

--условие входа в лонг

if Offer_Vol>10 then
message(Order)
local Order = sendTransaction(LimitOrderBuy)
end

sleep (200)
end

Смысл его такой: если количество лукойла в первой строке стакана больше 10, то покупается 1 бумага и работа скрипта завершается.
Так как скрипт срабатывает при определенном условии, то для перезапуска используется while stopped == false do и sleep (200).
Прикол в том, что при наступлении условия, скрипт начинает бомбить заявки по 1 шт  пока не кончаются деньги (виртуальные).

Вопрос: какой размыкатель цикла можно тут использовать, чтобы после покупки 1 бумаги работа скрипта завершилась?

На ресурсах есть getItem, битовые флаги и пр., но изложено это как-то непонятно.
Помогите плиз..)
ЗЫ: обещаю поставить лайк хорошим ответам )


25 Комментариев
  • Свой Мужик
    07 июля 2020, 20:43
    exit есть в луа? )
  • Свой Мужик
    07 июля 2020, 20:44
    ну или обычно конструкция работает так
    while (stopped == false) and (buyed==false)

    не знаю по правилам луа нужны там скобки или нет?
    а при покупке ставишь buyed=true

    if Offer_Vol>10 then
    buyed=true
    message(Order)
    local Order = sendTransaction(LimitOrderBuy)
    end

    p.s. на луа ничего ни разу не писал )))
  • kachanov
    07 июля 2020, 20:51
    то покупается 1 бумага и работа скрипта завершается.

    по приведенному тексту не видно, чтобы работа завершалась.
    Возможно, в теле условия имеет смысл написать типа
    stopped = true
  • Ask
    07 июля 2020, 21:07
    Вначале проги поставь is_run=true, а после выполнения покупки вставь is_run=false

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн