Нужные функции

Здесь буду выкладывать функции, которые могут пригодиться:

math_round() -- Округляет число до указанной точности
math_average() -- Возвращает среднее значение из переданных чисел
GetClassBySec() -- Возвращает код класса по коду бумаги
WaitUpdateDataAfterReconnect() -- Ждет подключения к серверу, после чего ждет еще UpdateDataSecQty секунд подгрузки пропущенных данных с сервера
GetMilliseconds() -- Возвращает количество миллисекунд
GetServerDateTime() -- Возвращает текущую дату/время сервера в виде таблицы datetime
StrToTime() -- Приводит время из строкового формата ЧЧ:ММ:СС к формату datetime
CheckDemo() -- Узнать является ли терминал демо от компании Arqa, или демо брокера Открытие
GetTotalnet() -- Получает текущую чистую позицию по инструменту
GetPosPrice() -- Получает цену текущей позиции по инструменту (АКЦИЯ, ФЬЮЧЕРС, ОПЦИОН)
GetFreeMoney() -- Возвращает доступные средства
GetCorrectPrice() -- Приводит переданную цену к требуемому для транзакции по инструменту виду
GetPriceForMarketOrder() -- Возвращает корректную цену для рыночной заявки по текущему инструменту
SetOrder() -- Выставляет обычную лимитную заявку
SetMarketOrder() -- Выставляет рыночную (по сути) заявку
GetOrderAverTradesPrice() -- Возвращает среднюю цену сделок по заявке
CheckOrder() -- Проверяет наличие в системе заявки с определенным ID транзакции
GetOrderNum() -- Возвращает номер заявки по ее ID транзакции
WaitOrderComplete () -- Ожидает исполнения заявки по ID транзакции
Set_SL() -- Выставляет 'Стоп лимит' заявку
SetTP() -- Выставляет 'Тейк профит' заявку
SetTP_SL() -- Выставляет 'Тейк профит и Стоп лимит' заявку
CheckStopOrder() -- Проверяет наличие в системе стоп-заявки с определенным ID транзакции
GetStopOrderNum() -- Возвращает номер стоп-заявки по ее ID транзакции
CheckStopOrderActive() -- Проверяет по номеру активна ли стоп-заявка
CheckStopOrderCompleted() -- Проверяет по номеру исполнена ли стоп-заявка
KillOrder() -- Снимает заявку
Kill_SO() -- Снимает стоп-заявку
StackFIFO() -- Создает объект стека FIFO(Первым вошел, первым вышел)
StaticVar.dll -- Обмен данными между Lua-скриптами в QUIK
SharedMemory - аналог StaticVar.dll написанный на Lua
СОХРАНЕНИЕ ПАРАМЕТРОВ СКРИПТА QLUA(LUA) МЕЖДУ ЗАПУСКАМИ

Добавить комментарий

Нужные функции: 174 комментария

  1. В функции GetFreeMoney во второй строче необъявленная переменная CLASS_CODE.
    В результате функция всегда возвращает ноль.

    -- Возвращает доступные средства

    1
    2
    3
    
    GetFreeMoney = function()
      if CLASS_CODE == 'SPBFUT' or CLASS_CODE == 'SPBOPT' then
    ...
  2. Для правильного округления цены до шага цены, для некоторых инструментов требуется делитель integer
    на примере Si, шаг цены у него 1, а getParamEx("SPBFUT", "SiM" "sec_price_step").param_value вернет 1.0
    в итоге:
    p = math.floor( (86200 + 300) / 1.0) * 1.0 --86500.0
    можно получать корректный шаг цены:
    function current_price_step(s)
    s = tonumber(s)
    local a, a1 = math.modf(s)
    if a1 ~= 0 then return s end
    return a
    end
    price_step = current_price_step(getParamEx("SPBFUT", "SiM" "sec_price_step").param_value) --> 1
    p = math.floor( (86200 + 300) / price_step) * price_step --> 86500