2025-08-31 03:20:59 +00:00
|
|
|
|
from core.trade.orb_trade import ORBStrategy
|
2025-09-01 10:01:21 +00:00
|
|
|
|
from config import US_STOCK_MONITOR_CONFIG
|
|
|
|
|
|
import core.logger as logging
|
2025-08-31 03:20:59 +00:00
|
|
|
|
|
2025-09-01 10:01:21 +00:00
|
|
|
|
logger = logging.logger
|
2025-08-31 03:20:59 +00:00
|
|
|
|
|
2025-09-01 10:01:21 +00:00
|
|
|
|
def main():
|
|
|
|
|
|
symbols = US_STOCK_MONITOR_CONFIG.get("volume_monitor", {}).get("symbols", ["QQQ"])
|
|
|
|
|
|
for symbol in symbols:
|
|
|
|
|
|
logger.info(f"开始回测 {symbol}")
|
|
|
|
|
|
# 初始化ORB策略
|
|
|
|
|
|
orb_strategy = ORBStrategy(
|
|
|
|
|
|
initial_capital=25000,
|
|
|
|
|
|
max_leverage=4,
|
|
|
|
|
|
risk_per_trade=0.01,
|
|
|
|
|
|
commission_per_share=0.0005,
|
|
|
|
|
|
is_us_stock=True,
|
|
|
|
|
|
)
|
|
|
|
|
|
# 1. 获取QQQ的5分钟日内数据(2024-2025,注意:yfinance免费版可能限制历史日内数据,建议用专业数据源)
|
|
|
|
|
|
orb_strategy.fetch_intraday_data(
|
|
|
|
|
|
symbol=symbol, start_date="2024-11-30", end_date="2025-08-30", interval="5m"
|
|
|
|
|
|
)
|
2025-08-31 03:20:59 +00:00
|
|
|
|
|
2025-09-01 10:01:21 +00:00
|
|
|
|
# 2. 生成ORB策略信号
|
|
|
|
|
|
orb_strategy.generate_orb_signals()
|
2025-08-31 03:20:59 +00:00
|
|
|
|
|
2025-09-01 10:01:21 +00:00
|
|
|
|
# 3. 回测策略(盈利目标10R)
|
|
|
|
|
|
orb_strategy.backtest(profit_target_multiple=10)
|
2025-08-31 03:20:59 +00:00
|
|
|
|
|
2025-09-01 10:01:21 +00:00
|
|
|
|
# 4. 绘制净值曲线
|
|
|
|
|
|
orb_strategy.plot_equity_curve()
|
2025-08-31 03:20:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
main()
|