Vespa314/chan.py
开放式的缠论python实现框架,支持形态学/动力学买卖点分析计算,多级别K线联立,区间套策略,可视化绘图,多种数据接入,策略开发,交易系统对接;
chan.py – 纏論ベースの市場分析および取引のためのPythonフレームワーク
概要 – chan.py は、纏論 (Chan‑Theory) 技術分析手法を実装したオープンソースのPythonライブラリです。フルスタックのパイプラインを提供します:
- 低レベル計算 – 纏論要素の計算:分型、筆 (strokes)、線段 (segments)、中枢 (central zones)、および売買ポイント(古典的な形態学的ポイントとカスタム戦略ベースのポイントの両方)。
- 特徴量エンジニアリング – 各売買ポイントにつき500以上の特徴量を生成し、機械学習モデルに即座に利用可能。
- モデル統合 – XGBoost、LightGBM、およびシンプルなMLPのラッパーに加え、AutoMLハイパーパラメータ探索ユーティリティを提供。
- バックテストと評価 – パラメータスイープスクリプトを備えた設定可能なバックテストエンジン。
- ライブ取引 – Futu証券API(シミュレーションおよびリアルタイム)コネクタ、リアルタイム価格フィード(Sina、pytdx、akshareなど)、およびデータベースバックエンド(MySQL、SQLite)。
- 可視化 – Matplotlibベースの静的プロットおよびステップバイステップ再生用の動画ドライバ。
主要コンポーネント(フォルダ別)
| フォルダ | 目的 |
|---|---|
Bi, Seg, ZS |
設定可能なアルゴリズムを備えたコア纏論要素(筆、線段、中枢)。 |
BuySellPoint, CustomBuySellPoint |
古典的な形態学的売買ポイント (bsp) およびユーザー定義の戦略ポイント (cbsp)。 |
ModelStrategy |
モデルトレーニング、特徴量調整、AutoML、およびバックテストユーティリティ。 |
ChanModel |
抽象モデルクラス、特徴量レジストリ、およびデモ用XGBoostモデル。 |
DataAPI |
統合データアクセス層 – akshare、baostock、Futu、オフラインCSV、およびリアルタイムスナップショットAPI。 |
Trade |
取引エンジン、注文実行、ポジションサイジング、およびデータベース永続化。 |
Plot |
プロットドライバ(静止画用 CPlotDriver、アニメーション再生用 CAnimateDriver)およびCOSアップロードヘルパー。 |
Debug |
戦略サンプルスクリプト、パフォーマンスプロファイリングツール、およびノートブック。 |
App |
ライブラリ上に構築されたGUIスキャナーの例。 |
インストール (Python 3.11+)
# clone the repo
git clone https://github.com/Vespa314/chan.py.git
cd chan.py
# install required packages (the repo ships a requirements.txt)
pip install -r requirements.txt
このライブラリは Python 3.11 を必要とします(作者によると3.8と比較して約16%の速度向上が報告されています)。
クイックスタート(静的分析とプロット)
from Chan import CChan
from ChanConfig import CChanConfig
from Plot.PlotDriver import CPlotDriver
# basic configuration – all options are passed as a dict
cfg = CChanConfig({
"zs_combine": True,
"bi_strict": True,
"seg_algo": "chan",
"trigger_step": False,
})
# instantiate the core engine – here we request daily K‑lines for HK.00700
chan = CChan(
code="HK.00700",
begin_time="2012-01-01",
end_time=None,
data_src=DATA_SRC.FUTU,
lv_list=[KL_TYPE.K_DAY],
config=cfg,
autype=AUTYPE.QFQ,
)
# plot everything (k‑line, bi, seg, zs, buy‑sell points)
plot_cfg = {
"plot_kline": True,
"plot_bi": True,
"plot_seg": True,
"plot_zs": True,
"plot_bsp": True,
"plot_cbsp": True,
}
plot_para = {"figure": {"width": 24}}
CPlotDriver(chan, plot_config=plot_cfg, plot_para=plot_para)
スクリプトを実行すると、指定期間のすべての纏論要素が計算され、完全な可視化結果を含むMatplotlibウィンドウが開きます。
機械学習モデルを使用したシグナルのスコアリング
from ChanModel.XGBModel import CXGBModel
# attach a trained XGBoost model (the demo model ships with the repo)
model = CXGBModel(model_path="ModelStrategy/models/Xgboost/model.bin")
cfg.model = model # enable model scoring
cfg.cal_feature = True # force feature calculation
cfg.score_thred = 0.6 # only act on signals with score ≥ 0.6
モデルは各候補売買ポイントに対して生成された500以上の特徴量を受け取り、シグナルのフィルタリングやランキングに使用できる確率スコアを返します。
ライブ取引ワークフロー
- データフィード –
Config/demo_config.yamlでFutuAPI(または他のスナップショットAPI)を設定します。 - 戦略 – 組み込みの
CCustomStrategy/CSegBspStrategyを使用するか、Strategyを継承した独自のクラスを実装します。 - 取引エンジン –
TradeEngineは生成されたシグナルを消費し、ポジションサイジング (OpenQuotaGen) を適用し、FutuTradeEngineを介して注文を送信します。 - 永続化 – 取引ログは設定で定義されたMySQLまたはSQLiteに保存されます。
- 監視 –
RealTimeTrackerは、オープンポジションのストップロス/テイクプロフィットイベントを監視します。
このライブラリの用途
- クオンツ研究者:特徴量生成とバックテストのために、忠実な纏論の実装を必要とする方。
- アルゴリズムトレーダー:データ取り込み → シグナル生成 → MLスコアリング → ライブ注文実行というエンドツーエンドのスタックを求める方。
- 教育者/学生:金融に特化したAIパイプラインの具体的で実用的な例に興味がある方。
ライセンスとコミュニティ
このプロジェクトはMITライセンスの下でリリースされています。質問用のTelegramグループ (https://t.me/zen_python) が提供されており、リポジトリにはオンボーディング用の quick_guide.md が含まれています。
上記の詳細はすべてリポジトリのREADMEから直接引用したものであり、追加機能は推測されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト