Administrator
4 天以前 48fb7a00951f91bdc707e5dd2d196e5bccb752c3
trade/trade_juejin.py
@@ -5,11 +5,12 @@
import logging
import time
import gm.api as gmapi
# import gm.api as gmapi
# gmapi.set_token(token)
import constant
from code_attribute import gpcode_manager
from db.redis_manager import RedisManager, RedisUtils
from db.redis_manager_delegate import RedisManager, RedisUtils
from log_module.log import logger_juejin_trade
from utils import network_util, tool
@@ -17,7 +18,7 @@
account_id = "77916efb-b856-46ee-9680-71be0fe18a42"
token = "38fb624832c1949708c7600abaf1e863d27663b3"
gmapi.set_token(token)
# gmapi.set_account_id(account_id)
@@ -35,12 +36,12 @@
    @classmethod
    def add_order_id(cls, code, account_id, order_id):
        RedisUtils.sadd(cls.__get_redis(),f"juejin_order_id-{code}", json.dumps((account_id, order_id)))
        cls.__get_redis().expire(f"juejin_order_id-{code}", tool.get_expire())
        RedisUtils.expire(cls.__get_redis(), f"juejin_order_id-{code}", tool.get_expire())
    # 删除订单ID
    @classmethod
    def remove_order_id(cls, code, account_id, order_id):
        cls.__get_redis().srem(f"juejin_order_id-{code}", json.dumps((account_id, order_id)))
        RedisUtils.srem(cls.__get_redis(), f"juejin_order_id-{code}", json.dumps((account_id, order_id)))
    # 查询所有的订单号
    @classmethod
@@ -65,12 +66,12 @@
def order_volume(code, price, count):
    if not constant.TRADE_ENABLE:
        return
    if code.find("00") != 0 and code.find("60") != 0:
    if not tool.is_can_buy_code(code):
        raise Exception("只支持00开头与60开头的代码下单")
    code_str = code
    if code[0:2] == '00':
    if tool.is_sz_code(code):
        code_str = f"SZSE.{code}"
    elif code[0:2] == '60':
    elif tool.is_sh_code(code):
        code_str = f"SHSE.{code}"
    start_time = time.time()
    results = gmapi.order_volume(code_str, count, gmapi.OrderSide_Buy, gmapi.OrderType_Limit, gmapi.PositionEffect_Open,
@@ -86,7 +87,7 @@
            logger_juejin_trade.info(f"{code}:下单失败:{result['ord_rej_reason_detail']}")
            raise Exception(result["ord_rej_reason_detail"])
        else:
            TradeOrderIdManager.add_order_id(code, result["account_id"], result["cl_ord_id"])
            TradeOrderIdManager().add_order_id(code, result["account_id"], result["cl_ord_id"])
            logger_juejin_trade.info(f"{code}:下单成功 ord_id:{result['cl_ord_id']}")
            return result["symbol"].split(".")[1], result["account_id"], result["cl_ord_id"]
    else:
@@ -95,7 +96,7 @@
# 撤单
def cancel_order(code):
    orders_info = TradeOrderIdManager.list_order_ids(code)
    orders_info = TradeOrderIdManager().list_order_ids(code)
    orders = []
    if orders_info:
        for order in orders_info:
@@ -108,7 +109,7 @@
            gmapi.order_cancel(orders)
        logger_juejin_trade.info(f"{code}:撤单成功,撤单数量:{len(orders)}")
        for order in orders:
            TradeOrderIdManager.remove_order_id(code, order["account_id"], order["cl_ord_id"])
            TradeOrderIdManager().remove_order_id(code, order["account_id"], order["cl_ord_id"])
# 撤单