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

news2024/11/18 5:43:16

什么是趋势跟踪策略?

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

趋势是如何出现的?

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

data.close.plot()
plt.ylabel('关闭')
plt.show()

data.OBV.plot()
plt.ylabel('余额交易量(百万)')
plt.show()

绘制的图表如下所示:

 

 

 

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

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

相关文章

解析Spring Boot中的CommandLineRunner和ApplicationRunner:用法、区别和适用场景详解

在Spring Boot应用程序中,CommandLineRunner和ApplicationRunner是两个重要的接口,它们允许我们在应用程序启动后执行一些初始化任务。本文将介绍CommandLineRunner和ApplicationRunner的区别,并提供代码示例和使用场景,让我们更好…

2023年四川省安全员A证证模拟考试题库及四川省安全员A证理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2023年四川省安全员A证证模拟考试题库及四川省安全员A证理论考试试题是由安全生产模拟考试一点通提供,四川省安全员A证证模拟考试题库是根据四川省安全员A证最新版教材,四川省安全员A证大纲整理…

PL/SQL编程

一、Oracle常用函数 concat:用于连接两个字符串。 CONCAT(Oraok, .com) -- Result: Oraok.com ceil:小数点向上取整。 secect ceil(7.3) from dual --Result: 8 dual表是oracle系统为计算设计的一张临时表 select sysdate as 系统日期 from dual…

我的创作纪念日——365天

机缘 最开始我写博客没有什么特别的原因,主要是因为以下几点: 练习自己的语言组织能力 记录自己学习生活中学到的知识 主要还是想找一个好的保存 Markdown 笔记的平台。 最终我选择了 CSDN,一来是因为 CSDN 对 Markdown 语法的支持较为全面…

C++ map和set的使用

关联式容器 vector、list、deque统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;存储的是元素本身 侧重于单纯的存储数据 关联式容器也是用来存储数据的&#xff0c;里面存储的是<key, value>结构的键值对&#xff0c;在数据检索时比序列式…

java--拼图游戏

1、了解拼图游戏基本功能&#xff1a; 拼图游戏内容由若干小图像块组成的&#xff0c;通过鼠标点击图像块上下左右移动&#xff0c;完成图像的拼凑。 2、拼图游戏交互界面设计与开发&#xff1a; 通过创建窗体类、菜单、中间面板和左右面板完成设计拼图的交互界面 &#xff…

基于世界杯算法优化概率神经网络PNN的分类预测 - 附代码

基于世界杯算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于世界杯算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于世界杯优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络…

【文末附资料链接】2023年第十三届亚太杯数学建模竞赛(APMCM)优秀参考论文思路指导(持续更新中ing)

一、赛事介绍 数学建模作为一门跨学科的科学&#xff0c;不仅需要对数学知识的熟练掌握&#xff0c;还需要对实际问题的深刻理解和解决问题的创新思维。亚太杯数学建模竞赛旨在激发青年学子的创造力和团队协作精神&#xff0c;培养其在实际问题中运用数学方法解决现实挑战的能力…

list,dict使用方法

list, dict的使用 list的使用&#xff1a; ori_list [1, 2, 3] append: 使用append为列表增加1个元素4 输出增加元素之后的列表 ori_list [1, 2, 3] ori_list.append(4) print(ori_list)extend: 给定列表[8, 7, 6],将ori_list和给定的列表进行合并 输出合并后的列表 ori_l…

labelimg报错IndexError: list index out of range

labelimg报错IndexError: list index out of range 问题&#xff1a;标签顺序不对&#xff0c;修改classes.txt文件。每次重新打开labelimg就会重置classes.txt文件&#xff0c;同时其中不正确的标签顺序&#xff0c;会导致所画的框图范围超出图片大小而报错&#xff0c;因此也…

Redis篇---第八篇

系列文章目录 文章目录 系列文章目录前言一、说说 Redis 哈希槽的概念?二、Redis 常见性能问题和解决方案有哪些?三、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?前言 前些天发现了一个巨牛的人工智能学习网站…

基于寄生捕食算法优化概率神经网络PNN的分类预测 - 附代码

基于寄生捕食算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于寄生捕食算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于寄生捕食优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

URAT串口通信协议

UART是异步串行全双工总线&#xff0c;面向设备和设备之间的连接 配置相关内容 1、串口为串行通讯方式&#xff0c;代表一个时钟周期&#xff0c;只可以收发一位数据 2、115200代表什么&#xff0c;以及115200单位 单位&#xff1a;bps(比特率、二进制/秒) 115200代表&#…

VisualBox7.0.12 主机和宿舍互PING设置

设置成桥接模式 主机设置 虚拟机设置

js显示隐藏密码框

代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>.box{wi…

基于阿基米德优化算法优化概率神经网络PNN的分类预测 - 附代码

基于阿基米德优化算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于阿基米德优化算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于阿基米德优化优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xf…

鸿蒙应用开发之打包与上架

一、概述 当您开发、调试完HarmonyOS应用/元服务&#xff0c;就可以前往AppGallery Connect申请上架&#xff0c;华为审核通过后&#xff0c;用户即可在华为应用市场获取您的HarmonyOS应用/元服务。 HarmonyOS会通过数字证书与Profile文件等签名信息来保证应用的完整性&#…

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

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

CBAM注意力机制(结构图加逐行代码注释讲解)

学CBAM前建议先学会SEnet&#xff08;因为本篇涉及SEnet的重合部分会略加带过&#xff09;->传送门 ⒈结构图 下面这个是自绘的&#xff0c;有些许草率。。。 因为CBAM机制是由通道和空间两部分组成的&#xff0c;所以有这两个模块&#xff08;左边是通道注意力机制&#…

如何在el-tree懒加载并且包含下级的情况下进行数据回显-02

上一篇文章如何在el-tree懒加载并且包含下级的情况下进行数据回显-01对于el-tree懒加载&#xff0c;包含下级的情况下&#xff0c;对于回显提出两种方案&#xff0c;第一种方案有一些难题无法解决&#xff0c;我们重点来说说第二种方案。 第二种方案是使用这个变量对其是否全选…