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

什么是趋势跟踪策略?

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

趋势是如何出现的?

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

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

相关文章

SQL INSERT INTO 语句详解:插入新记录、多行插入和自增字段

SQL INSERT INTO 语句用于在表中插入新记录。 INSERT INTO 语法 可以以两种方式编写INSERT INTO语句: 指定要插入的列名和值: INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);如果要为表的所有列添加值,则无需在SQL…

系列六、JVM的内存结构【栈】

一、产生背景 由于跨平台性的设计,Java的指令都是根据栈来设计的,不同平台的CPU架构不同,所以不能设计为基于寄存器的。 二、概述 栈也叫栈内存,主管Java程序的运行,是在线程创建时创建,线程销毁时销毁&…

LabVIEW编程开发NI-USRP

LabVIEW编程开发NI-USRP 可编程性是SDR的关键特性,它使人们能够将无线电外围设备转换为先进的无线系统。USRP是市场上最开放、最通用的SDR,可帮助工程师在主机和FPGA上使用各种软件开发工具构建系统。 有多种选项可用于对基于SDR的系统的主机进行编程。…

Pytorch D2L Subplots方法对画图、图片处理

问题代码 def show_images(imgs, num_rows, num_cols, titlesNone, scale1.5): #save """绘制图像列表""" figsize (num_cols * scale, num_rows * scale) _, axes d2l.plt.subplots(num_rows, num_cols, figsizefigsize) axes axes.flatten…

springMVC学习笔记-请求映射,参数绑定,响应,restful,响应状态码,springMVC拦截器

目录 概述 springMVC做了什么 springMVC与struts2区别 springMVC整个流程是一个单向闭环 springMVC具体的处理流程 springMVC的组成部分 请求映射 RequestMapping 用法 属性 1.value 2.method GET方式和POST方式 概述 HTTP给GET和POST做了哪些规定 GET方式&…

HTML5学习系列之实用性标记

HTML5学习系列之实用性标记 前言实用性标记高亮显示进度刻度时间联系信息显示方向换行断点标注 总结 前言 学习记录 实用性标记 高亮显示 mark元素可以进行高亮显示。 <p><mark>我感冒了</mark></p>进度 progress指示某项任务的完成进度。 <p…

vscode编写verilog的插件【对齐、自动生成testbench文件】

vscode编写verilog的插件&#xff1a; 插件名称&#xff1a;verilog_testbench,用于自动生成激励文件 安装教程&#xff1a;基于VS Code的Testbench文件自动生成方法——基于VS Code的Verilog编写环境搭建SP_哔哩哔哩_bilibili 优化的方法&#xff1a;https://blog.csdn.net…

无需添加udid,ios企业证书的自助生成方法

我们开发uniapp的app的时候&#xff0c;需要苹果证书去打包。 假如申请的是个人或company类型的苹果开发者账号&#xff0c;必须上架才能安装&#xff0c;异常的麻烦&#xff0c;但是有一些app&#xff0c;比如企业内部使用的app&#xff0c;是不需要上架苹果应用市场的。 假…

庖丁解牛:NIO核心概念与机制详解 02 _ 缓冲区的细节实现

文章目录 PreOverview状态变量概述Position 访问方法 Pre 庖丁解牛&#xff1a;NIO核心概念与机制详解 01 接下来我们来看下缓冲区内部细节 Overview 接下来将介绍 NIO 中两个重要的缓冲区组件&#xff1a;状态变量和访问方法 (accessor) 状态变量是"内部统计机制&quo…

vmware workstation pro 17.5 安装 macos 13.5.2 虚拟机超详细图文教程

前言 本文很细&#xff0c;甚至有点墨迹&#xff0c;主要为了方便从来没用过 vmware 的新人&#xff0c;其实大部分步骤和正常安装虚拟机没有区别&#xff0c;详细贴图以方便大家对比细节 参考文章 感谢大佬们的无私分享 https://blog.csdn.net/qq_19731521/article/details…

记录将excel表无变形的弄进word里面来

