Запрограммируй подробный lua-скрипт торгового робота

Запрограммируй подробный lua-скрипт торгового робота под Quik
Дополнительные параметры: codeFlowType: codeWrite codeFlowLang: Lua
Создано: 15.02.2025 19:57

Запрограммируй подробный lua-скрипт торгового робота под Quik

Создание торгового робота для Quik на языке Lua — это задача, которая требует знания API QUIK и понимания принципов работы с финансовыми инструментами. Вот пример простого торгового робота, который может быть использован в качестве основы. Этот скрипт будет отслеживать цену определенной бумаги и будет выполнять покупку, если цена падает ниже определенного уровня.

-- Настройки торговли
local CLASS_CODE = "TQBR"  -- Код класса, например, акции 
local SEC_CODE = "SBER"     -- Код бумаги, например, Сбербанк
local QUANTITY = 1          -- Количество, которое вы хотите купить
local BUY_THRESHOLD = 2500   -- Уровень цены для покупки

-- Функция, выполняющая покупку
function buy_stock()
    local order = {
        CLASSCODE = CLASS_CODE,
        SECCODE = SEC_CODE,
        ACTION = "NewOrder",
        TRADEACCOUNT = "YOUR_TRADE_ACCOUNT",  -- Укажите ваш торговый счет
        ORDERTYPE = "Buy",
        PRICE = BUY_THRESHOLD,
        QUANTITY = QUANTITY,
        CLIENTCODE = "YOUR_CLIENT_CODE"  -- Укажите ваш клиентский код
    }
    -- Отправка заявки на покупку
    local result = send_order(order)
    if result then
        print("Заказ на покупку успешно отправлен.")
    else
        print("Ошибка при отправке заказа.")
    end
end

-- Основной цикл, который будет проверять цену
while true do
    local last_price = get_last_price(CLASS_CODE, SEC_CODE) -- Получаем последнюю цену
    print("Последняя цена: " .. last_price)
    
    if last_price < BUY_THRESHOLD then
        buy_stock() -- Выполняем покупку, если цена ниже порога
        break -- Выходим из цикла после успешной покупки
    end
    
    -- Ждем 10 секунд перед следующей проверкой
    sleep(10000)
end

Описание скрипта

  1. Настройки торговли: Определены переменные с кодами класса и бумаги, количеством акций для покупки и уровнем цены, при которой будет выполнена покупка.

  2. Функция buy_stock: Создает новый заказ на покупку и отправляет его через send_order. Не забудьте заполнить YOUR_TRADE_ACCOUNT и YOUR_CLIENT_CODE вашими данными.

  3. Цикл проверок: Каждые 10 секунд скрипт проверяет последнюю цену бумаги. Если она ниже установленного порога, выполняется функция покупки.

Замечания

  • Не забудьте протестировать скрипт на демо-счете перед использованием на реальных счетах.
  • Убедитесь, что у вас есть необходимые права для работы с API QUIK.
  • Скрипт не включает обработку ошибок при запросе цен и другие важные проверки. Рекомендуется добавить их для повышения надежности.