Постов с тегом "QUIK LUA": 234

QUIK LUA


Алготрейдинг. Скрипт Lua для выгрузки истории котировок из Quik'а

Сайт finam.ru и mfd.ru перестали быть полезными для выгрузки истории котировок.
Это скрипт
-- График должен быть открыт в Quik'е
Class = "SPBFUT" -- "CETS_MTL" "CETS"
SecId="BRK4" -- "NGJ4" "GLDRUB_TOM" "USD000UTSTOM" "SiZ3"
Intrvl = INTERVAL_H1 -- D1 -- M5
Header = "<TICKER>;<PER>;<DATE>;<TIME>;"..
  "<OPEN>;<HIGH>;<LOW>;<CLOSE>;<VOL>"
Period = "60" -- Дневки - 0, W1, MN1, H4, H2 - недопустимо

function Log (i)
  local t = DS:T(i)
  local ymd = string.format ("%04d%02d%02d", t.year, t.month, t.day)
  local hms = string.format ("%02d%02d%02d", t.hour, t.min, t.sec);
  if not (IniDt <= ymd and ymd <= FinDt) or
     not (IniTm <= hms and hms <= FinTm) then return end
  local str = string.format ("%s;%s;%s;%s;%.4f;%.4f;%.4f;%.4f;%.0f\n"
    ,SecId, Period, ymd, hms
    ,DS:O(i), DS:H(i), DS:L(i), DS:C(i), DS:V(i))
  F:write (str)
end -- Log()

function OnInit (scriptPath)
  qu = require ("QuikUtil(qu)") -- lu,qc,tu
  ScriptDir, ScriptName = lu.


( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Вопрос по квику

Подскажите, кто пользуется скриптами в lua
При чистке dat и log а также при перезагрузке компьютера в таблице «Доступные скрипты» всё пропадает.
При сохранение руками в info wnd также данные этой таблицы не сохраняются.

Есть ли какие-то варианты сохранить данные скриптов в этой таблице?
  • обсудить на форуме:
  • Quik Lua

Утилита для QUIK Напоминалка

    • 21 сентября 2024, 00:56
    • |
    • Ziveleos
  • Еще

Скрипт для Quik, служит для показа напоминаний:

 • на текущую дату,
 • ежедневных,
 • еженедельных,
 • ежемесячных,
 • ежемесячных в определённый день недели,
 • на конкретную дату, они же ежегодные.

  Напоминания хранятся в обычном текстовом файле, поэтому его можно редактировать в любом текстовом редакторе, например, в «Блокноте».
  После внесения изменений перезапускать скрипт не нужно, главное — не забыть сохранить файл, ибо скрипт — не телепат.
  Если перед временем сообщения поместить какой-нибудь символ, такая строка станет невидимой для скрипта, так можно хранить напоминания о событиях, которые происходят регулярно, но не вписываются ни в одну группу.
  Имена файлов скрипта и напоминаний должны быть одинаковые, отличаться только расширением, и находиться в одной папке.
  Строку "* Сегодня, дд Mmm ГГГГ:" и разделительную линию после этой секции изменять нельзя. По ним скрипт определяет напоминания на текущую дату.

( Читать дальше )
  • обсудить на форуме:
  • QUIK

Программисты Lua!

Во- первых с праздником!
Во-вторых, очень нужна помощь.

Отправка из квика в телеграм канал оповещения.
На Lua.
На php знаю как а на луа опыта нет
  • обсудить на форуме:
  • Quik Lua

Инвестору: Структурируйте свой портфель с помощью нового Lua-скрипта для QUIK

Инвестору: Структурируйте свой портфель с помощью нового Lua-скрипта для QUIK

Как опытный инвестор, вы знаете, что эффективное управление портфелем — ключ к успеху на финансовых рынках. Представляю вашему вниманию новый Lua-скрипт для пользователей торговой платформы QUIK, который поможет вам структурировать свой инвестиционный портфель и отслеживать все необходимые данные в удобном интерфейсе.



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Создание Торговых Стратегий с Помощью ИИ: Легче, Чем Печь Блины

Алгоритм субботняшний

0) Посетить мой сайт https://osaengine.ru/ ))

