重构项目文件结构

This commit is contained in:
zhiyong 2025-05-22 22:30:08 +08:00
parent d2bbe3eb55
commit 1d893aa629
15 changed files with 29 additions and 27 deletions

View File

@ -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网格"

View File

@ -9,7 +9,7 @@ class Config:
# Trading settings
TRADE_TIMEOUT = 5 # 交易超时时间(秒)
SIMULATION_MODE = False
SIMULATION_MODE = True
# Trading hours
MARKET_OPEN_TIME = "09:10"

View File

@ -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 # 确保导入
# 获取日志记录器

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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")

View File

@ -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,

View File

@ -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')

View File

@ -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')

View File

@ -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):

View File

@ -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 进程加载一次应用模块