Блог им. E_psh

Алготрейдинг. Приостановка скрипта на определённый временной интервал

function main
	-- пример работы функции. Приостановка на клиринг
	local ServerTime = getInfoParam("SERVERTIME")
	local tTime = {"14:00:00","14:05:00"} -- время начала/окончания неторгового периода
	local result = diffTime(tTime[1], tTime[2])

	if ServerTime>=tTime[1] and ServerTime<=tTime[2] then
		message("Приостановка работы скрипта на ".. tostring(result).." сек.")
		sleep(result*1000) -- время приостановки в секундах. Время в Quik в миллисек., поэтому * 1000
	end
end

function diffTime(time1, time2)
-- возвращает разницу в секундах между time2-time1; либо 0, если time1 > time2
-- time1 = "14:00:00"
-- time2 = "14:05:00"
-- result = diffTime(time1, time2) -- = 300 секунд

local dt1 = {}
local dt2 = {}
local dTime1 = 0
local dTime2 = 0
local result = 0

	dt1.hour,dt1.min,dt1.sec = string.match(time1,"(%d*):(%d*):(%d*)")
	for key,value in pairs(dt1) do
		dt1[key] = tonumber(value)
	end

	dt2.hour,dt2.min,dt2.sec = string.match(time2,"(%d*):(%d*):(%d*)")
	for key,value in pairs(dt2) do
		dt2[key] = tonumber(value)
	end

	--часы*3600 + минуты*60 + секунды.
	dTime1 = dt1.hour*3600 + dt1.min*60 + dt1.sec
	dTime2 = dt2.hour*3600 + dt2.min*60 + dt2.sec
	result = dTime2 - dTime1

	if result <= 0 then
		return 0
	else
		return result
	end
end
635 | ★3

Читайте на SMART-LAB:
Фото
Итоги первичных размещений ВДО и некоторых розничных выпусков на 26 декабря 2025 г.
Следите за нашими новостями в удобном формате:  Telegram ,  Youtube ,  Смартлаб ,  Вконтакте ,  Сайт
Фото
🎄Новогодняя распродажа в Schoollive уже стартовала! 🎄
С сегодняшнего дня и до конца года забирайте любые наши курсы со скидкой 30%. Подробности вас ждут на странице «Обучение MOEX», заходите и...
Фото
ПАО «АПРИ» успешно разместило выпуск биржевых облигаций серии БО-002P-12
ПАО «АПРИ» успешно разместило выпуск биржевых облигаций серии БО-002P-12 💼 Книга заявок закрыта 23 декабря 2025 года в объёме...

теги блога Евгений

....все тэги



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