之前关于这个问题记录过一篇文章&#xff1a; 将excel中的表快速复制粘贴进word中且不变形-CSDN博客 今天记录另外一种方法&#xff1a;举例表述&#xff0c;excel表如图&#xff1a; 按F12&#xff0c;出现“另存为...”对话框&#xff0c;选择“单个文件网页”&#xff0c;…

String字符串性能优化的几种方案

原创/朱季谦 String字符串是系统里最常用的类型之一&#xff0c;在系统中占据了很大的内存&#xff0c;因此&#xff0c;高效地使用字符串&#xff0c;对系统的性能有较好的提升。 针对字符串的优化&#xff0c;我在工作与学习过程总结了以下三种方案作分享&#xff1a; 一.优…

BUG:编写springboot单元测试,自动注入实体类报空指针异常

原因:修饰测试方法的Test注解导入错误 造成错误的原因是 import org.junit.Test;正确的应该是 import org.junit.jupiter.api.Test前者是Junit4,后者是Junit5 junit4的使用似乎要在测试类除了添加SpringbootTest还要添加RunWith(SpringRunner.class) 同时要注意spring-boot-s…

智能驾驶汽车虚拟仿真视频数据理解(一)

赛题官网 datawhale 赛题介绍 跑通demo paddle 跑通demo torch 提交的障碍物取最主要的那个&#xff1f;不考虑多物体提交。障碍物&#xff0c;尽可能选择状态发生变化的物体。如果没有明显变化的&#xff0c;则考虑周边的物体。车的状态最后趋于减速、停止&#xff0c;时序…

搭建网关服务器实现DHCP自动分配、HTTP服务和免密登录

目录 一. 实验要求 二. 实验准备 三. 实验过程 1. 网关服务器新建网卡并改为仅主机模式 2. 修改新建网卡IP配置文件并重启服务 3. 搭建网关服务器的dhcp服务 4. 修改server2网卡配置文件重启服务并效验 5. 设置主机1的网络连接为仅主机模式 6. 给server2和网关服务器之…

公共字段自动填充-@TableField的fill实现(2)

TheadLocal 客户端发送的每次http请求&#xff0c;在服务端都会分配新的线程。因此登录检查过滤器、controller、元数据对象处理器属于一个线程。 TheadLocal是线程的局部变量&#xff1a; TheadLocal常用方法&#xff1a; 如何在元数据对象处理器中获取当前登录用户的id&…

qt-C++笔记之两个窗口ui的交互

qt-C笔记之两个窗口ui的交互 code review! 文章目录 qt-C笔记之两个窗口ui的交互0.运行1.文件结构2.先创建widget项目&#xff0c;搞一个窗口ui出来3.项目添加第二个widget窗口出来4.补充代码4.1.qt_widget_interaction.pro4.2.main.cpp4.3.widget.h4.4.widget.cpp4.5.second…

高防IP是什么?如何隐藏源站IP?如何进行防护?

高防IP是针对互联网服务器遭受大流量的DDoS攻击后导致服务不可用的情况下,推出的付费增值服务。用户在数据不转移的情况下,就可以通过配置高防IP , 将攻击流量引流到高防|P,确保源站的稳定可靠。高防IP采用的技术手段包括DDoS防护、WAF ( Web应用程序防火墙)等,它能够有效抵御来…

C#,数值计算——插值和外推,BaryRat_interp的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 重心有理插值对象 /// Barycentric rational interpolation object. /// After constructing the object, /// call interp for interpolated values. /// Note t…

论文阅读:JINA EMBEDDINGS: A Novel Set of High-Performance Sentence Embedding Models

Abstract JINA EMBEDINGS构成了一组高性能的句子嵌入模型&#xff0c;擅长将文本输入转换为数字表示&#xff0c;捕捉文本的语义。这些模型在密集检索和语义文本相似性等应用中表现出色。文章详细介绍了JINA EMBEDINGS的开发&#xff0c;从创建高质量的成对&#xff08;pairwi…