1) Зайти на chatgpt.com/

2) Написать вопрос

Создание Торговых Стратегий с Помощью ИИ: Легче, Чем Печь Блины

3) Получить ответ

-- Настройки
SEC_CODE = "SBER" -- Код инструмента
CLASS_CODE = "TQBR" -- Код класса инструмента
SHORT_MA_PERIOD = 10 -- Период короткой скользящей средней
LONG_MA_PERIOD = 50 -- Период длинной скользящей средней
QTY = 1 -- Количество лотов

-- Переменные
short_ma = {}
long_ma = {}
prices = {}
position = 0 -- Текущая позиция: 0 - нет позиции, 1 - лонг, -1 - шорт

-- Функция для расчета скользящей средней
function calculate_ma(prices, period)
    local sum = 0
    for i = #prices-period+1, #prices do
        sum = sum + prices[i]
    end
    return sum / period
end

-- Функция для обработки новых тиков
function OnAllTrade(alltrade)
    if alltrade.sec_code == SEC_CODE and alltrade.class_code == CLASS_CODE then
        table.insert(prices, alltrade.price)
        if #prices >= LONG_MA_PERIOD then
            table.


( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Автоматизированная тепловая карта рынка: скрипт Lua для QUIK

Данный скрипт, разработанный на языке программирования Lua для терминала QUIK, представляет собой тепловую карту рынка российских акций. Основные функциональные возможности программы:
 
1. Сортировка данных:

— По временному интервалу

— По алфавиту
— По процентному изменению от предыдущего закрытия свечи на выбранном интервале
Автоматизированная тепловая карта рынка: скрипт Lua для QUIK


    — По капитализации компании



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

QUIK lua помощь нужна

можно ли в lua прописать сортировку в таблице?
скажем мне нужны ТОЛЬКО заявки по покупкам, и если несколько покупок по одной бумаге, то отсортировать и их?
  • обсудить на форуме:
  • Quik Lua

Скрипты Lua в Quik'е могут строить свою доску опционов - как от Мосбиржи

В скриптах напрямую доступны все данные Quik'а, кроме греков с доски опционов. Но есть возможность рассчитывать их по формуле Блэка-Шоулза, исходя из доступных значений базы, страйка, дюрации и волатильности.
Чтобы удостовериться в совпадении греков с доски и расчётных, пришлось в скрипте отваять на Lua C API сервер DDE для приёма экспорта от доски опционов. И вот картинка
Скрипты Lua в Quik'е могут строить свою доску опционов - как от Мосбиржи
Разница в самом главном Греке — Дельте — менее 1%.
Через Lua в Quik'е доступны все возможности Windows.
local Titles, Entries, Desk = {}, {}, {}
local Wn1_Hndl
local Wn1_Field1, Wn1_Field2, Wn1_Field3, Wn1_Field4, Wn1_Field5
   = "Код CALL", "Страйк", "Дельта CALL", "Дельта расч", "Теор. расч"
   
function OnInit (scriptPath)
  qu = require ("QuikUtil(qu)") -- qc, lu, tu
  blk = require ("BlackScholes(blk)")
  glb_ScriptDir, glb_ScriptName = lu.SplitPath (scriptPath)
  message (glb_ScriptName .." started")
  server = require ("OptionDesk")
end -- OnInit()

function OnStop (signal)
  if Wn1_Hndl then DestroyTable (Wn1_Hndl) end
  StopFlag = true
  return 1000 -- 1 sec
end

local function ShowWin (cols)
  for k = 1, #Desk do
    local calCode = Desk[k][Entries[Wn1_Field1]]
    if calCode:sub (3,3) == "0" then
      calCode = calCode:sub (1,2) .


( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Qlua: статус файла.

Иногда бывает необходимо учесть в программе, что файл с которым собираетесь работать отсутствует, занят другой программой или пуст.

Для проверки наличия файла я использую функцию, которую сам когда-то нашел в сети, она возвращает размер файла в байтах, если файл существует и nil если не найдет его.

Qlua: статус файла.

Проверить занят ли файл, а также проверить что он не пустой можно следующей функцией:


( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

....все тэги
UPDONW
Новый дизайн