量化交易学习笔记:双均线策略详解与实战
创作时间:
作者:
@小白创作中心
量化交易学习笔记:双均线策略详解与实战
引用
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
回测结果:
热门推荐
逼近日本狼謎團的中學生研究者──小森日菜子同學
上海交通法规关于儿童的规定:保障安全、便利出行
豆瓣8.5以上,或许这些书可以给你一些情绪价值
从事教育行业,怎样判断自己的教学方法和课堂管理技能是否有效
房产经纪人证书分类及解析:了解行业标准,助力职业发展
钢混结构房屋的使用年限及维护措施
中医“治未病”心理疏导方案
固定劳动期限的合同期限:了解其优缺点
等离子杀菌VS紫外线杀菌:原理与优势详解
家里开电瓶车是否违法?从法律角度全面解读
双目立体视觉中的立体校正技术详解
过敏性疾病的早期诊断与过敏源管理
编程技巧与实践:如何写出可扩展、可维护的代码
董事会成员一定要有股份吗
老年性白内障几岁开始
《哪吒2》制作大揭秘!让角色“活”起来的是咱长春人
如何正确分析龙虎榜数据?这些数据对投资决策有何参考价值?
显卡(GPU)关键参数详解:从基础概念到高级技术
笔记本显卡如何测试软件
牙疼的时候能进行治疗吗?
普里姆(Prim)算法详解
老鼠药中的危险成分及安全使用指南
响应式公交:一种新型的公共交通模式探索与实践
pdf如何上传到云盘中
太原旅游攻略:从晋祠到汾河公园,感受2500年古城魅力
在国外,出国留学生该如何保持积极健康的心理状态?
从零开始:利用社交媒体提升SEM效果的实战技巧
一文读懂服务器的HBA卡
道路安全意识提升:减少交通事故的关键措施
信用评分全解析:它如何影响贷款利率和额度?