【量化】策略交易 - 均线策略(Moving Average Strategy)

策略交易 - 均线策略(Moving Average Strategy)


一、前言

均线策略 是最经典、最简单、最实用的量化交易策略之一,也是许多新手入门量化交易的第一步。

二、“均线”是什么

均线(Moving Average,简称 MA),是某个时间段内价格的平均值,通常用于观察价格趋势。

常见均线种类:

名称公式意义
简单均线(SMA)最简单的平均值平滑价格波动
指数均线(EMA)最近的数据权重更高更快反应新行情

三、核心逻辑

利用两条不同周期的均线判断趋势,决定买入或卖出。

最经典形式:双均线策略(Dual MA Strategy)

四、“双均线策略”规则

条件操作
短期均线 上穿 长期均线买入(称为“金叉”)
短期均线 下穿 长期均线卖出(称为“死叉”)

比如:

  • 短期均线:5日平均价格(SMA_5)
  • 长期均线:20日平均价格(SMA_20)

五、图示理解

价格线:         /\    /\
短期均线(5日):   /\/\\
长期均线(20日):  ——\__/———

金叉:短期从下向上穿过长期 → 做多(买入)
死叉:短期从上向下穿过长期 → 平仓或做空

六、原理&本质

为什么这个策略有效?

-> 原理:

  • 当短期均线向上穿越长期均线,说明“短期上涨速度超过长期平均”,可能是上涨趋势开始。
  • 当短期均线向下穿越长期均线,说明“短期下跌加剧”,趋势可能反转。

-> 本质:

这是一种趋势跟随(Trend Following)策略,它不会抄底或摸顶,而是追着趋势吃中间的一段。

七、可调参数

参数意义示例
短期周期越小越敏感5、10
长期周期越大越稳重20、50、200
交易频率与K线周期有关日线、小时线、分钟线等
滑点与手续费实盘中必须考虑0.1%每次交易等

八、优点和缺点

-> 优点

  • 简单易懂,逻辑清晰
  • 可用在任何标的(股票、币种、期货)
  • 可参数优化(适合机器学习)
  • 可程序化、自动化交易

-> 缺点

  • 信号滞后(必须等趋势确认后再进场)
  • 高频震荡行情中会频繁“假信号”,导致亏损
  • 不适合震荡盘(更适合趋势行情)

九、实战事例

狗狗币(DOGEUSDT)为例,来实现均线策略,数据从币安拿。

-> 库的安装

pip install python-binance pandas matplotlib

-> 相关代码

# -*- coding: utf-8 -*-
# @Author: zhangfujie
# @Date:   2025-06-08 19:01:45
# @Last Modified by:   zhangfujie
# @Last Modified time: 2025-06-08 19:35:27

from binance.client import Client
import pandas as pd
import matplotlib.pyplot as plt
import datetime
# 设置支持字体,不然中文无法显示
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

# 策略交易之均线策略
def moving_average_strategy():
	# 1. 初始化币安客户端(不需要API KEY也可以获取公共行情)
	client = Client()

	# 2. 下载 DOGE/USDT 的历史数据(如1小时K线)
	symbol = "DOGEUSDT"
	interval = Client.KLINE_INTERVAL_1HOUR
	start_str = "1 Jan, 2025"

	# 3. 获取K线数据
	klines = client.get_historical_klines(symbol, interval, start_str)

	# 4. 整理为DataFrame
	data = pd.DataFrame(klines, columns=[
		"timestamp", "open", "high", "low", "close", "volume",
		"close_time", "quote_asset_volume", "number_of_trades",
		"taker_buy_base", "taker_buy_quote", "ignore"
	])
	data["timestamp"] = pd.to_datetime(data["timestamp"], unit="ms")
	data.set_index("timestamp", inplace=True)
	data["close"] = data["close"].astype(float)

	# 5. 计算均线
	data["SMA_5"] = data["close"].rolling(window=5).mean()
	data["SMA_20"] = data["close"].rolling(window=20).mean()

	# 6. 生成交易信号
	data["signal"] = 0
	data.loc[data["SMA_5"] > data["SMA_20"], "signal"] = 1
	data.loc[data["SMA_5"] < data["SMA_20"], "signal"] = -1

	# 7. 策略收益
	data["position"] = data["signal"].shift(1)
	data["return"] = data["close"].pct_change()
	data["strategy"] = data["position"] * data["return"]

	# 8. 可视化:策略 vs 原始收益
	data[["return", "strategy"]].cumsum().plot(figsize=(12, 6))
	# 图标显示的字体是苹方体
	font_path = '/System/Library/Fonts/PingFang.ttc'
	chinese_font = FontProperties(fname=font_path)
	plt.title("DOGE/USDT - 均线策略 vs 持有收益", fontproperties=chinese_font)
	plt.ylabel("累计收益", fontproperties=chinese_font)
	plt.grid(True)
	plt.show()

