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

什么是趋势跟踪策略?

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

趋势是如何出现的?

由于互联网的力量,我们都听说过病毒式传播。尽管这是相同的概念,但目标不同。在金融界也有 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.mzph.cn/news/148799.shtml

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

相关文章

Flume学习笔记(3)—— Flume 自定义组件

前置知识: Flume学习笔记(1)—— Flume入门-CSDN博客 Flume学习笔记(2)—— Flume进阶-CSDN博客 Flume 自定义组件 自定义 Interceptor 需求分析:使用 Flume 采集服务器本地日志,需要按照日志…

第十一周任务总结

本周任务总结 本周物联网方面主要继续进行网关的二次开发与规则引擎实现设备联动的实现 非物联网方面主要复习了docker的使用与算法的学习 1.网关的二次开发,本周将实现debug调试输出的文件下载到了网关,但网关出了问题无法连接,最终跟客服…

Libvirt-Qemu-Kvm 操作手记

(持续更新~) 本文主要用于记录在操作libvirt qemu kvm过程中遇到的问题及原因分析。 Hugepage 让qemu使用大页可以减少tdp的size,一定程度上可以提高性能;使用大页可以用memfd或者file backend。 memfd 操作步骤如下: 在系统中reserv…

数据结构 堆

手写堆&#xff0c;而非stl中的堆 如何手写一个堆&#xff1f; //将数组建成堆 <O(n) for (int i n / 2;i;i--) //从n/2开始down down(i); 从n/2元素开始down&#xff0c;最下面一层元素的个数是n/2&#xff0c;其余上面的元素的个数是n/2&#xff0c;从最下面一层到最高层…

electron使用better-sqlite3打包失败(electron打包有进程没有界面)

remove *\chrome_100_percent.pak: Access is denied. 解决&#xff1a; 管理员权限执行&#xff1a;taskkill /IM 你的进程名.exe /F&#xff0c;再次执行build electron使用better-sqlite3打包后有进程没有界面 原因是代码及依赖包安装有误&#xff0c;模块丢失。主要分享的…

Web前端—移动Web第二天(空间转换、动画、综合案例:全名出游)

版本说明 当前版本号[20231118]。 版本修改说明20231118初版 目录 文章目录 版本说明目录移动 Web 第二天01-空间转换空间转换简介平移视距旋转左手法则rotate3d-了解立体呈现案例-3d导航缩放 02-动画动画实现步骤animation复合属性animation拆分写法案例-走马灯精灵动画多组…

每天一道算法题(六)——返回一组数字中所有和为 0 且不重复的三元组

文章目录 前言1、问题2、示例3、解决方法4、效果5、注意点 前言 注意&#xff1a;答案中不可以包含重复的三元组。 1、问题 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] n…

WMS仓库管理系统库位分配规划

分配说明 每个商品必须至少有一个分拣位&#xff08;整箱或拆零均可&#xff09;如果只设了拆零分拣位&#xff0c;则入库不分配存储位&#xff0c;只上拆零分拣位&#xff0c;对于DPS分拣商品是一品固定一个货位&#xff0c;对于RF分拣商品是动态分配货位&#xff0c;一个商品…

记录我常用的免费API接口

目录 1.随机中英文句子 2.随机中英文句子&#xff08;带图片和音频&#xff09; 3.随机一句诗 4.随机一句话 5.随机一句情话 6. 随机一句舔狗语录 7.历史上的今天 8.获取来访者ip地址 9&#xff1a;获取手机号信息 10. 垃圾分类查询 11.字典查询 12.QQ信息查询 1.随…

Mybatis-Plus《学习笔记 22版尚硅谷 》——感谢【尚硅谷】官方文档

Mybatis-Plus《学习笔记 22版尚硅谷 》 一、MyBatis-Plus1.简介2.特性3.支持数据库4.框架结构5.官方地址 二、入门案例1.开发环境2.建库建表3.创建工程4.配置编码5.测试查询 三、增删改查1.BaseMapper<T>2.调用Mapper层实现CRUD2.1 插入2.2 删除a、根据ID删除数据b、根据…

Node.js之TCP(net)

Hi I’m Shendi Node.js之TCP&#xff08;net&#xff09; 最近使用Nodejs编写程序&#xff0c;需要用到自己编写的分布式工具&#xff0c;于是需要将Java版的用NodeJs重新写一遍&#xff0c;需要使用到TCP通信&#xff0c;于是在这里记录下Node.js TCP 的使用方法 依赖 需要使…

【Python进阶】近200页md文档14大体系知识点,第4篇:linux命令和vim使用

本文从14大模块展示了python高级用的应用。分别有Linux命令&#xff0c;多任务编程、网络编程、Http协议和静态Web编程、htmlcss、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。 全套Python进阶笔记地址…

黑马程序员 计算机网络(笔记)

参考文章&#xff1a;【黑马程序员】计算机网络概述~ 程序员必须掌握的入门基础知识&#xff01; 参考文章&#xff1a;黑马程序员Linux运维工作场景解决方案零基础到就业 参考文章&#xff1a;网络安全运维进阶教程&#xff0c;运维工程师深度学习教程 文章目录 linux入门到…

Jenkinsfile+Dockerfile前端vue自动化部署

前言 本篇主要介绍如何自动化部署前端vue项目 其中&#xff0c;有两种方案&#xff1a; 第一种是利用nginx进行静态资源转发&#xff1b;第二种方案是利用nodejs进行启动访问&#xff1b; 各个组件版本如下&#xff1a; Docker 最新版本&#xff1b;Jenkins 2.387.3nginx …

基于STC12C5A60S2系列1T 8051单片的模数芯片ADC0809实现模数转换应用

基于STC12C5A60S2系列1T 8051单片的模数芯片ADC0809实现模数转换应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍模数芯片ADC0809介绍通过模数芯片ADC0809把电压模…

Flutter笔记:拖拽手势

Flutter笔记 拖拽手势 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134485123 目 录 1. 概述2. 垂直拖…

Adobe Illustrator——原创设计的宝藏软件

今天&#xff0c;我们来谈谈一款在Adobe系列中曾经多次给大家都提到的原创性极强的设计理念丰富的矢量图形编辑软件——Adobe Illustrator。 Adobe Illustrator&#xff0c;其定位是一款与Photoshop相类似对矢量图形进行编辑的软件。 Adobe Illustrator&#xff0c;作为全球最著…

【自然语言处理】【大模型】赋予大模型使用工具的能力:Toolformer与ART

赋予大模型使用工具的能力&#xff1a;Toolformer与ART ​ 本文介绍两种赋予大模型使用外部工具能力的方法&#xff1a;Toolformer和ART。 Toolformer论文地址&#xff1a;https://arxiv.org/pdf/2302.04761.pdf ART论文地址&#xff1a;https://arxiv.org/pdf/2303.09014.pd…

学习网络编程No.10【深入学习HTTPS】

引言&#xff1a; 北京时间&#xff1a;2023/11/14/18:45&#xff0c;因为种种原因&#xff0c;上个月的文章昨天才更新&#xff0c;目前处于刷题前夕&#xff0c;算法课在看了。这次和以前不一样&#xff0c;因为以前对知识框架没有很好的理念&#xff0c;并不清楚相关知识要…

三天吃透Redis面试八股文

目录&#xff1a; Redis是什么&#xff1f;Redis优缺点&#xff1f;Redis为什么这么快&#xff1f;讲讲Redis的线程模型&#xff1f;Redis应用场景有哪些&#xff1f;Memcached和Redis的区别&#xff1f;为什么要用 Redis 而不用 map/guava 做缓存?Redis 数据类型有哪些&…