Блог им. 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минут)
Буду благодарен и не только я, если «добавите в рецепт свои пряности». Главное чтобы заработало.
Спасибо.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
523 | ★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:
Фото
Календарь первички ВДО и розничных облигаций (Вернём YTM 28,71% | ПРОГРЕСС YTM 26,83% | Л-Старт YTM 32,53% | БИЗНЕС АЛЬЯНС YTM 26,22%)
💼 На 9 июля запланировано размещение нового выпуска облигаций коллекторского агентства «Вернём» ( B|ru| , 150 — 200 млн руб.,...
Фото
Транснефть: возвращение блудного сына или опять по 1200
Транснефть вновь упала на интересные уровни ~1200 руб По этим ценам в октябре 2025 года я ставил 4-ку и удалось хорошо заработать...
Фото
Акционеры ПАО «АПРИ» приняли решения по вопросам годового Общего собрания
Акционеры ПАО «АПРИ» приняли решения по вопросам годового Общего собрания Сегодня состоялось годовое заседание Общего собрания...
Фото
Мой инвест портфель. Структура портфеля, последние действия по портфелю. Состав портфеля валютных облигаций
Сегодня делал действия по портфелю. Кроме того, решил пособирать инфу по счетам и посмотреть как там дела.  

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

....все тэги



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