if __name__ == '__main__':
	moving_average_strategy()

-> 运行结果

在这里插入图片描述

-> 说明

步骤内容
数据源直接从 币安API 获取 DOGEUSDT 的历史K线(1小时)
策略5小时均线 > 20小时均线 → 做多;反之做空(或清仓)
可视化累计收益图,比较“策略 vs 单纯持有”表现

-> 提示 & 拓展

  • 若我们想做分钟级别高频策略,把 KLINE_INTERVAL_1HOUR 改成 KLINE_INTERVAL_1MINUTE

  • 可以加上手续费(如每次交易扣 0.1%)来模拟更真实场景

  • 如果你想让它实时监控并自动下单,需要使用 Binance 的下单接口(需要 API Key)

十、策略总结

均线策略是趋势交易的入门方法,虽然简单,但理解透彻后能衍生出更复杂的量化系统。

-> 延伸策略:

策略名称改进点
三均线策略加入第三条长期均线,过滤震荡
均线+RSI均线判断趋势,RSI判断超买超卖
多因子策略均线作为因子之一,加入成交量、MACD、布林带等

十一、关于作者(ZFJ_张福杰)

  • 官网:https://zfjsafe.com
  • 博客:https://zfj1128.blog.csdn.net
  • Github:https://github.com/zfjsyqk
  • Gitee:https://gitee.com/zfj1128
  • 打赏:https://zfjsafe.com/paycode
内容概要:《中国HR+HER2-早期乳腺癌患者诊疗需求调研白皮书》聚焦于中国早期HR+/HER2-乳腺癌患者的诊疗现状和需求。白皮书通过定量调研,揭示了患者在确诊、复发风险评估、术后辅助治疗及长期管理等各阶段面临的挑战,包括对新药的期待、信息需求及信息渠道偏好。调研显示,患者对新型辅助治疗方案的疗效和生活质量提升寄予厚望,但也存在对不良反应的担忧。此外,患者在理解诊断报告、复发风险认知及获取权威信息方面存在诸多障碍。白皮书呼吁加强患者教育、优化医患沟通、提高新药可及性,以改善患者预后和生活质量。 适合人群:早期HR+/HER2-乳腺癌患者、家属、临床医生及相关医疗工作者。 使用场景及目标:①帮助患者更好地理解诊断结果和后续治疗方案;②为临床医生提供患者需求和挑战的真实数据,优化诊疗路径;③推动社会各界关注和支持早期乳腺癌患者的教育和管理,助力患者早日康复,重获高质量生活。 其他说明:白皮书强调了早期乳腺癌患者在诊疗旅程中面临的多重障碍,包括早期筛查覆盖率不足、复发风险认知偏差及医患沟通壁垒。为应对这些挑战,白皮书提出了多项改进建议,如加强乳腺健康教育、优化诊断结果沟通方式、提升患者对复发风险的认知、强化不良反应管理及构建权威信息平台等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值