如何用Python写一个双均线策略

766cd6275afe626d3db860017e9d7b72.png

(永久免费,扫码加入)

本篇是量化系列的内容,已经购买小册的不要看了。

我的小册:(小白零基础用Python量化股票分析小册) ,原价199,限时特价39,满100人涨10元。

双均线策略应该是所有的股票软件,股票网站都必备的一个策略。无论是在同花顺,还是券商软件都有这个策略。我们简单介绍一下这个策略的来龙去脉,以及如何写这个策略的信号。

1.什么是双均线策略

两条移动平均线(Moving Average, MA):一条短期均线和一条长期均线。这两条线通常是基于不同时间段的股票收盘价计算出来的平均值。

短期均线:这通常是近期(如10天或20天)的移动平均线,反映了股票短期价格走势。

长期均线:这是基于较长时间段(如60天或100天)的移动平均线,展示了股票的长期趋势。

策略的核心原则:

金叉:当短期均线从下向上穿过长期均线时,这通常被视为买入信号。这表明短期趋势正在转向上升,可能预示着价格上涨。

死叉:当短期均线从上向下穿过长期均线时,这通常被认为是卖出信号。这意味着短期趋势开始下降,可能预示着价格下跌。

股票上行就是金叉买,死叉卖,因为不涉及做空,对于A股只有买入和平仓 比较简单。其他的市场是有做空机制,会更复杂一些。

2. 如何写双均线策略的信号

解释了规则之后,我们来实际用Python代码写一下这个策略,我们还是用创业板的头牌特锐德2023 从1月到12月的数据来演示:

18bceed659b72d7a49bc532f06aae2b8.png

我们来导入数据,写一下代码:

a4a26fc8a7b0bfe43d7408dee33df260.png

计算5日和10日均线的值

039b085bbc94214b5ac5bd0d8494281b.png

直接用rolling函数计算均线值,其实也可以用talib计算(这个我们会放在进阶教程里面讲),接着我们来写一下信号:

18f7bac42766b25e94c2fd0ebdb0bfaf.png

首先我们把策略信号Signal 初始化为空值

做多需要有2个条件:

1a67827c8ba62411afca0e5504bed00e.png

比如上图,红色表示5日均线快线,蓝色表示10日均线 慢线

当天的5日快线大于10日慢线的时候(表示股价开始上行),同时我们要确认前一天的K线 5日快线低于10日慢线的,满足这2个条件,我们才能认为是要开仓的信号,然后我们在隔天的开盘下单买入,或者晚上用前一天的收盘价买入。

在量化领域 习惯用long 表示多头,即买入。

平仓也需要2个条件:

1c9cfd4db0e7c0f23b677e494c51b5ce.png

上图,红色表示5日均线快线,蓝色表示10日均线 慢线

当天的5日快线低于10日慢线的时候(表示股价开始下行),同时我们要确认前一天的K线 5日快线大于在10慢线的,满足这2个条件,我们才能认为是要平仓的信号,然后我们在隔天的开盘下单平仓,或者晚上用前一天的收盘价平。

在量化领域 习惯用short 表示空头,即卖出,运算上面的代码,我们打印出来看一下信号:

fac3787c06f6fa3c7aa5672e358ed586.png

1). 特锐德  2023-11-30  19.17  18.990000  19.015000     NaN221  特锐德  2023-12-01  18.93  19.034000  18.990000     1.0

解读一下,12月1号 ma-fast 19.034 大于 ma-slow 18.99 ,而前一天 11月30号 ma-fast 18.99 是小于ma-slow 19.01 ,所以当天收盘之后,我们的策略发出了1的信号,就是做多;

2). 特锐德  2023-12-05  18.63  18.944000  18.903000     NaN224  特锐德  2023-12-06  18.73  18.860000  18.903000     0.0

解读一下,12月6号ma-fast 18.73 小于 ma-slow 18.90,而前一天 12月5号 ma-fast 18.63 大于 ma-slow 18.94,所以当天收盘之后,我们的策略发出信号0,即平仓

3.对信号进行处理

大家有没有发现有很多信号,都是NaN 就是空值,非常不利于我们观察,我们看一下前20行的内容:

740a0574fe1335fb2d1129968d05237b.png

这个信号从1月3号到1月9号都是空值NaN,从1月9号之后应该是开多了,但是也是空值,到了2-22应该平仓了,平仓之后的日子应该是空仓,但是也是空值NaN。所以这个信号是需要处理的。

f65176dbfbb751741d596195ebe6f7a3.png

我们打印看一下结果:

0c283f4da9324fab85f4f239b5b8937a.png

我们把Signal这一列做了空值向前填充,fillna(method='ffill'),就是比如1月10号之后,开仓了,那么之后每天应该都是1,除非遇到新的信号出现,否则应该跟前面信号保持一致。然后最开始几天1月3号到9号直接用0填充。

这个就是基本的双均线策略,双均线算是所有策略的一个基本入门款,非常适合完全不懂量化的同学来研究,我们后面很多复杂的内容,也是基于这个策略展开的,大家务必要好好掌握。我们下一篇见!


最后推荐一下我的小册:

从小白的角度浅浅的介绍一下从零基础python入门,pandas库的使用,股票数据的基本分析,可视化股票分析,以及如何写一个简单的量化策略,如何去回测你的策略,计算仓位和资金曲线,如何优化你的策略。同时还涉及股票数据的爬虫,基金的爬虫等内容。同时也是对自己量化的反思和感悟,更好的鞭策自己提升功力!!!

c905019a4a618ff1afbba6b67140670f.png

欢迎订阅我们的小册 👉:(小白零基础用Python量化股票分析小册),原价199,现在早鸟价39,满100人涨10元。订阅之后觉得不好,48小时内无理由退款,放心食用!

ed2190ffce6c9527162db42443cc1549.png

(扫码订阅,永久买断)

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径

干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影

趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!

AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!

  • 22
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值