量化交易:建立趋势跟踪策略的五个指标

什么是趋势跟踪策略?

趋势跟踪策略是只需需顺势而为的策略,即在价格上涨时买入,在价格开始下跌时卖出。在趋势跟踪策略中,人们的目标不是预测或预测,而只是关注市场上的任何新兴趋势。

趋势是如何出现的?

由于互联网的力量,我们都听说过病毒式传播。尽管这是相同的概念,但目标不同。在金融界也有 FOMO(害怕错过),尽管在这里,原因是普遍希望站在胜利的一方。情绪驱动人。

虽然我们使用算法交易(即量化交易策略)来抑制情绪化交易,但同样也可以用于利用情绪并将其货币化。

如何实施趋势跟踪策略?

趋势跟踪策略旨在利用市场情景获利。原因是高风险和同样高的收益。

影响者和市场领导者的意见形成了一种普遍的看法,并围绕普遍感兴趣的问题引起了持续的关注。进一步阐述这一特定的投资策略——趋势跟踪策略的功能基于对市场数据的技术分析。

由于目标是衡量与交易有关的无形方面,因此首要任务是确定控制情况的参数。

没有单一指标可以预测购买或出售证券的安全方式。然而,有一些著名的经常被用来获得分析视角和逻辑决策。

以下是有助于创建趋势跟踪策略的最佳交易指标。

移动平均线

移动平均线指标是一种广泛使用的技术指标,用于做出不基于一两次价格波动的决定。

可以使用一组历史数据来观察股票在预定时间段内的价格波动。这同样有助于描绘趋势流的总体方向。

该技术用于为未来的结果提供支持和建立弹性。

如何在趋势跟踪策略中使用移动平均线

移动平均线提供了一个清晰的想法,即是对股票进行多头还是空头头寸。如果股票呈现负趋势,即价格低于移动平均线,则对该股票做空(卖出)。

另一方面,如果股价高于简单移动平均线,则必须在股票上做多(买入),因为人们预计股价会进一步上涨。

在 Python 中为趋势跟踪策略绘制移动平均线

在绘制移动平均线之前,首先定义一个时间段并选择一个公司股票,以便对其进行分析。在本例中,定义时间段为 2017 年 1 月 1 日至 2018 年 1 月 1 日,选择的公司是特斯拉(TSLA)。

因此,导入相关库并在 python 中定义句点在以下代码中给出:

从 iexfinance 导入 get_historical_data
从日期时间导入日期时间
将panda导入为 pd开始 = 日期时间(2017,1,1)
结束 = 日期时间(2018,1,1)
数据= get_historical_data('TSLA',开始=开始,结束=结束,输出格式='panda')data.index=pd.to_datetime(data.index)
数据头()

 现在,使用以下 python 代码绘制公司的 SMA 和 EMA:

# 导入库
将 talib 导入为 ta
将 matplotlib.pyplot 导入为 plt
将 seaborn 导入为 sns
plt.style.use('bmh')
#简单移动平均线
data['SMA'] = ta.SMA(data.close, timeperiod = 20)
# 指数移动平均线
数据['EMA'] = ta.EMA(data.close, timeperiod = 20)
# 绘制
数据[['close','SMA','EMA']].plot(figsize=(10,5))
plt.show()

 绘制的图表如下所示:

布林带

布林带指标是绘制在一条奇异线上的信号,代表特定股票的价格波动。

它们由三行组成

  • 上布林带,

  • 中布林带,

  • 较低的布林带。

上布林带和下布林带的绘制距离均值有两个标准差。绘制两个信号或波段以衡量价格波动的波动性。

如何在趋势跟踪策略中使用布林带

当市场变得更加波动时,信号之间的距离会增加,或者简而言之,带宽会变宽,而低波动性则相反。波动性越高,退出交易的提示就越高。

将布林带绘制成距离平均平均值两个标准差的原因是为了确保两个带之间的距离占价格行为的 80% 以上,从而使高于或低于该带的任何价格都非常重要。

在 Python 中绘制布林带以实现趋势跟踪策略

python代码如下:

# 布林带
data['upper_band'], data['middle_band'], data['lower_band'] = ta.BBANDS(data.close, timeperiod =20)
# 绘制
数据[['close','upper_band','middle_band','lower_band']].plot(figsize=(10,5))
plt.show()

 绘制的图表如下所示:

布林带图表{w:100}{w:100}{w:100}{w:100}{w:100}

MACD

移动平均收敛散度指标 (MACD) 是对两个不同数据集的两条移动平均线的比较分析。

根据时间序列的带宽,您可以评估两个不同时间段的价格波动。一个持续一个月,另一个持续 200 天。

这两个数据集的移动平均值的比较是基于三个主要观察结果,即收敛、发散和急剧上升。

如何在趋势跟踪策略中使用 MACD

如果一个数据集的价格波动小于移动平均线,而另一组数据的波动高于移动平均线,则由于价格波动不稳定,因此做空股票更为明智。

在 Python 中为趋势跟踪策略绘制 MACD

python代码如下:

# MACD
数据['macd'],数据['macdsignal'],数据['macdhist'] = ta.MACD(data.close,fastperiod=12,slowperiod=26,signalperiod=9)
数据[['macd','macdsignal']].plot(figsize=(10,5))plt.show()

 

绘制的图表如下所示:

MACD 图表{w:100}{w:100}{w:100}{w:100}{w:100}

相对强弱指数

相对强弱指数,即RSI 指标使用以下公式计算:

RSI = 100 – 100 / (1 + RS)

其中 RS = 指定时间范围内上涨时段的平均收益 / 指定时间范围内下跌时段的平均损失。

RSI 用于衡量价格波动的速度和变化。该指标提供了证券近期在股市中的表现的一个概念。它衡量股票在 0 到 100 范围内的强度。

