SkillAgentSearch skills...

Lo2cin4bt

The best backtest engine for non-coders and quant beginners (probably).

Install / Use

/learn @lo2cin4/Lo2cin4bt
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<!-- markdownlint-disable MD041 --> <p align="center"> <img src="assets/lo2cin4btneon.jpg" alt="Lo2cin4BT" /> </p> <!-- markdownlint-enable MD041 -->

🚀 Lo2cin4bt

The best backtest engine for non-coders and quant beginners (probably).

作者的話

大家好,我是 Jesse。

這個專案是一位「非程式背景」的交易員,透過 vibe coding 全程打造的交易回測框架。

我的目標是讓每一位量化新手,只需要以「說人話」的方式,便能輕鬆進行交易回測,並將結果可視化。

讓我們一同淘汰那些仍然憑感覺交易的散戶吧!

在使用之前,可在 Github 專案的右上角給一個星😄

歡迎到群組提出任何意見。


❓ 為什麼選擇 lo2cin4bt?

  1. 全程無需寫程式,只要在終端機選擇操作,加上大量提示,超適合新手
  2. 三大核心:統計分析、回測、可視化平台一次滿足
  3. 大量中文註解,輕鬆理解程式運作,方便二次開發
  4. 高內聚低耦合設計,易於修改擴展
  5. 可離線運行,數據安全
  6. 支援任意因子、任意資產,只要有數據就能回測

🔄 專案回測流程

lo2cin4bt 提供完整的量化回測流程,從數據載入到結果可視化,每個步驟都有明確的用途:

1. 📊 載入數據 (Data Loading)

  • 用途:建立回測的基礎數據
  • 功能
    • 支援多種數據來源:本地 Excel/CSV、Yahoo Finance、Binance API、Coinbase API
    • 自動數據清洗與標準化
    • 預測因子載入與時間對齊
    • 數據驗證與缺失值處理

2. 🔬 統計分析 (Statistical Analysis)

  • 用途:深入分析數據特徵與預測因子的有效性
  • 功能
    • 數據分布檢驗與異常值檢測
    • 預測因子與價格的相關性分析
    • 時間序列穩定性測試
    • 季節性分析與自相關檢驗
    • 生成詳細的統計報告

3. 🧑‍💻 回測交易 (Backtesting)

  • 用途:模擬真實交易環境,測試策略有效性
  • 功能
    • 多策略多參數組合向量化回測
    • 支援 MA、BOLL、Percentile 等技術指標
    • 自訂交易成本與滑點設定
    • 可導出的詳細交易記錄

4. 📈 交易分析 (Trade Analysis)

  • 用途:深入分析交易表現與策略優化
  • 功能
    • 計算關鍵績效指標:Sharpe、Sortino、Max Drawdown
    • 交易統計分析:勝率、盈虧比、連續虧損
    • 與 Buy & Hold 策略比較
    • 風險調整後報酬率分析
    • 生成績效報告與圖表

5. 👁️ 可視化平台 (Visualization Platform)

  • 用途:直觀展示回測結果與策略表現
  • 功能
    • 互動式權益曲線圖
    • 多策略比較與篩選
    • 參數敏感性分析
    • 績效指標視覺化
    • 即時數據探索與分析

💾 下載與安裝

  1. 點選 GitHub 頁面右上角的「Code」→「Download ZIP」下載專案

  2. 解壓縮 ZIP 檔案

  3. 安裝 Python(建議 3.9 以上)

  4. 開啟終端機(Terminal)或命令提示字元(CMD),切換到專案資料夾

  5. 安裝依賴套件:

    pip install -r requirements.txt
    
  6. 運行主程式:

    python main.py
    
  7. 依照畫面指示選擇數據來源與回測參數,即可開始!


⚠️ 疑難排解

📖 完整疑難排解指南:請參考 Troubleshooting.md 查看所有常見問題與解決方案。


💾 下載與安裝 (完全編程新手懶人包)

  1. 點選 GitHub 頁面右上角的「Code」→「Download ZIP」下載專案
  2. 解壓縮 ZIP 檔案 lo2cin4bt,並將檔案移至您想放置的磁碟/資料夾
  3. 複製目前 lo2cin4bt 的檔案路徑
  4. 安裝 Cursor
  5. 詢問它:「如何建立虛擬環境,並運行在 '檔案路徑' 的 lo2cin4bt?」
  6. AI 會指導您下載各種 Library 與安裝環境

💻 推薦編程新手開發環境: Cursor

安裝 Cursor(AI 編輯器)

  1. 前往 Cursor 官方網站 下載並安裝 Cursor
  2. 支援 AI 助理協作,可透過自然語言解決安裝難題

使用 Cursor 開啟本專案

  1. 開啟 Cursor
  2. 點選「File」→「Open Folder...」,選擇剛才解壓縮的專案資料夾
  3. 建議在左側 EXPLORER 檢視所有檔案結構,右側可直接點擊 .py 檔案進行編輯
  4. 內建終端機(Terminal):
    • 點選「Terminal」→「New Terminal」,即可在專案根目錄下執行 pip、python 等指令

執行與除錯

  • 在 Cursor 內直接按 F5 或點選「Run」→「Start Debugging」即可進行除錯
  • 也可在內建終端機輸入 python main.py 直接執行

📄 準備文件格式

1. 價格文件(非必須)

  • 支援 Excel(.xlsx)、CSV

  • 必要欄位:Time, Open, High, Low, Close

  • 時間欄位名稱:支援 TimeDateTimestamp(系統會自動標準化為 Time

  • 日期格式:建議使用 DD/MM/YYYY (如:31/12/2023) 或 YYYY-MM-DD(如:2023-01-01)

  • 目前僅支援單一預測因子進行回測與差分,未來將開放多預測因子功能,敬請期待!

  • 範例:

    | Time | Open | High | Low | Close | |------|------|------|-----|-------| | 2020-01-01 | 100 | 110 | 90 | 105 |

2. 預測因子文件(非必須)

  • 支援 Excel(.xlsx)、CSV、JSON

  • 必要欄位:Time 或 Date, [自訂因子欄位]

  • 時間欄位名稱:支援 TimeDateTimestamp 等(系統會自動標準化為 Time

  • 日期格式:支援多種格式,可在 autorunner 配置中指定:

    • YYYY-MM-DD(如:2023-01-01)→ 配置 "time_format": "%Y-%m-%d"
    • DD/MM/YYYY(如:01/01/2023)→ 配置 "time_format": "%d/%m/%Y"
    • MM/DD/YYYY(如:01/01/2023)→ 配置 "time_format": "%m/%d/%Y"
  • 需放在 records\dataloader\import,系統會自動檢測

  • 範例:

    | Date | factor1 | factor2 | |------|---------|---------| | 2020-01-01 | 0.5 | 1.2 |


🧑‍💻 互動流程範例(Demo)

以下為一個典型的命令行互動流程範例:

<p align="center"> <img src="images/template_1.jpg" alt="Template_1" width="900"/> </p>

🗂️ 專案結構

lo2cin4bt/
├── main.py
├── autorunner/             # 自動化回測模組
├── backtester/             # 回測引擎模組
├── dataloader/             # 數據載入模組
├── metricstracker/         # 績效分析模組
├── plotter/                # 可視化模組
├── statanalyser/           # 統計分析模組
├── records/                # 數據與結果存放
│   └── autorunner/         # 自動化回測配置檔案
├── assets/                 # 靜態資源
├── requirements.txt
└── README.md

每個資料夾內都有對應的 README,遇到問題請先參考「疑難排解」區塊!


🚀 Autorunner 自動化回測模組 NEW

概述

Autorunner 是 lo2cin4bt 的自動化回測模組,讓用戶可以透過配置文件驅動整個回測流程,無需手動輸入參數。支援多種數據來源、多策略配置、批次執行,以及 Walk-Forward Analysis (WFA) 滾動前向分析。

核心特性

  • 📝 配置文件驅動:透過 JSON 配置文件定義所有回測參數
  • 🔄 全自動執行:數據載入 → 回測執行 → 績效分析一鍵完成
  • 📊 多數據源支援:Yahoo Finance、Binance、Coinbase、本地文件
  • ⚡ 批次處理:支援多個配置文件同時執行
  • 🎯 零交互設計:適合一次回測大量數據
  • 🔄 WFA 支援:支援前向分析,評估策略穩健性

快速開始

1. 準備配置文件

回測配置

  • records/autorunner/backtester_autorunner/config_template.json 複製為您的配置文件,並根據需要修改
  • 支援多種配置範例:config_template_single.jsonconfig_template_defaultall.json

WFA 配置

  • records/autorunner/wfanalyser_autorunner/config_template.json 複製為您的 WFA 配置文件
  • 支援滾動模式(Standard)和錨定起點模式(Anchored),詳見 config_anchored_template.json

2. 執行自動化回測

python main.py
# 在主選單選擇 "4. 🚀 Autorunner 自動化回測" 進行回測
# 或選擇 "5. 🔄 滾動前向分析 (WFA)" 進行 WFA 分析
# 選擇您的配置文件
# 系統將自動執行完整回測流程

支援的數據來源

| 數據源 | 配置方式 | 說明 | |--------|----------|------| | Yahoo Finance | "source": "yfinance" | 支援全球股票、ETF、指數 | | Binance | "source": "binance" | 支援加密貨幣交易對 | | Coinbase | "source": "coinbase" | 支援加密貨幣交易對 | | 本地文件 | "source": "file" | 支援 CSV/Excel 格式 |

批次執行

支援多個配置文件同時執行,適合策略優化和參數測試:

  1. 回測批次執行:在 records/autorunner/backtester_autorunner/ 目錄放置多個回測配置文件
  2. WFA 批次執行:在 records/autorunner/wfanalyser_autorunner/ 目錄放置多個 WFA 配置文件
  3. 執行 autorunner 時選擇多個配置
  4. 系統將依序執行所有選定配置的回測與分析,並放置於對應資料夾

📂 數據存放與輸出說明

  • 預測因子檔案存放
    • 需存放於 records/dataloader/import 資料夾,格式為 csv/xlsx/json 檔案
  • Autorunner 配置文件
    • 回測配置:存放於 records/autorunner/backtester_autorunner/ 資料夾
    • WFA 配置:存放於 records/autorunner/wfanalyser_autorunner/ 資料夾
    • 支援多個配置文件批次執行
  • 回測結果(交易紀錄)
    • 自動產生並存放於 records/backtester/ 資料夾,格式為 .parquet 檔案
    • 每次回測會產生一個唯一檔名(如 20250723_97dpnzl6.parquet
    • 可透過 Autorunner 自動執行或手動回測產生
  • WFA 分析結果
    • 自動產生並存放於 records/wfanalyser/ 資料夾,格式為 .parquet.csv 檔案
    • 包含多個窗口的 IS/OOS 績效對比數據
    • 僅可透過 Autorunner WFA 模式產生
  • 統計分析結果
    • 自動產生並存放於 records/backtester/statanalyser 資料夾,包含 processed_data.csvstats_report.txt
  • 交易分析
    • 系統會自動讀取 records/backtester/ 下的 parquet 檔案,計算後會產生新的 .parquet 檔案,並存放於 records/metricstracker/
  • 可視化平台
    • 系統會自動讀取 records/metricstracker/ 下的 parquet 檔案,並以互動式圖表展示
    • 如有 WFA 數據,會自動讀取 records/wfanalyser/ 下的檔案,並顯示「前向分析 (WFA)」頁籤
  • 日誌檔案
    • 所有錯誤與執行日誌會存於 logs/backtest_errors.log
  • 自訂導出
    • 可於互動流程中選擇導出個別回測結果為 CSV
    • WFA 結果可透過可視化平台下載完整分析圖表

🎯 開發目標與進度

目前已完成

<details> <summary>📅 2025-12-21 </summary>
  • 【重磅】新增 Walk-Forward Analysis (WFA) 前向分析功能
    • 為什麼需要 WFA? 參數高原分析雖然能幫助我們識別參數的穩健性,但它仍然是在同一份歷史數據上進行優化,無法完全消除過擬合問題。過擬合就像是在考試前背熟所有題目答案,雖然在練習時表現完美,但遇到新題目(未來的市場數據)時可能表現不佳。WFA 通過將數據分為訓練集(IS)和測試集(OOS),在訓練集上優化參數,然後在獨立的測試集上驗證,就像真正的考試一樣,能夠更真實地評估策略在未來市場中的表現。
    • WFA 可以做什麼?
      • 將歷史數據劃分為多個時間窗口,每個窗口包含訓練集和測試集
      • 在每個窗口的訓練集上優化策略參數(尋找最佳 Sharpe、Calmar 等指標)
      • 在對應的測試集上驗證優化後的參數表現
      • 通過多個窗口的 IS/OOS 對比,評估策略的穩健性和泛化能力
      • 識別策略是否在訓練集上表現良好,但在測試集上表現不佳(過擬合警告)
    • 兩種 WFA 模式
      • 滾動模式(Standard):固定訓練集和測試集大小,每次向前滾動固定步長,適合評估策略在不同時間段的穩定性
      • 錨定起點模式(Anchored):固定起點,訓練集逐步增長,測試集大小固定,適合評估隨著歷史數據增加,策略表現如何變化
    • 配置方式:僅提供配置文件模式,在 records/autorunner/wfanalyser_autorunner/ 中設定 WFA 配置文件即可執行
    • 詳細配置範例請參考 records/autorunner/wfanalyser_autorunner/config_template.jsonconfig_anchored_template.json
  • 【重磅】新增 WFA 可視化平台
    • 互動式 WFA 結果展示,包含多窗口 IS/OOS 績效對比
    • 九宮格熱力圖顯示不同參數組合在訓練集和測試集上的表現
    • 支援多種績效指標可視化:Sharpe Ratio、Sortino Ratio、Calmar Ratio、Max Drawdown
    • 可下載所有窗口的完整分析圖表
    • 在主選單選擇「6.可視化平台」後,如有 WFA 數據會自動顯示「前向分析 (WFA)」頁籤
  • 優化了主選單結構,新增「5. 🔄 滾動前向分析 (WFA)」選項
  • 統一了代碼格式和風格,提升可讀性和維護性
  • 簡化了部分代碼邏輯,減少冗餘
</details> <details> <summary>📅 2025-12-10 </summary>
  • 可視化功能增加,加設了「下載當前檔案所有圖表」和「下載所有檔案所有圖表」功能,能夠一鍵導出所有參數圖表。
</details> <details> <summary>📅 2025-12-08 </summary>
  • 可視化功能增加,現在可以載入多份回測結果,並在頁面選擇展示不同檔案的資金曲線與參數高原表現!
</details> <details> <summary>📅 2025-11-23 </summary>
  • 可視化平台美化,現在可更直觀地看到策略的重要指標
  • 新增了疑難排解頁面
</details> <details> <summary>📅 2025-10-08 </summary>
  • 修正了各種 BUG
  • 新增了更多 autorunner config 範例
  • 系統目前可以閱讀 timestamp 格式的數據了
</details> <details> <summary>📅 2025-10-03 </summary>
  • 修改了 metricstracker 的儲存方式以降低電腦配置需求
  • 【重磅】省略輸入選項的全自動版本 Autorunner 已上線!
    • 在 records/autorunner 中設定 config.json
    • 運行 main.py,在主選單選擇 autorunner
    • 系統會自動回測並產生可視化所需的檔案
</details> <details> <summary>📅 2025-09-14 </summary>
  • 擴展了回測時的 default 功能為 defaultlong, defaultshort 和 defaultall。
    • 以均線交叉策略為例,defaultlong 能檢查「升穿均線做多、跌穿均線平倉」的部分
    • defaultshort 能檢查「跌穿均線做空、升穿均線平倉」的部分
    • defaultall 則會分別檢查以上兩者
</details> <details> <summary>📅 2025-08-27 </summary>
  • 修正了回測後程序無法讀取 Parquet file 的 Bug
  • 【重構】DataLoader 模組大幅重構,引入 AbstractDataLoader 抽象基底類
    • 所有數據載入器(Binance、Coinbase、Yahoo Finance、File)現在繼承自統一基底類
    • 減少約 200+ 行重複程式碼
    • 統一的錯誤處理、成功訊息、警告顯示
    • 標準化的使用者輸入處理(日期、頻率、預設值)
    • 通用的數據處理方法(欄位標準化、型態轉換、缺失值處理)
    • 提升程式碼可維護性和擴展性
</details> <details> <summary>📅 2025-08-22 </summary>
  • 【重磅】增加了 (高點、低點) HL、(數值) VALUE 指標
  • HL、VALUE 指標已加入 default 策略
  • 【重磅】回測參數現在可以輸入單一數值,不需必須輸入區間
  • 修正了持倉時間計算錯誤問題
  • 修正了指標 MA9-MA12 輸入邏輯錯誤問題
  • 修正了指標 NDAYS 計算錯誤問題
  • 修改了策略參數設定時的文案,以更精簡直觀
</details> <details> <summary>📅 2025-08-19 </summary>
  • 新增 Coinbase API 數據載入器 (感謝協作)
  • 支援加密貨幣市場數據獲取(BTC、ETH 等交易對)
  • 支援多種時間週期(1m、5m、15m、1h、6h、1d)
</details> <details> <summary>📅 2025-08-18 </summary>
  • 【重磅】增加了 (百分位) Percentile 指標
  • Percentile 指標已加入 default 策略
</details> <details> <summary>📅 2025-08-16 </summary>
  • 【重磅】可視化平台增加了參數高原,檢測過擬合無難度
  • BUG 修正:Calamar Ratio 的 Bug 已修正
  • 反選功能指示更清晰
</details> <details> <summary>📅 2025-08-12</summary>
  • 可視化平台增加了反選功能
</details> <details> <summary>📅 2025-08-04 </summary>
  • 【重磅】向量化形式重構回測部分
  • 動態檢測電腦配置以確保程式不會崩潰
</details> <details> <summary>📅 2025-07-23 (公佈日) </summary>
  • 三大量化核心:統計分析、回測、可視化平台
  • 支援多種數據來源(本地、Yahoo、Binance、Coinbase)
  • 多策略多參數組合批量回測
  • 詳細績效指標與互動式 Dash 可視化
  • 完善的
View on GitHub
GitHub Stars236
CategoryDevelopment
Updated5h ago
Forks36

Languages

Python

Security Score

95/100

Audited on Apr 5, 2026

No findings