這是一個功能完整的WinForms金融分析應用程式,採用現代化的專案結構組織,提供完整的金融數據分析、技術指標計算、風險管理和策略回測功能。
WinFormsApp3/
├── Models/ # 數據模型
│ ├── 金融數據.cs # 金融數據結構
│ ├── 交易信號.cs # 交易信號枚舉
│ ├── 交易記錄.cs # 交易記錄類別
│ └── 回測結果.cs # 回測結果類別
├── Services/ # 業務邏輯服務
│ ├── 金融分析器.cs # 核心分析功能
│ ├── 隨機數據生成器.cs # 數據生成服務
│ └── 數據匯出器.cs # 數據匯出服務
├── Strategies/ # 交易策略
│ ├── 交易策略.cs # 抽象策略基類
│ └── 移動平均交叉策略.cs # 移動平均交叉策略
├── Forms/ # 用戶界面
│ ├── Form1.cs # 主要表單
│ ├── Form1.Designer.cs # 表單設計器
│ └── Form1.resx # 表單資源
├── Tests/ # 測試程序
│ └── 功能測試程式.cs # 完整功能測試
└── Utils/ # 工具類別 (預留)
- Models: 定義數據結構和業務實體
- Services: 實現核心業務邏輯
- Strategies: 實現各種交易策略
- Forms: 處理用戶界面邏輯
- Tests: 提供功能測試和驗證
WinFormsApp3.Models
- 數據模型WinFormsApp3.Services
- 業務服務WinFormsApp3.Strategies
- 交易策略WinFormsApp3.Tests
- 測試程序WinFormsApp3
- 主程序和表單
- 幾何布朗運動模型
- Merton跳躍擴散模型
- 白雜訊添加功能
- 完整的OHLCV數據生成
- 移動平均線 (MA)
- 指數移動平均 (EMA)
- 相對強弱指標 (RSI)
- MACD指標 (快線、慢線、信號線、直方圖)
- 布林通道 (上軌、中軌、下軌)
- 風險價值 (VaR) - 95%信心水準
- 條件風險價值 (CVaR)
- Beta係數 (相對於市場)
- 夏普比率
- 年化波動率
- 最大回撤期間
- 抽象策略基類設計
- 移動平均交叉策略實現
- 完整回測框架 (包含手續費計算)
- 詳細交易記錄追蹤
- CSV格式: 基本數據、技術指標、統計報告
- JSON格式: 網頁友好格式
- 回測報告: 完整的交易分析報告
- 統計報告: 自動化風險分析報告
-
技術指標組 (
groupBoxTechnical
)- RSI指標開關
- MACD指標開關
- 布林通道開關
- EMA指標開關和參數設定
- 計算技術指標按鈕
-
回測組 (
groupBoxBacktest
)- 短期移動平均天數設定 (5-200天)
- 長期移動平均天數設定 (5-200天)
- 初始資本設定 (1,000-1,000,000)
- 執行回測按鈕
-
匯出組 (
groupBoxExport
)- 匯出基本數據 (CSV格式)
- 匯出技術指標 (CSV格式)
- 匯出統計報告 (CSV格式)
- 匯出JSON格式數據
- 價格線: 藍色實線顯示收盤價走勢
- 移動平均: 紅色虛線顯示移動平均趨勢
- 布林通道: 紫色線條顯示上軌、下軌,橙色線顯示中軌
- 交易信號: 綠色圓點標記買入信號,紅色圓點標記賣出信號
- 動態範圍調整: 根據技術指標自動調整Y軸範圍
- 精細網格: 10x10網格提供更好的視覺參考
- 清晰標籤: 改進的價格軸標籤顯示
- 多彩圖例: 不同顏色區分各種指標
-
生成數據
- 選擇隨機過程模型
- 設定基本參數
- 點擊「生成數據」
-
計算技術指標
- 勾選需要的指標 (RSI/MACD/布林通道/EMA)
- 設定EMA參數
- 點擊「計算指標」
-
執行策略回測
- 設定短期/長期移動平均參數
- 設定初始資本
- 點擊「執行回測」
-
視覺化分析
- 觀察圖表上的多層次指標
- 分析交易信號點位
- 檢視統計資訊面板
-
匯出結果
- 選擇匯出格式 (CSV/JSON)
- 選擇匯出內容 (數據/指標/報告)
- 保存分析結果
// 圖表即時更新技術指標
if (布林通道數據.HasValue)
{
繪製布林通道(圖形, 圖表區域, 最低價格, 價格範圍);
}
// 交易信號視覺化標記
if (最新回測結果?.交易紀錄 != null)
{
繪製交易信號(圖形, 圖表區域, 最低價格, 價格範圍);
}
// 技術指標完整匯出
數據匯出器.匯出技術指標CSV(數據, MA值, RSI值, MACD數據, 布林通道數據);
// JSON格式匯出
數據匯出器.匯出JSON(數據, "分析結果.json");
- 市場數據模擬: 使用不同參數生成各種市場情境
- 技術指標驗證: 同時計算多個指標進行交叉驗證
- 策略回測: 快速測試移動平均交叉策略效果
- 視覺化分析: 直觀查看指標信號和交易點位
- 結果匯出: 將分析結果匯出供進一步研究
- 概念演示: 視覺化展示各種技術指標含義
- 策略教學: 展示交易策略的實際運作方式
- 風險教育: 通過回測了解策略風險和報酬
- 數據分析: 教授如何解讀統計指標
- 框架: .NET 9.0
- UI技術: Windows Forms
- 數學庫: MathNet.Numerics
- 程式語言: C# 12
- 編碼: UTF-8 (支援繁體中文)
- Windows 10/11
- .NET 9.0 Runtime
- Visual Studio 2022 (建議)
- 克隆或下載專案
- 開啟
WinFormsApp3.sln
- 還原 NuGet 套件
- 建置並執行專案
- 生成數據: 設定參數後點擊「生成數據」
- 技術分析: 選擇指標後點擊「計算技術指標」
- 策略回測: 設定策略參數後執行回測
- 結果匯出: 選擇格式匯出分析結果
執行完整功能測試:
// 在 Tests/功能測試程式.cs 中
功能測試程式.執行完整功能測試();
功能測試程式.展示交易策略效果();
功能測試程式.風險分析示例();
- 金融工程課程教學
- 量化分析概念演示
- 風險管理實務練習
- 新策略原型開發
- 歷史數據回測驗證
- 風險指標計算
- 投資組合分析
- 風險評估報告
- 策略效果評估
- 清晰的職責分離
- 易於維護和擴展
- 獨立的功能模組
- 策略系統支援新增自定義策略
- 服務層支援新增分析功能
- 匯出器支援新增輸出格式
- 完整的錯誤處理
- 詳細的中文註釋
- 一致的編碼風格
- 更多技術指標 (KDJ、威廉指標等)
- 機器學習策略支援
- 實時數據接入
- Web API接口
- 資料庫整合
- 動量策略
- 均值回歸策略
- 配對交易策略
- 多因子模型
如果您在使用過程中遇到問題或有改進建議,歡迎提出。
- Fork 此專案
- 創建功能分支 (
git checkout -b feature/新功能
) - 提交變更 (
git commit -am '添加新功能'
) - 推送到分支 (
git push origin feature/新功能
) - 創建 Pull Request
本專案使用 MIT 授權條款,詳情請參閱 LICENSE 文件。
- MathNet.Numerics - 提供強大的數學計算功能
- Microsoft - .NET 框架和 WinForms 技術
- 金融工程社群 - 隨機過程理論和實務經驗分享 本專案採用MIT授權條款,詳見 LICENSE.txt 檔案。