量化交易学习笔记:双均线策略详解与实战
创作时间:
作者:
@小白创作中心
量化交易学习笔记:双均线策略详解与实战
引用
CSDN
1.
https://blog.csdn.net/weixin_42844704/article/details/146303939
双均线策略是一种常见的量化交易策略,通过计算短期和长期移动平均线的交叉点来判断买卖时机。本文将通过具体的Python代码示例,展示如何使用双均线策略进行量化交易,并通过回测结果来验证策略的有效性。
双均线策略示例
个股:中国平安
回测日期:2022-5-1至2023-5-1
短均线:5天
长无线:10天
def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
# """标的"""
g.security = '601318.SS'
set_universe(g.security)
#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
def handle_data(context, data):
security = g.security
#得到二十日历史价格
df = get_history(20, '1d', 'close', security, fq=None, include=False)
#"""指标"""
# 得到五日均线价格
ma5 = round(df['close'][-5:].mean(), 3)
ma5_prev = round(df['close'][-6:-1].mean(), 3)
# 得到十日均线价格
ma10 = round(df['close'][-10:].mean(), 3)
ma10_prev = round(df['close'][-11:-1].mean(), 3)
# 取得昨天收盘价
price = data[security]['close']
# 得到当前资金余额
cash = context.portfolio.cash
#"""择时"""
# 如果当前有余额,并且五日均线大于十日均线
if ma5 > ma10 and ma5_prev < ma10_prev:
# 用所有 cash 买入股票
order_value(security, cash)
# 记录这次买入
log.info("Buying %s" % (security))
# 如果五日均线小于十日均线,并且目前有头寸
elif ma5 < ma10 and ma5_prev > ma10_prev :
# 全部卖出
order_target(security, 0)
# 记录这次卖出
log.info("Selling %s" % (security))
def control_risk(context):
#"""风控"""
pass
ptrader测试结果:
修改两条均线日期后
个股:中国平安
回测日期:2022-5-1至2023-5-1
短均线:10天
长无线:15天
def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
# """标的"""
g.security = '601318.SS'
set_universe(g.security)
#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
def handle_data(context, data):
security = g.security
#得到二十日历史价格
df = get_history(20, '1d', 'close', security, fq=None, include=False)
#"""指标"""
# 得到十日日均线价格
ma5 = round(df['close'][-10:].mean(), 3)
ma5_prev = round(df['close'][-11:-1].mean(), 3)
# 得到十五日均线价格
ma10 = round(df['close'][-15:].mean(), 3)
ma10_prev = round(df['close'][-16:-1].mean(), 3)
# 取得昨天收盘价
price = data[security]['close']
# 得到当前资金余额
cash = context.portfolio.cash
#"""择时"""
# 如果当前有余额,并且五日均线大于十日均线
if ma5 > ma10 and ma5_prev < ma10_prev:
# 用所有 cash 买入股票
order_value(security, cash)
# 记录这次买入
log.info("Buying %s" % (security))
# 如果五日均线小于十日均线,并且目前有头寸
elif ma5 < ma10 and ma5_prev > ma10_prev :
# 全部卖出
order_target(security, 0)
# 记录这次卖出
log.info("Selling %s" % (security))
def control_risk(context):
#"""风控"""
pass
回测结果:
热门推荐
阿司匹林使用指南:四类人群、剂量时间与风险防范
从了解药物到心理调适:全面应对焦虑症服药恐惧
阿司匹林长期服用有风险,医生提醒:这些副作用要当心
阿司匹林副作用如何破?这些饮食调整很关键
深秋钓鱼必胜指南:从时间到饵料的全方位解析
德国杯:RB莱比锡4-2战胜圣保利,波尔森梅开二度
莱比锡红牛主场迎战圣保利:实力悬殊下的不确定
谦逊宽容,勤俭节约:《朱子家训》的家风智慧
打扫卫生、整理房间:培养孩子学习力的科学方法
锂电池环保优势显著,固态电池引领未来趋势
澳大利亚小镇语言不用“左右”,库塔语使用者方向感惊人
简单6步做出豆角烧茄子,4种创新搭配让美味升级
维生素B6助力代谢与神经健康,这些食物帮你补充
维生素B6抗癌新进展:有效缓解化疗副作用并助力个性化治疗
维生素B6的8大功效与安全摄入指南:最新研究发现其调节胰岛素作用
雷丁大学研究:维生素B6可有效减轻年轻人焦虑抑郁
打造专业级Excel图表:从基础到高级的完整指南
南京:创新应对人口老龄化挑战
告别低价内卷,闲鱼新手如何找到高利润选品
阿司匹林合成新突破:绿色催化剂实现更环保、低成本生产
心血管专家提醒:高血压患者服用阿司匹林有讲究
宏观经济调控下的存款利息之谜:为何一年存款利率跌破2%?
樟脑丸使用不当或危害健康,这些正确使用方法请收好
2025年开年ETF建仓放缓,基金经理谨慎应对市场震荡
股票型基金投资指南:三大策略与选择标准全解析
结直肠癌术后常见的这5类感染,该如何防治?
糖尿病患者的优质蛋白质指南
海洋生物资源为糖尿病治疗带来新希望
初次亲密关系后的心理变化:从依赖到独立,女性如何实现情感与自我成长
一文详解苏泊尔燃气灶安装:4大步骤确保安全使用