Skip to content

Repository files navigation

Cost-Aware Engulfing Analyzer

一个面向 DA/量化分析场景的端到端项目:
基于 MGC 1 分钟数据识别 engulfing_bear(吞没阴线)做空信号,进行参数扫描、成本后回测,并输出可复现分析报告。

项目目标

  • 验证吞没阴线做空信号是否在统计上有效;
  • 评估不同参数组合对结果的影响(敏感性分析);
  • 在交易成本 (cost_bps) 条件下评估净收益;
  • 估计盈亏平衡成本阈值(break-even cost)。

核心能力

  • 策略信号引擎(入场/出场、止盈、ATR过滤、单仓位顺序交易)
  • 交互式前端(参数面板 + K线标记 + 统计卡片)
  • 网格搜索脚本(31K+ 组合批量扫描)
  • 成本后指标(netAvgPnL / netWinRate 等)
  • Notebook 报告流程(Break-even 分析与结论导出)

技术栈

  • Backend: Python, Flask, Flask-CORS
  • Frontend: HTML/CSS/JavaScript (custom web components)
  • Analysis: pandas, numpy, matplotlib, Jupyter Notebook
  • Data format: JSON + CSV

目录结构

python-version/
├─ app.py
├─ requirements.txt
├─ datasets/
│  ├─ mgcj6_m1.json
│  └─ longshort.json
├─ frontend/
│  ├─ futures-mgc-longshort.html
│  └─ components/
├─ scripts/
│  └─ grid_search.py
├─ notebooks/
│  └─ da_train_valid_workflow.ipynb
├─ outputs/
│  ├─ grid_results_*.csv
│  ├─ grid_top_*.csv
│  ├─ break_even_summary.csv
│  └─ conclusion_break_even.txt
└─ src/futures_viewer/
   ├─ server.py
   ├─ signals_engine.py
   ├─ market.py
   ├─ storage.py
   └─ ...

快速开始

cd python-version
python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\\Scripts\\activate
pip install -r requirements.txt
python app.py

默认端口 5000
http://localhost:5000/futures-mgc-longshort.html

API(核心)

1) 行情

GET /api/stock

示例:

/api/stock?code=MGCJ6&type=m1&time=2026-03-09%2018:30

2) 信号与统计

GET /api/signals

常用参数(snake_case):

  • horizon
  • body_ratio
  • lookback
  • volume_window
  • boundary_buffer
  • take_profit
  • atr_enabled
  • atr_period
  • atr_multiplier
  • cost_bps

示例:

/api/signals?code=MGCJ6&type=m1&time=2026-03-09%2018:30&horizon=10&body_ratio=1.1&lookback=10&volume_window=8&boundary_buffer=0&take_profit=3&atr_enabled=0&atr_period=10&atr_multiplier=1.0&cost_bps=5

网格扫描(Grid Search)

脚本:scripts/grid_search.py

示例命令:

python3 scripts/grid_search.py \
  --time "2026-03-09 18:30" \
  --horizon "10,12,15" \
  --body-ratio "1.1,1.2,1.3,1.4" \
  --lookback "10,20,30" \
  --volume-window "8,12,20" \
  --boundary-buffer "0,3,5" \
  --take-profit "0,2,3,4" \
  --atr-enabled "0,1" \
  --atr-period "10,14" \
  --atr-multiplier "1.0,1.5" \
  --cost-bps "2,5,8" \
  --min-count 50 \
  --min-winrate 0.55 \
  --top 20

输出:

  • outputs/grid_results_YYYYMMDD-HHMMSS.csv
  • outputs/grid_top_YYYYMMDD-HHMMSS.csv

Notebook 报告

文件:notebooks/da_train_valid_workflow.ipynb

已包含:

  • 背景与方法说明
  • 每一步「如何实现 + 为什么这样做」
  • break-even cost 估计
  • 结论自动生成并导出:
    • outputs/break_even_summary.csv
    • outputs/break_even_top20.csv
    • outputs/conclusion_break_even.txt

当前分析结论(简要)

在当前样本和参数扫描范围下,加入成本后:

  • 稳定样本(count>=50netWinRate>=0.55)中,
  • 未发现净收益为正的稳健参数组合(Qualified=0)。

这意味着:该信号在当前设置下不具备稳定可执行性,后续需扩大样本窗口或调整信号逻辑。

About

Cost-aware bearish engulfing signal backtest and analytics project for MGC futures

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages