交易策略概述
交易數據類型
基本面數據
- 利率
- GDP增長
- 通貨膨脹
- 失業率
- 公司收入和利潤
- 限制: 本課程不使用基本面數據
- 原因1: 新聞資訊較難結構化處理
- 原因2: 需要深厚的經濟學背景來解釋數據
價格與成交量數據
- 歷史價格
- 歷史報酬率
- 交易量
- 價格與報酬率波動性
技術指標類型
趨勢指標
- 簡單移動平均線(SMA)
- 布林通道(Bollinger Bands)
- 指數移動平均線(EMA)
動量指標
- 隨機震盪指標(Stochastic Oscillator)
- 相對強弱指標(RSI)
- 移動平均匯聚背離指標(MACD)
策略實作範例:買入持有(Buy and Hold)
數據準備
- 使用EUR/USD匯率數據(2004-2020)
- 資料特點
- 每日數據
- 僅包含交易日
- 使用對數報酬率計算
績效指標計算
基本績效指標
- 絕對報酬率
- 年化平均報酬率
- 計算方法:日均報酬 × 252(交易日)
- 標準差(風險指標)
- 計算方法:日標準差 × √252
進階風險指標
- 最大回撤(Maximum Drawdown)
- 定義:從高點到低點的最大跌幅
- 計算步驟:
- 計算累積報酬的歷史最高點
- 計算當前價格與歷史最高點的差距
- 找出最大差距即為最大回撤
實用工具與資源
交易平台
- MT4交易平台
- 提供多種技術指標
- 支持自定義指標添加
學習資源
- MT4官方網站
- 基本面分析教程
- 技術分析指標說明
- 策略開發指南
注意事項
- 市場並非100%有效
- 交易者並非100%理性
- 這些市場特性為交易策略提供了獲利機會
- 建議從簡單策略開始,逐步擴展到更複雜的策略
#交易策略 #技術分析 #量化交易
移動平均交叉策略詳解
移動平均線基礎
移動平均線類型
- 簡單移動平均線(SMA)
- 最常用類型
- 對固定時間窗口內價格進行等權重平均
- 例如:50日均線、200日均線
- 加權移動平均線(WMA)
- 對近期價格賦予更高權重
- 更快捕捉趨勢變化
- 指數移動平均線(EMA)
- 類似WMA,近期價格權重更高
- 趨勢反應更敏感
移動平均線功能
- 平滑價格波動
- 過濾市場雜訊
- 識別價格趨勢
- 確定趨勢動量
SMA交叉策略實作
基本邏輯
- 短期均線向上穿越長期均線 → 做多信號
- 短期均線向下穿越長期均線 → 做空信號
策略建構步驟
-
數據準備
# 計算短期與長期均線 df['SMA_short'] = df['price'].rolling(window=50).mean() df['SMA_long'] = df['price'].rolling(window=200).mean()
-
生成交易信號
# 生成持倉 df['position'] = np.where(df['SMA_short'] > df['SMA_long'], 1, -1)
-
計算策略收益
# 計算策略收益 df['strategy_returns'] = df['position'].shift(1) * df['returns']
績效評估指標
-
絕對收益
- 策略總收益率
- 對比買入持有策略
-
年化指標
- 年化收益率
- 年化波動率
- 夏普比率
策略優化
參數優化流程
-
定義參數搜索範圍
- 短期均線:10-50天
- 長期均線:100-252天
-
迭代測試
from itertools import product combinations = list(product(range(10,50), range(100,252)))
-
尋找最優參數
- 遍歷所有參數組合
- 記錄每組參數表現
- 選擇最佳表現參數
優化注意事項
-
過度擬合風險
- 參數過度適配歷史數據
- 未來表現不一定理想
-
樣本外測試必要性
- 使用新數據驗證
- 確保策略穩定性
實用技巧與建議
-
數據處理
- 使用對數收益率
- 處理缺失值
- 移除首個交易日數據
-
回測要點
- 考慮交易成本
- 注意數據前視偏差
- 使用向量化運算提高效率
#量化交易 #技術分析 #移動平均線