# 报单状态
|
import random
|
import threading
|
|
from utils import tool
|
|
TORA_TSTP_OST_Cached = '0' # 预埋
|
TORA_TSTP_OST_Unknown = '1' # 未知
|
TORA_TSTP_OST_Accepted = '2' # 交易所已接收
|
TORA_TSTP_OST_PartTraded = '3' # 部分成交
|
TORA_TSTP_OST_AllTraded = '4' # 全部成交
|
TORA_TSTP_OST_PartTradeCanceled = '5' # 部成部撤
|
TORA_TSTP_OST_AllCanceled = '6' # 全部撤单
|
TORA_TSTP_OST_Rejected = '7' # 交易所已拒绝
|
TORA_TSTP_OST_SendTradeEngine = '#' # 发往交易核心
|
|
# 报单价格条件
|
TORA_TSTP_OPT_AnyPrice = 1 # 任意价
|
TORA_TSTP_OPT_LimitPrice = 2 # 限价
|
TORA_TSTP_OPT_BestPrice = 3 # 最优价
|
TORA_TSTP_OPT_FixPrice = 4 # 盘后定价
|
TORA_TSTP_OPT_FiveLevelPrice = 5 # 五档价
|
TORA_TSTP_OPT_HomeBestPrice = 6 # 本方最优
|
|
# 买卖方向
|
TORA_TSTP_D_Buy = 0 # 买入
|
TORA_TSTP_D_Sell = 1 # 卖出
|
|
# 交易所代码
|
TORA_TSTP_EXD_COMM = 0 # 通用(内部使用)
|
TORA_TSTP_EXD_SSE = 1 # 上海交易所
|
TORA_TSTP_EXD_SZSE = 2 # 深圳交易所
|
TORA_TSTP_EXD_HK = 3 # 香港交易所
|
TORA_TSTP_EXD_BSE = 4 # 北京证券交易所
|
|
|
# 是否可以撤单
|
def is_can_cancel(state):
|
if state == TORA_TSTP_OST_Cached or state == TORA_TSTP_OST_Unknown or state == TORA_TSTP_OST_Accepted or state == TORA_TSTP_OST_PartTraded:
|
return True
|
return False
|
|
|
# 是否已经撤单
|
def is_canceled(state):
|
if state == TORA_TSTP_OST_AllCanceled or state == TORA_TSTP_OST_PartTradeCanceled:
|
return True
|
return False
|
|
|
# 是否已经成交
|
def is_deal(state):
|
if state == TORA_TSTP_OST_PartTraded or state == TORA_TSTP_OST_AllTraded or state == TORA_TSTP_OST_PartTradeCanceled:
|
return True
|
return False
|
|
|
__order_ref_lock = threading.RLock()
|
__public_order_ref = int(tool.get_now_time_str().replace(":", ""))
|
|
|
# 创建订单引用
|
def create_order_ref():
|
__order_ref_lock.acquire()
|
try:
|
global __public_order_ref
|
__public_order_ref += random.randint(5, 20)
|
return __public_order_ref
|
finally:
|
__order_ref_lock.release()
|
|
# 华鑫时间字符串格式转换函数
|
def convert_time(time_str, with_ms=False):
|
time_str = str(time_str)
|
if time_str.startswith("9"):
|
time_str = f"0{time_str}"
|
ms = "{:0<3}".format(time_str[6:])
|
time_ = f"{time_str[0:2]}:{time_str[2:4]}:{time_str[4:6]}"
|
if with_ms:
|
return f"{time_}.{ms}"
|
return time_
|