Administrator
2024-03-19 8e8a2a2767e2784a6548cd07a2bf7dd6558e3f43
utils/tool.py
@@ -156,12 +156,27 @@
    return int(ts[0]) * 3600 + int(ts[1]) * 60 + int(ts[2])
def get_time_as_millionsecond(time_str):
    s_str,ms_str = time_str.split(".")
    ts = s_str.split(":")
    return int(ts[0]) * 3600 + int(ts[1]) * 60 + int(ts[2])*1000 + int(ms_str)
# 将秒数格式化为时间
def time_seconds_format(seconds):
    h = seconds // 3600
    m = seconds % 3600 // 60
    s = seconds % 60
    return "{0:0>2}:{1:0>2}:{2:0>2}".format(h, m, s)
def time_millionseconds_format(millionseconds):
    ms = millionseconds % 1000
    seconds = millionseconds // 1000
    h = seconds // 3600
    m = seconds % 3600 // 60
    s = seconds % 60
    return "{0:0>2}:{1:0>2}:{2:0>2}.{3:0>3}".format(h, m, s, ms)
# 交易時間的差值
@@ -174,6 +189,17 @@
        time_2 = time_2 - 90 * 60
    elif time_2 < split_time < time_1:
        time_2 = time_2 + 90 * 60
    return time_1 - time_2
def trade_time_sub_with_ms(time_str_1, time_str_2):
    split_time = get_time_as_second("11:30:00")*1000
    time_1 = get_time_as_millionsecond(time_str_1)
    time_2 = get_time_as_millionsecond(time_str_2)
    if time_1 < split_time < time_2:
        time_2 = time_2 - 90 * 60*1000
    elif time_2 < split_time < time_1:
        time_2 = time_2 + 90 * 60*1000
    return time_1 - time_2
@@ -191,6 +217,19 @@
    if s >= 11 * 3600 + 30 * 60 > s_:
        s += 90 * 60
    return time_seconds_format(s)
def trade_time_add_millionsecond(time_str, millionsecond):
    s_str, ms_str = time_str.split(".")
    ts = s_str.split(":")
    s_ = int(ts[0]) * 3600 + int(ts[1]) * 60 + int(ts[2])
    ms_ = s_ * 1000
    ms_ += int(ms_str)
    ms = ms_ + millionsecond
    # 是否在11:30:00
    if ms >= 11 * 3600 * 1000 + 30 * 60 * 1000 > ms_:
        ms += 90 * 60 * 1000
    return time_millionseconds_format(ms)
def compute_buy1_real_time(time_):
@@ -282,3 +321,8 @@
    if count < 100:
        count = 100
    return count
if __name__ == "__main__":
    print(trade_time_add_millionsecond("10:36:00.123", 1000))
    print(trade_time_add_millionsecond("11:29:59.123", 1888))