如何在趋势跟踪策略中使用 RSI

股票在 70 范围内被视为超买,在 30 以下被超卖。您可以相应地修改您的交易策略。

在 Python 中为趋势跟踪策略绘制 RSI

python代码如下:

# 相对强弱指数
数据['RSI'] = ta.RSI(data.close, timeperiod=14)
# 绘制 RSI
fig,ax = plt.subplots(figsize=(10,5))
ax.plot(data.index, data.RSI, label='RSI')
ax.fill_between(data.index, y1=30, y2=70, color = 'lightcoral', alpha='0.3')
ax.set_xlabel('日期')
ax.set_ylabel('RSI')
plt.show()

 绘制的图表如下所示:

OBV

平衡交易量 (OBV) 指标是一种基于动量的指标,可测量交易量以衡量趋势的方向。量和价格的上涨是成正比的。

上涨的 OBV 代表价格上涨,而下跌的 OBV 代表价格下跌。如果 OBV 以与价格相同的模式描绘上涨,这是一个积极的指标。而与模式的对比描绘了一个负面指标。

如何在趋势跟踪策略中使用 OBV

OBV 被用作关于价格趋势的确认工具。如果 OBV 相对于价格上涨趋势而增加,则可以推断价格趋势是可持续的。

但是,如果 OBV 相对于价格上涨趋势显示下降,那么它可能预示着价格趋势反转。

在 python 中为趋势跟踪策略绘制 OBV

python代码如下:

#OBV
data['OBV'] = ta.OBV(data.close, data.volume)/10**6data.close.plot()
plt.ylabel('关闭')
plt.show()data.OBV.plot()
plt.ylabel('余额交易量(百万)')
plt.show()

绘制的图表如下所示:

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/193941.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python学习(一)基础语法

文章目录 1. 入门1.1 解释器的作用1.2 下载1.3 基础语法输入输出语法与引号注释:变量: 数据类型与四则运算数据类型四则运算数据类型的查看type()数据类型的转换int()、int()、float() 流程控制格式化输出循环与遍历逻辑运算符list遍历字典dict遍历 跳出…

Jave 定时任务:使用Timer类执行定时任务为何会发生任务阻塞?如何解决?

IDE:IntelliJ IDEA 2022.2.3 x64 操作系统:win10 x64 位 家庭版 JDK: 1.8 文章目录 一、Timer类是什么?二、Timer类主要由哪些部分组成?1.TaskQueue2. TimerThread 三、示例代码分析四、自定义TimerTask为什么会发生任务相互阻塞的…

RVC从入门到......

RVC变声器官方教程:10分钟克隆你的声音!一键训练,低配显卡用户福音!_哔哩哔哩_bilibili配音:AI逍遥散人(已授权)关注UP主并私信"RVC"(三个字母)自动获取一键训…

飞鼠异地组网工具实战之访问k8s集群内部服务

飞鼠异地组网工具实战之访问k8s集群内部服务 一、飞鼠异地组网工具介绍1.1 飞鼠工具简介1.2 飞鼠工具官网 二、本次实践介绍2.1 本次实践场景描述2.2 本次实践前提2.3 本次实践环境规划 三、检查本地k8s集群环境3.1 检查k8s各节点状态3.2 检查k8s版本3.3 检查k8s系统pod状态 四…

unordered_map,unordered_set模拟实现

目录 一 . 底层结构--哈希 1.直接定址法 2. 除留余数法 哈希桶 3. 一些定义 二 . 模拟实现哈希表 1.哈希表框架 ​编辑 2.插入 3.查找 4 . 删除 5.解决使用问题 6.完整代码 三 .实现unordered_map, unordered_set 1. 初步实现unordered_map, unordered_set 2.…

JavaspringbootMYSQL基于移动端的团购网站26449-计算机毕业设计项目选题推荐(附源码)

目 录 摘要 1 绪论 1.1 选题背景 1.2选题目的及意义 1.3springboot框架介绍 2 基于移动端的团购网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章…

WPF 使用.ttf文件中的图标失败

本章讲述问题:WPF 使用.ttf文件中的图标失败,变成白框问题。 在WPF开发过程中,我们需要使用.ttf文件中的图标和文字,但是经常会遇到类似问题:WPF 在XMAL里增加图标字体时没办法实时显示出来只显示一个小方框&#xff0…

【Linux】-进程间通信-匿名管道通信(以及模拟一个进程池)

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …

hyperledger fabric2.4测试网络添加组织数量

!!!修改内容比较繁琐,预期未来提供模板修改 修改初始配置文件,初始添加3个组织 organizations文件夹 /cryptogen文件夹下创建文件crypto-config-org3.yaml,内容如下: PeerOrgs:# ---------------------------------------------------------------------------# Org3# ----…

获取每个部门中当前员工薪水最高的相关信息

个人网站 首发于公众号小肖学数据分析 描述 有一个员工表dept_emp简况如下: 有一个薪水表salaries简况如下: 获取每个部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门编号dept_no升序排列,以上例子输出…

NSSCTF第13页(2)

[HNCTF 2022 Week1]Challenge__rce 提示?hint 访问看到了源码 <?php error_reporting(0); if (isset($_GET[hint])) { highlight_file(__FILE__); } if (isset($_POST[rce])) { $rce $_POST[rce]; if (strlen($rce) < 120) { if (is_string($rce…

比Postman强在哪里

Postman的受众对象主要是广大开发人员&#xff0c;调测使用&#xff0c;它并不能完全满足专业测试人员需求&#xff0c;而自动化测试平台可以 1&#xff0c;Postman&#xff0c;Jmter是单机版软件&#xff0c;类似打游戏你和电脑PK&#xff0c;而很多时候是要联网和其他人团队作…