雙均線量化交易策略指南

策略原理

采用兩條不同周期的簡單移動平均線(SMA):

  • 短期均線:5日線(快速反應價格變化)
  • 長期均線:20日線(反映長期趨勢)

交易信號生成規則

當 5日線 > 20日線 → 買入信號
當 5日線 < 20日線 → 賣出信號

Python實現模塊

1. 數據獲取模塊

import yfinance as yfdef fetch_stock_data(ticker, start_date, end_date):"""獲取股票歷史數據參數:ticker -- 股票代碼 (例:'AAPL')start_date -- 開始日期 (格式:'YYYY-MM-DD')end_date -- 結束日期"""return yf.download(ticker, start=start_date, end=end_date)

2. 策略計算模塊

def calculate_signals(data, short_window=5, long_window=20):"""計算雙均線和交易信號參數說明:short_window -- 短期均線周期(默認5日)long_window -- 長期均線周期(默認20日)"""data['SMA5'] = data['Close'].rolling(short_window).mean()data['SMA20'] = data['Close'].rolling(long_window).mean()data['Signal'] = np.where(data['SMA5'] > data['SMA20'], 1, -1)return data

3. 回測引擎

def backtest_strategy(data, initial_capital=1000000):"""策略回測模塊參數:initial_capital -- 初始資金(默認100萬)"""position = 0capital_curve = [initial_capital]for i in range(1, len(data)):if data['Signal'][i-1] == 1 and position == 0:position = capital_curve[-1] / data['Close'][i]capital_curve.append(position * data['Close'][i])elif data['Signal'][i-1] == -1 and position != 0:capital_curve.append(capital_curve[-1])position = 0else:capital_curve.append(position * data['Close'][i] if position else capital_curve[-1])return pd.Series(capital_curve, index=data.index)

可視化分析

import matplotlib.pyplot as pltplt.figure(figsize=(12,6))
plt.plot(data['Close'], label='收盤價', alpha=0.5)
plt.plot(data['SMA5'], label='5日均線', linestyle='--')
plt.plot(data['SMA20'], label='20日均線', linestyle='-.')
plt.scatter(data[data['Signal'].diff() != 0].index, data['Close'][data['Signal'].diff() != 0], c=data['Signal'][data['Signal'].diff() != 0].map({1:'g', -1:'r'}),marker='^', s=100)
plt.title('雙均線策略交易信號可視化')
plt.legend()
plt.savefig('strategy_visualization.png', dpi=300, bbox_inches='tight')

策略優化建議

參數調優組合

組合名稱短期均線長期均線適用場景
激進型3日10日高波動市場
平衡型5日20日趨勢行情
保守型10日50日長線投資

改進方向

  1. 增加交易成本計算(傭金、滑點)
  2. 結合波動率過濾避免震蕩行情
  3. 添加止損止盈機制
  4. 多品種回測驗證策略普適性

使用示例

if __name__ == "__main__":# 獲取數據data = fetch_stock_data('AAPL', '2020-01-01', '2023-12-31')# 計算策略strategy_data = calculate_signals(data)# 執行回測results = backtest_strategy(strategy_data)# 展示結果print(f"累計收益率:{(results[-1]/1000000-1)*100:.2f}%")

注意事項

? 實際交易需考慮以下因素:

  • 避免在開盤價跳空時執行信號
  • 不同品種參數需重新優化
  • 回測存在過擬合風險
  • 需定期進行策略再平衡

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80985.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80985.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80985.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

視頻太大?用魔影工廠壓縮并轉MP4,畫質不打折!

在日常生活中&#xff0c;我們常常需要將視頻文件轉換成不同的格式以適應各種設備或平臺的播放需求。魔影工廠作為一款功能強大且操作簡單的視頻轉換工具&#xff0c;深受用戶喜愛。本文中簡鹿辦公將手把手教你如何使用魔影工廠將視頻轉換為MP4格式&#xff0c;并進行個性化設置…

大騰智能 PDM 系統:全生命周期管理重塑制造企業數字化轉型路徑

在當今激烈的市場競爭中&#xff0c;產品迭代速度與質量已成為企業生存與發展的核心命脈。面對客戶需求多元化、供應鏈協同復雜化、研發成本管控精細化等挑戰&#xff0c;企業亟需一套能夠貫穿產品全生命周期的數字化解決方案。 大騰智能PDM系統通過構建覆蓋設計、研發、生產、…

CodeBuddy一騰訊內部已有超過 85% 的程序員正在使用de編程工具

大家好&#xff0c;我是程序員500佰&#xff0c;目前正在前往獨立開發路線&#xff0c;我會在這里分享關于編程技術、獨立開發、技術資訊以及編程感悟等內容。 如果本文能給你提供啟發和幫助&#xff0c;還請留下你的一健三連&#xff0c;給我一些鼓勵&#xff0c;謝謝。 本文直…

解鎖 Zblog 資訊系統:502 錯誤修復與雙域名適配的實戰秘籍

在網絡世界的激烈競爭中&#xff0c;資訊類網站如同戰場上的士兵&#xff0c;每一次頁面加載、每一次內容展示都關乎著用戶的留存與轉化。而 Zblog 作為備受青睞的資訊系統&#xff0c;承載著眾多站長的流量夢想。然而&#xff0c;在網站運營過程中&#xff0c;502 錯誤頁面的突…

今日打卡,Leetcode第四題:尋找兩個正序數組的中位數,博主表示就會sorted

4. 尋找兩個正序數組的中位數 博主只會第一個暴力解法&#xff0c;然后將官網上的源碼上添加些注釋&#xff0c;嘗試理解&#xff0c;分下今日刷題記錄 題目描述 給定兩個大小分別為 m 和 n 的正序&#xff08;從小到大&#xff09;數組 nums1 和 nums2。請你找出并返回這兩個…

Jouier 普及組十連測 R3

反思 首先&#xff0c;先悔恨一下這次的比賽成績。 這次比賽的教訓就是&#xff0c;簡單的題目一定要打不要被復雜的題面震懾到&#xff0c;以及變量名不能是保留字&#xff0c;如第一題的x1,y1&#xff0c;要開long long&#xff0c;計算好數據范圍&#xff0c;如第三第四題。…

Open CASCADE學習|非線性方程組求解技術詳解

引言 在幾何建模與工程計算中&#xff0c;非線性方程組的求解是常見的核心問題。Open CASCADE&#xff08;以下簡稱OCC&#xff09;作為開源的幾何建模內核&#xff0c;提供了豐富的數學工具庫&#xff0c;其中math_FunctionSetRoot類專為求解非線性方程組設計。本文將深入探討…

科技初創企業創新推動商業未來

在這個因變革而蓬勃發展的世界里&#xff0c;科技初創企業已成為各行業創新、顛覆與轉型的驅動力。這些雄心勃勃的企業正在重塑商業格局&#xff0c;挑戰既定規范&#xff0c;并不斷突破可能性的邊界。本文將深入探索科技初創企業的精彩領域&#xff0c;探討它們如何通過創新塑…

霍尼韋爾HMR2300-D00-485數字模塊

型號&#xff1a;HMR2300-D00-485 類型&#xff1a;數字通信模塊&#xff08;RS-485接口&#xff09; 制造商&#xff1a;霍尼韋爾&#xff08;Honeywell&#xff09;&#xff0c;隸屬于其工業自動化或樓宇自動化產品線。 典型用途&#xff1a; 用于擴展主控制器&#xff08;如…

如何在 Windows 11 或 10 上更改 WIFI 或以太網 MAC 地址?

無論你使用的是哪種操作系統,更改 MAC 地址在各種場景中都有其益處。每個網卡的 MAC 地址都是唯一的,由網絡適配器在出廠時就已經分配完成;它幫助系統在物理網絡上進行通信,并為其提供身份識別。然而,如果你出于某種合法原因想要更改 Windows 上的當前 MAC 地址,那么我們…

Python語法特點與編碼規范

注釋 單行注釋 把#號當做注釋符號 多行注釋 python中并沒有規定多行注釋標記&#xff0c;通常使用單引號作為多行注釋 中文注釋 規定文件所用編碼&#xff0c;當時是為解決python2不支持中文的問題 #codingutf-8代碼縮進 python采用代碼縮進和冒號區分代碼層次&#xff0c…

跟Gemini學做PPT:字號選擇

字號的選擇對于 PPT 的可讀性和視覺效果至關重要。以下是一些通用的建議和針對你具體情況的字號選擇指南&#xff1a; 通用字號選擇原則&#xff1a; 對比度&#xff1a; 文字顏色與背景顏色形成高對比度&#xff0c;確保易讀。字體&#xff1a; 選擇清晰、專業的字體&#x…

【JVM 03-JVM內存結構之-虛擬機棧】

虛擬機棧 筆記記錄 1. 定義1.1 演示棧幀 2. 特點3. 線程運行診斷3.1 案例1 cpu占用過多&解決3.2 案例2 程序運行很長時間沒有結果 4. 拓展知識&問題辨析4.1 棧的內存越大越好嘛&#xff1f;(不是)4.2 方法內的局部變量是否線程安全&#xff1f;(是線程安全的)4.2.1 局部…

文章記單詞 | 第104篇(六級)

一&#xff0c;單詞釋義 keyboard /?ki?b??rd/ n. 鍵盤underlying /??nd?r?la???/ adj. 潛在的&#xff1b;根本的&#xff1b;基礎的June /d?u?n/ n. 六月tactics /?tkt?ks/ n. 戰術&#xff1b;策略&#xff1b;手段south /sa?θ/ n./adj./adv. 南方&#x…

中宏立達與天空衛士達成戰略合作

戰略合作篇 中宏立達-天空衛士 2025年5月23日&#xff0c;中宏立達與天空衛士在中宏立達集團總部北京麗金智地中心正式簽署戰略合作協議。中宏立達總經理王博先生與天空衛士高級副總裁兼首席運營官鞏文堅先生代表雙方簽署協議。這標志著兩家領軍企業在數字安全領域的深度合作正…

RxJS 高階映射操作符詳解:map、mergeMap 和 switchMap

1. map 操作符 map 是最基本的轉換操作符&#xff0c;用于對 Observable 發出的每個值進行一對一轉換。 基本特點&#xff1a; 同步操作一對一轉換不改變 Observable 的發出時機 詳細示例&#xff1a; import { of } from rxjs; import { map } from rxjs/operators;// 示…

基于stm32的多旋翼無人機(Multi-rotor UAV based on stm32)

由于一直在調試本項目&#xff0c;好久沒有發文章&#xff0c;最近本項目的PID調試初見成效&#xff01;開始正文前首先感謝各位粉絲的支持&#xff0c;以及對本項目技術上支持的老師以及師兄&#xff0c;謝謝你們&#xff01; 對應源碼及文件&#xff1a;源碼及文件下載 基于…

量子傳感器:開啟微觀世界的精準探測

隨著量子技術的飛速發展&#xff0c;量子傳感器逐漸成為前沿科技領域的熱門研究方向。量子傳感器利用量子力學的特性&#xff0c;能夠實現對物理量的極高精度測量&#xff0c;其應用范圍涵蓋了基礎科學研究、醫學診斷、環境監測以及國防安全等多個領域。本文將深入探討量子傳感…

河道管網排口在線監測系統解決方案

一、方案概述 我國作為世界上河流數量最為豐富的國家之一&#xff0c;擁有眾多歷史悠久的壯闊江河流域。然而&#xff0c;伴隨經濟社會的迅猛發展&#xff0c;河湖管理與保護面臨諸多新挑戰&#xff0c;諸如河道干涸、湖泊萎縮、水環境惡化以及河湖功能退化等問題&#xff0c;對…

Foldseek快速蛋白質結構比對

1. 下載和安裝 Foldseek 如果只是單個蛋白質結構的序列比對&#xff0c;我們只需要用Foldseek 的網站服務 https://search.foldseek.com/search 上傳我們的蛋白質結構并選擇想要進行比對的數據庫即可&#xff0c;這里不做重點講解。做生物信息學研究&#xff0c;我們難免需要批…