Блог им. DEVOTEE

Автоматизация QUIK - Сигнал начала нового таймфрейма

Тут уже проскочило пару постов на тему автоматизации. За что авторам спасибо.
У меня же вопрос и задача такая (к знатокам LUA).

Есть скрипт взят отсюда (https://quik2dde.ru/viewtopic.php?id=79)
-- подключить библиотеку w32
local w32 = require("w32")

-- функция проигрывания файла
-- вызов: PaySoundFile("имя файла")
function PaySoundFile(file_name)
  w32.mciSendString("CLOSE QUIK_MP3") 
  w32.mciSendString("OPEN \"" .. file_name .. "\" TYPE MpegVideo ALIAS QUIK_MP3")
  w32.mciSendString("PLAY QUIK_MP3")
end


Необходимо добавить в скрипт, чтобы звуковой файл проигрывался с заданным интервалом всю торговую сессию? (каждые 15,60,240минут)
Буду благодарен и не только я, если «добавите в рецепт свои пряности». Главное чтобы заработало.
Спасибо.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
534 | ★3
17 комментариев
s = getInfoParam («SERVERTIME») 
if tonumber(string.sub(s,4,5)) == 0 then
    PaySoundFile(file_name)
end

Будет запускаться каждый час. По аналогии напишите остальные.
avatar
Karim, Karim, Спасибо за ответ. Можно хотя бы минимальную инструкцию? для аналогии:).
avatar
Karim, S — присваиваем время сервера. ДА?
Paysound — играем файл. В пути используем двойной слэш (C:\\QUIK OSL\\Звуки\\Bell.mp3 — так?)
А вот tonumber :). Помощь плиз

avatar
Виталий, Ну почитайте хотя бы мануал по QLua, или погуглите. Там все есть. tonumber() — преобразовать строку в число
avatar
Нового бара, а не таймфрейма)
avatar
Чёрный кот, какая разница? Главное быть понятым, о чём речь.
Бар -это бар.
Таймфрейм-это временной интревал.
avatar
Ответьте на тупой вопрос: а как эта функция определит, что час уже прошел и надо вызываться?
Сергей Гаврилов, У начала каждого часа минуты равны 0.
avatar
Karim, вопрос не в этом… Функцию нужно вызвать… Что-то я таймера или какого другого периодического события в коде не наблюдаю..
Сергей Гаврилов, Ну я уж не стал весь код приводить. Вопрос был, что добавить в скрипт, а не как его написать.

function main()
 IsRun = true
 while IsRun do
  s = getInfoParam («SERVERTIME») 
  if tonumber(string.sub(s,4,5)) == 0 then
     PaySoundFile(file_name)
  end
  sleep(1000)
 end
end

avatar
Karim, Домучал таки и заработало, только при sleep 1000 он выдаёт сигнал всю первую минуту. Поставил 60000. Может есть другой способ сделать срабатывание один раз? — это первый вопрос.
А второй- как сделать сигнал на каждые 15 минут, я точно не знаю :(.
Я не програмист вообще! Для меня эти цифры как иероглифы, в которых я пытаюсь разобраться...
Спасибо зараннее, если поможешь.
avatar
function main()
 IsRun = true
 begin = true
 while IsRun do
  s = getInfoParam («SERVERTIME») 
  if tonumber(string.sub(s,4,5)) == 0 and begin then
     PaySoundFile(file_name)
     begin = false
  end
  if tonumber(string.sub(s,4,5)) == 1 then     
     begin = true
  end
  sleep(1000)
 end
end

Как то так. Проверять нет времени. 
Если не программист, то есть два варианта. Либо стать им и написать самому, либо нанять.
avatar
Karim, Спасибо за код, я его и так, я его и сяк, но не работает совсем через 15 минут :(.
avatar
Попробуй так:

  if tonumber(string.sub(s,4,5))%15 == 0 and begin then
     PaySoundFile(file_name)
     begin = false
  end
avatar

Читайте на SMART-LAB:
Фото
Финансовые результаты Аэрофлота по РСБУ за 6 месяцев 2026 года
Аэрофлот опубликовал финансовые результаты по РСБУ за 2 квартал и 6 месяцев 2026 года. ✈️ Выручка во 2 квартале увеличилась на 3,3% год к году и...
Фото
Эмитент допустил дефолт: что делать инвесторам в таком случае?
Дефолт по облигациям не всегда означает полную потерю вложений. Даже если эмитент перестал платить купоны или не погасил долг, инвестор...
Фото
Финансовые итоги 1 полугодия 2026 года
Выручка от продажи металлов за первые шесть месяцев текущего года увеличилась вслед за ростом цен на цветные и драгоценные металлы....
Фото
ГМК Норникель: Прибыль иксанула, а котировки упали - обзор отчета по МСФО за 1-е полугодие 2026
ГМК Норникель отчитался сегодня по МСФО за 1- е полугодие Чистая прибыль выросла в 2 раза по сравнению с прошлым годом...

теги блога Виталий

....все тэги



UPDONW
Новый дизайн