Skip to content

ewdlop/WinFormsDataApp

Repository files navigation

金融分析器 - 專業版本 v2.0 (重新組織版)

這是一個功能完整的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 - 主程序和表單

💰 核心功能

1. 數據生成 (Services/隨機數據生成器.cs)

  • 幾何布朗運動模型
  • Merton跳躍擴散模型
  • 白雜訊添加功能
  • 完整的OHLCV數據生成

2. 技術指標分析 (Services/金融分析器.cs)

  • 移動平均線 (MA)
  • 指數移動平均 (EMA)
  • 相對強弱指標 (RSI)
  • MACD指標 (快線、慢線、信號線、直方圖)
  • 布林通道 (上軌、中軌、下軌)

3. 風險管理指標

  • 風險價值 (VaR) - 95%信心水準
  • 條件風險價值 (CVaR)
  • Beta係數 (相對於市場)
  • 夏普比率
  • 年化波動率
  • 最大回撤期間

4. 策略回測系統 (Strategies/)

  • 抽象策略基類設計
  • 移動平均交叉策略實現
  • 完整回測框架 (包含手續費計算)
  • 詳細交易記錄追蹤

5. 數據匯出功能 (Services/數據匯出器.cs)

  • CSV格式: 基本數據、技術指標、統計報告
  • JSON格式: 網頁友好格式
  • 回測報告: 完整的交易分析報告
  • 統計報告: 自動化風險分析報告

🎨 新增表單和圖表功能 (v2.1)

📱 表單界面增強

新增控件組

  1. 技術指標組 (groupBoxTechnical)

    • RSI指標開關
    • MACD指標開關
    • 布林通道開關
    • EMA指標開關和參數設定
    • 計算技術指標按鈕
  2. 回測組 (groupBoxBacktest)

    • 短期移動平均天數設定 (5-200天)
    • 長期移動平均天數設定 (5-200天)
    • 初始資本設定 (1,000-1,000,000)
    • 執行回測按鈕
  3. 匯出組 (groupBoxExport)

    • 匯出基本數據 (CSV格式)
    • 匯出技術指標 (CSV格式)
    • 匯出統計報告 (CSV格式)
    • 匯出JSON格式數據

📊 圖表視覺化增強

多層次指標顯示

  • 價格線: 藍色實線顯示收盤價走勢
  • 移動平均: 紅色虛線顯示移動平均趨勢
  • 布林通道: 紫色線條顯示上軌、下軌,橙色線顯示中軌
  • 交易信號: 綠色圓點標記買入信號,紅色圓點標記賣出信號

改進的圖表功能

  • 動態範圍調整: 根據技術指標自動調整Y軸範圍
  • 精細網格: 10x10網格提供更好的視覺參考
  • 清晰標籤: 改進的價格軸標籤顯示
  • 多彩圖例: 不同顏色區分各種指標

🔧 使用流程

完整分析流程

  1. 生成數據

    • 選擇隨機過程模型
    • 設定基本參數
    • 點擊「生成數據」
  2. 計算技術指標

    • 勾選需要的指標 (RSI/MACD/布林通道/EMA)
    • 設定EMA參數
    • 點擊「計算指標」
  3. 執行策略回測

    • 設定短期/長期移動平均參數
    • 設定初始資本
    • 點擊「執行回測」
  4. 視覺化分析

    • 觀察圖表上的多層次指標
    • 分析交易信號點位
    • 檢視統計資訊面板
  5. 匯出結果

    • 選擇匯出格式 (CSV/JSON)
    • 選擇匯出內容 (數據/指標/報告)
    • 保存分析結果

⚡ 新功能亮點

實時視覺反饋

// 圖表即時更新技術指標
if (布林通道數據.HasValue)
{
    繪製布林通道(圖形, 圖表區域, 最低價格, 價格範圍);
}

// 交易信號視覺化標記
if (最新回測結果?.交易紀錄 != null)
{
    繪製交易信號(圖形, 圖表區域, 最低價格, 價格範圍);
}

一鍵匯出功能

// 技術指標完整匯出
數據匯出器.匯出技術指標CSV(數據, MA值, RSI值, MACD數據, 布林通道數據);

// JSON格式匯出
數據匯出器.匯出JSON(數據, "分析結果.json");

🎯 專業分析工作流

量化分析師使用場景

  1. 市場數據模擬: 使用不同參數生成各種市場情境
  2. 技術指標驗證: 同時計算多個指標進行交叉驗證
  3. 策略回測: 快速測試移動平均交叉策略效果
  4. 視覺化分析: 直觀查看指標信號和交易點位
  5. 結果匯出: 將分析結果匯出供進一步研究

教學使用場景

  1. 概念演示: 視覺化展示各種技術指標含義
  2. 策略教學: 展示交易策略的實際運作方式
  3. 風險教育: 通過回測了解策略風險和報酬
  4. 數據分析: 教授如何解讀統計指標

🔧 技術規格

  • 框架: .NET 9.0
  • UI技術: Windows Forms
  • 數學庫: MathNet.Numerics
  • 程式語言: C# 12
  • 編碼: UTF-8 (支援繁體中文)

🚀 快速開始

系統需求

  • Windows 10/11
  • .NET 9.0 Runtime
  • Visual Studio 2022 (建議)

安裝步驟

  1. 克隆或下載專案
  2. 開啟 WinFormsApp3.sln
  3. 還原 NuGet 套件
  4. 建置並執行專案

基本使用流程

  1. 生成數據: 設定參數後點擊「生成數據」
  2. 技術分析: 選擇指標後點擊「計算技術指標」
  3. 策略回測: 設定策略參數後執行回測
  4. 結果匯出: 選擇格式匯出分析結果

📊 功能測試

執行完整功能測試:

// 在 Tests/功能測試程式.cs 中
功能測試程式.執行完整功能測試();
功能測試程式.展示交易策略效果();
功能測試程式.風險分析示例();

📈 使用場景

教育用途

  • 金融工程課程教學
  • 量化分析概念演示
  • 風險管理實務練習

研究開發

  • 新策略原型開發
  • 歷史數據回測驗證
  • 風險指標計算

專業應用

  • 投資組合分析
  • 風險評估報告
  • 策略效果評估

🎯 設計優勢

模組化設計

  • 清晰的職責分離
  • 易於維護和擴展
  • 獨立的功能模組

可擴展性

  • 策略系統支援新增自定義策略
  • 服務層支援新增分析功能
  • 匯出器支援新增輸出格式

代碼品質

  • 完整的錯誤處理
  • 詳細的中文註釋
  • 一致的編碼風格

🔮 未來發展

計劃功能

  • 更多技術指標 (KDJ、威廉指標等)
  • 機器學習策略支援
  • 實時數據接入
  • Web API接口
  • 資料庫整合

策略擴展

  • 動量策略
  • 均值回歸策略
  • 配對交易策略
  • 多因子模型

📞 支援與貢獻

意見回饋

如果您在使用過程中遇到問題或有改進建議,歡迎提出。

貢獻指南

  1. Fork 此專案
  2. 創建功能分支 (git checkout -b feature/新功能)
  3. 提交變更 (git commit -am '添加新功能')
  4. 推送到分支 (git push origin feature/新功能)
  5. 創建 Pull Request

📄 授權條款

本專案使用 MIT 授權條款,詳情請參閱 LICENSE 文件。

🙏 致謝

  • MathNet.Numerics - 提供強大的數學計算功能
  • Microsoft - .NET 框架和 WinForms 技術
  • 金融工程社群 - 隨機過程理論和實務經驗分享 本專案採用MIT授權條款,詳見 LICENSE.txt 檔案。

About

金融數據分析工具 - 隨機過程生成器

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages