重构项目文件结构
This commit is contained in:
parent
d2bbe3eb55
commit
1d893aa629
@ -1,7 +1,8 @@
|
||||
import requests
|
||||
|
||||
# 服务器地址
|
||||
URL = "http://trader.biggerfish.tech:9527/yu"
|
||||
# URL = "http://trader.biggerfish.tech:9527/yu"
|
||||
URL = "http://localhost:9527/yu"
|
||||
# 策略名称常量
|
||||
STRATEGY = "香港证券ETF网格"
|
||||
|
||||
|
@ -9,7 +9,7 @@ class Config:
|
||||
|
||||
# Trading settings
|
||||
TRADE_TIMEOUT = 5 # 交易超时时间(秒)
|
||||
SIMULATION_MODE = False
|
||||
SIMULATION_MODE = True
|
||||
|
||||
# Trading hours
|
||||
MARKET_OPEN_TIME = "09:10"
|
||||
|
@ -10,7 +10,7 @@ from config import Config # 使用相对导入
|
||||
from logger_config import get_logger
|
||||
from real.xt_trader import XtTrader
|
||||
from simulation.simulation_trader import SimulationTrader
|
||||
from base_trader import BaseTrader
|
||||
from core.base_trader import BaseTrader
|
||||
from real.real_trader_manager import RealTraderManager # 确保导入
|
||||
|
||||
# 获取日志记录器
|
||||
|
@ -2,7 +2,7 @@ import datetime as dt
|
||||
from chinese_calendar import is_workday
|
||||
from abc import ABC, abstractmethod
|
||||
from logger_config import get_logger
|
||||
from position_manager import PositionManager
|
||||
from core.position_manager import PositionManager
|
||||
from typing import Dict
|
||||
from config import Config
|
||||
import os
|
@ -1,4 +1,4 @@
|
||||
from trade_constants import ORDER_STATUS_PENDING, ORDER_TYPE_LIMIT
|
||||
from core.trade_constants import ORDER_STATUS_PENDING, ORDER_TYPE_LIMIT
|
||||
from datetime import datetime
|
||||
|
||||
class LocalOrder:
|
@ -4,7 +4,7 @@ import threading
|
||||
from datetime import datetime
|
||||
from logger_config import get_logger
|
||||
from config import Config
|
||||
from trade_constants import (
|
||||
from core.trade_constants import (
|
||||
ORDER_DIRECTION_BUY,
|
||||
ORDER_TYPE_LIMIT,
|
||||
ORDER_TYPE_MARKET,
|
||||
@ -12,8 +12,8 @@ from trade_constants import (
|
||||
ORDER_STATUS_CANCELLED,
|
||||
ORDER_STATUS_FAILED,
|
||||
)
|
||||
from local_position import LocalPosition
|
||||
from local_order import LocalOrder
|
||||
from core.local_position import LocalPosition
|
||||
from core.local_order import LocalOrder
|
||||
from utils.t0_stocks import is_t0
|
||||
from typing import Dict
|
||||
|
@ -12,8 +12,8 @@ import os
|
||||
|
||||
from config import Config
|
||||
from logger_config import get_logger
|
||||
from base_trader import BaseTrader
|
||||
from .app_state import login, logout, is_real_mode, _trader_instance, logger as app_logger # 使用 app_state中的logger
|
||||
from core.base_trader import BaseTrader
|
||||
from core.app_state import login, logout, is_real_mode, _trader_instance, logger as app_logger # 使用 app_state中的logger
|
||||
|
||||
# 如果需要独立的 logger,可以取消下面这行的注释
|
||||
# logger = get_logger("scheduler")
|
||||
|
@ -6,7 +6,7 @@ from xtquant import xtconstant
|
||||
from logger_config import get_logger
|
||||
from config import Config
|
||||
from functools import wraps
|
||||
from trade_constants import (
|
||||
from core.trade_constants import (
|
||||
ORDER_STATUS_COMPLETED,
|
||||
ORDER_STATUS_CANCELLED,
|
||||
ORDER_STATUS_PENDING,
|
||||
|
@ -3,14 +3,14 @@ import random
|
||||
import time
|
||||
from datetime import datetime
|
||||
from config import Config
|
||||
from base_trader import BaseTrader
|
||||
from core.base_trader import BaseTrader
|
||||
from xtquant.xttrader import XtQuantTrader
|
||||
from xtquant.xttype import StockAccount
|
||||
from xtquant import xtconstant
|
||||
from xtquant.xtdata import get_instrument_detail
|
||||
from logger_config import get_logger
|
||||
from utils.mail_util import MailUtil
|
||||
from trade_constants import (
|
||||
from core.trade_constants import (
|
||||
ORDER_STATUS_COMPLETED,
|
||||
ORDER_STATUS_CANCELLED,
|
||||
ORDER_STATUS_PENDING,
|
||||
@ -21,7 +21,7 @@ from trade_constants import (
|
||||
ORDER_DIRECTION_SELL,
|
||||
ORDER_STATUS_FAILED
|
||||
)
|
||||
from local_order import LocalOrder
|
||||
from core.local_order import LocalOrder
|
||||
|
||||
# 获取日志记录器
|
||||
logger = get_logger('real_trader')
|
||||
|
@ -4,8 +4,8 @@
|
||||
from flask import Blueprint, request, jsonify, abort
|
||||
|
||||
from core.app_state import get_trader, get_real_trader_manager, is_real_mode, logger
|
||||
from base_trader import BaseTrader
|
||||
from trade_constants import ORDER_TYPE_LIMIT, ORDER_DIRECTION_BUY, ORDER_DIRECTION_SELL
|
||||
from core.base_trader import BaseTrader
|
||||
from core.trade_constants import ORDER_TYPE_LIMIT, ORDER_DIRECTION_BUY, ORDER_DIRECTION_SELL
|
||||
|
||||
trading_bp = Blueprint('trading_routes', __name__, url_prefix='/yu')
|
||||
|
||||
|
@ -1,16 +1,16 @@
|
||||
from logger_config import get_logger
|
||||
from trade_constants import (
|
||||
from core.trade_constants import (
|
||||
TRADE_TYPE_SIMULATION,
|
||||
ORDER_DIRECTION_BUY,
|
||||
ORDER_DIRECTION_SELL,
|
||||
ORDER_STATUS_COMPLETED,
|
||||
ORDER_STATUS_CANCELLED,
|
||||
)
|
||||
from position_manager import PositionManager
|
||||
from base_trader import BaseTrader
|
||||
from core.position_manager import PositionManager
|
||||
from core.base_trader import BaseTrader
|
||||
import random
|
||||
from typing import Dict
|
||||
from local_position import LocalPosition
|
||||
from core.local_position import LocalPosition
|
||||
|
||||
|
||||
class SimulationTrader(BaseTrader):
|
||||
|
@ -6,11 +6,9 @@ Flask应用主入口文件。
|
||||
from flask import Flask, request, abort
|
||||
|
||||
from config import Config
|
||||
from logger_config import get_logger # 主应用的logger
|
||||
|
||||
# 核心服务和状态初始化
|
||||
from core.app_state import login as initialize_trader_login, logger as app_state_logger, is_real_mode
|
||||
from core.scheduler_tasks import setup_scheduler, logger as scheduler_logger
|
||||
from logger_config import get_logger
|
||||
from core.app_state import login as initialize_trader_login, is_real_mode
|
||||
from core.scheduler_tasks import setup_scheduler
|
||||
|
||||
# API 路由蓝图
|
||||
from routes.health_routes import health_bp
|
||||
@ -76,8 +74,7 @@ app.register_blueprint(strategy_bp)
|
||||
|
||||
logger.info("所有API路由蓝图已注册。")
|
||||
|
||||
# --- 主程序入口 ---
|
||||
if __name__ == "__main__":
|
||||
def run_server():
|
||||
# 在启动Web服务器之前初始化服务
|
||||
initialize_app_services()
|
||||
|
||||
@ -85,6 +82,10 @@ if __name__ == "__main__":
|
||||
app.run(debug=Config.DEBUG, host=Config.HOST, port=Config.PORT, use_reloader=False)
|
||||
# use_reloader=False 建议在生产或有自定义启动/关闭逻辑时使用,以避免重复初始化。
|
||||
# 对于开发模式,debug=True 通常会启用重载器。
|
||||
|
||||
# --- 主程序入口 ---
|
||||
if __name__ == "__main__":
|
||||
run_server()
|
||||
else:
|
||||
# 如果是通过 Gunicorn 等 WSGI 服务器运行,则也需要初始化服务
|
||||
# Gunicorn 通常会为每个 worker 进程加载一次应用模块
|
||||
|
Loading…
x
Reference in New Issue
Block a user