量化交易学习笔记:双均线策略详解与代码实现
创作时间:
作者:
@小白创作中心
量化交易学习笔记:双均线策略详解与代码实现
引用
CSDN
1.
https://blog.csdn.net/weixin_42844704/article/details/146303939
双均线策略示例
个股:中国平安
回测日期: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
修改两条均线日期后
个股:中国平安
回测日期: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
热门推荐
复合按钮控制电机,实现电机控制的多种方式
解决情感困扰的技巧
商标申请中常见的法律问题有哪些
百合花的养殖方法和注意事项
AI产品文案写作指南:如何用数据说话,让文案更有说服力?
儿童使用阿奇霉素全解析:药理作用、疗效与安全性
周敦颐与《爱莲说》:理学在江西的绽放
出现幻听怎么办?这些自救方法请收好
中国道教主要门派介绍
教师职称评审条件有哪些?如何顺利晋升教师职称?
劳动合同期内改变工资是否合法?
农村建房18大省钱技巧,每一处省出上万块
纳斯达克指数的出色回报与未来面临的潜在风险
工业现场总线技术的演进与应用
《福尔摩斯探案集》:文学史上最著名的侦探形象之一
猫应激反应后果有多严重?
一个预测:未来几年,这3个群体,有可能会沦为最底层
股市存在庄家的原因是什么?庄家对股市有怎样的作用?
股票定增和增发有什么区别:定向增发与公开增发的区别
三角形辅助线添加全攻略:82种初中常见添法详解
上海中医药大学:元宇宙+医疗康复创新诊疗建设项目启动!
特级教师是什么级别
《黑白魔女库伊拉》:时尚、复仇与自我认同的叛逆女王
百合花的种植与养护(适宜的月份、土壤和环境条件)
张旺:在水浒中水性居首,只因差点间接害死宋江,最终被张顺淹死
人形机器人步入软件定义和AI驱动时代
诸葛亮:蜀汉的辅翼与智慧化身
U20亚洲杯前瞻:泰国U20 vs 韩国U20,谁能抢占先机?
疼痛的评估方法有哪些?
解酒护肝的保健饮料是什么