Python 金融量化 随机指标交易策略(下)

简介: Python 金融量化 随机指标交易策略(下)

5. 计算K、D指标值

5.1 K值、D值指标概述

K值由前一日的K值和当期RSV值经过一定权重调整后相加得到,一般来说,K值的计算为:
在这里插入图片描述

此外,在计算第一期K和D值时,如果没有指定,则K值和D值都默认取值为50。在K值和D值的求解过程中,平滑权重2/3和1/3是较为常用的权重,这两个权重也可以根据股价走势的特点进行适当修改。
(通过递归和迭代,我们可以发现K值是由未成熟随机指标RSV通过指数移动平均而得到的。D值是K值的指数移动平均数。)


5.2 计算代码

# 计算K值
KValue = pd.Series(0.0, index=RSV.index)
KValue[0] = 50
for i in range(1,len(RSV)):
    KValue[i] = 2/3*KValue[i-1] + RSV[i]/3

KValue.name = 'KValue'

# 接着计算D值
DValue = pd.Series(0.0, index=RSV.index)
DValue[0] = 50
for i in range(1, len(RSV)):
    DValue[i] = 2/3*DValue[i-1] + KValue[i]/3

DValue.name = 'DValue'
KValue = KValue[1:]
DValue = DValue[1:]

然后,绘制曲线图

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.subplot(211)
plt.title('2020年平安银行收盘价')
plt.plot(close['2020'])
plt.subplot(212)
plt.title('2020年平安银行RSV与KD线')
plt.plot(RSV['2020'])
plt.plot(KValue['2020'],linestyle='dashed')
plt.plot(DValue['2020'],linestyle='-.')

图像效果如下:
在这里插入图片描述
如图可以看出RSV曲线波动最大,K线在RSV基础上进行适当平滑,而D线波动幅度最小。收盘曲线上涨时,RSV曲线、KD线也呈上涨趋势;当收盘价在高位段上涨时,RSV曲线,K值,D值取值也较高,并在较高位处波动。

6.计算J值

J指标是KD指标的辅助指标,进一步反映了K指标与D指标的乖离程度。第t日J值的计算公式为:
在这里插入图片描述

# 计算J值
JValue = 3*KValue - 2*DValue
JValue.name='JValue'

7.绘制KDJ线

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.subplot(211)
plt.title('2020年平安银行收盘价')
plt.plot(close['2020'],label='Close')
plt.legend(loc='upper left')
plt.subplot(212)
plt.title('2020年平安银行RSV与KDJ线')
plt.plot(RSV['2020'],label='RSV')
plt.plot(KValue['2020'],linestyle='dashed',label='KValue')
plt.plot(DValue['2020'],linestyle='-.',label='DValue')
plt.plot(JValue['2020'],linestyle='--',label='JValue')
plt.legend(loc='upper left')

图像效果如下:
在这里插入图片描述

8. KDJ交易策略

总结随机指标KDJ的思想,首先计算最高价,最低价和收盘价之间的比例关系,再运用平滑和乖离的思想,来捕捉动量及超买、超卖等现象,在实务上对快捷直观地研判行情很有助益。

  1. 在KDJ指标的取值上K和D值的取值范围为0-100。
    依据K值和D值可以划分出超买区和超卖区,一般而言,K值或者D值在80以上为超买区,在20以下为超卖区。
  2. 对于J值,J值大于100,可以视为超买区,J值小于0,即视为超卖区。
  3. K线由下向上穿过D线时,即出现“黄金交叉”现象,隐含股票上涨的动量较大,释放出买入信号;K线由上向下穿过D线时,出现“死亡交叉”现象,股票有下跌趋势,释放出卖出信号。
目录
相关文章
|
1月前
|
数据可视化 数据处理 Python
如何使用Python实现一个基于均线的交易策略
【10月更文挑战第9天】本文介绍了如何使用Python实现一个基于均线的交易策略。主要步骤包括导入所需库(如`pandas`、`numpy`和`matplotlib`),加载股票或期货的历史数据,计算均线和其他指标,实现交易策略逻辑,以及可视化交易结果。示例代码展示了如何根据均线交叉点进行开仓、止损和止盈操作,并提供了注意事项,如数据来源、交易成本和风险管理。
70 7
|
1月前
|
机器学习/深度学习 数据采集 TensorFlow
智能市场营销策略优化:使用Python实现深度学习模型
【10月更文挑战第1天】 智能市场营销策略优化:使用Python实现深度学习模型
167 63
|
16天前
|
算法 数据处理 开发者
超越传统:Python二分查找的变种策略,让搜索效率再上新台阶!
本文介绍了二分查找及其几种Python实现的变种策略,包括经典二分查找、查找第一个等于给定值的元素、查找最后一个等于给定值的元素以及旋转有序数组的搜索。通过调整搜索条件和边界处理,这些变种策略能够适应更复杂的搜索场景,提升搜索效率和应用灵活性。
28 5
|
16天前
|
Python
不容错过!Python中图的精妙表示与高效遍历策略,提升你的编程艺术感
本文介绍了Python中图的表示方法及遍历策略。图可通过邻接表或邻接矩阵表示,前者节省空间适合稀疏图,后者便于检查连接但占用更多空间。文章详细展示了邻接表和邻接矩阵的实现,并讲解了深度优先搜索(DFS)和广度优先搜索(BFS)的遍历方法,帮助读者掌握图的基本操作和应用技巧。
33 4
|
18天前
|
算法 IDE API
Python编码规范与代码可读性提升策略####
本文探讨了Python编码规范的重要性,并深入分析了如何通过遵循PEP 8等标准来提高代码的可读性和可维护性。文章首先概述了Python编码规范的基本要求,包括命名约定、缩进风格、注释使用等,接着详细阐述了这些规范如何影响代码的理解和维护。此外,文章还提供了一些实用的技巧和建议,帮助开发者在日常开发中更好地应用这些规范,从而编写出更加清晰、简洁且易于理解的Python代码。 ####
|
21天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
25天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
49 5
|
1月前
|
机器学习/深度学习 数据挖掘 Serverless
手把手教你全面评估机器学习模型性能:从选择正确评价指标到使用Python与Scikit-learn进行实战演练的详细指南
【10月更文挑战第10天】评估机器学习模型性能是开发流程的关键,涉及准确性、可解释性、运行速度等多方面考量。不同任务(如分类、回归)采用不同评价指标,如准确率、F1分数、MSE等。示例代码展示了使用Scikit-learn库评估逻辑回归模型的过程,包括数据准备、模型训练、性能评估及交叉验证。
75 1
|
5天前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
|
11天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
下一篇
无影云桌面