File size: 1,911 Bytes
b2555ee | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | # scratch/test_api.py
import sys
import os
# 将 backend 目录添加到 sys.path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'backend')))
from main_api import run_backtest_api, scan_market_stocks
if __name__ == "__main__":
print("=== 测试 /api/scan 接口 ===")
scan_res = scan_market_stocks("TSLA,NVDA")
print(f"扫描成功: {scan_res['success']}")
for res in scan_res['results']:
print(f" 代码: {res['ticker']} | 公司: {res['name']} | RVol: {res['rvol']}x | ATR%: {res['atr_pct']}% | 推荐: {res['recommended']}")
print("\n=== 测试 /api/backtest 接口 (默认参数) ===")
bt_res = run_backtest_api(ticker="TSLA", interval="5m")
print(f"回测成功: {bt_res['success']}")
if bt_res['success']:
summary = bt_res['summary']
print(f" 初始本金: ${summary['initial_cash']}")
print(f" 期末总值: ${summary['final_equity']}")
print(f" 盈亏比例: {summary['pnl_pct']}%")
print(f" 交易笔数: {summary['total_trades']}")
print(f" 识别到的形态数: {len(bt_res['patterns_log'])}")
print("\n=== 测试 /api/backtest 接口 (自定义参数 + ATR仓位大小) ===")
bt_custom_res = run_backtest_api(
ticker="TSLA",
interval="15m",
strategy_mode="patterns",
trailing_stop_mode="atr",
position_sizing_mode="atr",
risk_per_trade_pct=0.015
)
print(f"回测成功: {bt_custom_res['success']}")
if bt_custom_res['success']:
summary = bt_custom_res['summary']
print(f" 初始本金: ${summary['initial_cash']}")
print(f" 期末总值: ${summary['final_equity']}")
print(f" 盈亏比例: {summary['pnl_pct']}%")
print(f" 交易笔数: {summary['total_trades']}")
print(f" 识别到的形态数: {len(bt_custom_res['patterns_log'])}")
|