建立量化交易趋势跟踪策略的五个指标
趋势跟踪策略是您只需顺势而为的策略,即在价格上涨时买入,在价格开始下跌时卖出。在趋势跟踪策略中,人们的目标不是预测或预测,而只是关注市场上的任何新兴趋势。
我们谈论:
- 趋势是如何出现的?
- 如何实施趋势跟踪策略?
我们在本文中介绍了以下趋势指标:
趋势是如何出现的?
由于互联网的力量,我们都听说过病毒式传播。尽管这是相同的概念,但目标不同。在金融界也有 FOMO(害怕错过),尽管在这里,原因是普遍希望站在胜利的一方。情绪驱动人。
虽然我们使用算法交易(即量化交易策略)来抑制情绪化交易,但同样也可以用于利用情绪并将其货币化。
如何实施趋势跟踪策略?
趋势跟踪策略旨在利用市场情景获利。原因是高风险和同样高的收益。
影响者和市场领导者的意见形成了一种普遍的看法,并围绕普遍感兴趣的问题引起了持续的关注。进一步阐述这一特定的投资策略——趋势跟踪策略的功能基于对市场数据的技术分析。
由于目标是衡量与交易有关的无形方面,因此首要任务是确定控制情况的参数。
没有单一指标可以预测购买或出售证券的安全方式。然而,有一些著名的经常被用来获得分析视角和逻辑决策。
以下是有助于创建趋势跟踪策略的最佳交易指标。
移动平均线
移动平均线指标是一种广泛使用的技术指标,用于做出不基于一两次价格波动的决定。
可以使用一组历史数据来观察股票在预定时间段内的价格波动。这同样有助于描绘趋势流的总体方向。
该技术用于为未来的结果提供支持和建立弹性。
如何在趋势跟踪策略中使用移动平均线
移动平均线提供了一个清晰的想法,即是对股票进行多头还是空头头寸。如果股票呈现负趋势,即价格低于移动平均线,则对该股票做空(卖出)。
另一方面,如果股价高于简单移动平均线,则必须在股票上做多(买入),因为人们预计股价会进一步上涨。
在 Python 中为趋势跟踪策略绘制移动平均线
在绘制移动平均线之前,我们将首先定义一个时间段并选择一个公司股票,以便我们对其进行分析。对于本文,让我们将范围保持为 2017 年 1 月 1 日至 2018 年 1 月 1 日,要使用的公司详细信息是特斯拉(TSLA)。
因此,导入相关库并在 python 中定义句点在以下代码中给出:
从 iexfinance 导入 get_historical_data
从日期时间导入日期时间
将熊猫导入为 pd
开始 = 日期时间(2017,1,1)
结束 = 日期时间(2018,1,1)
数据= get_historical_data('TSLA',开始=开始,结束=结束,输出格式='熊猫')
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()
绘制的图表如下所示:
布林带策略源码
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()
绘制的图表如下所示:
相对强弱指数
#相对强弱指数
相对强弱指数,即RSI 指标使用以下公式计算:
RSI = 100 – 100 / (1 + RS)
其中 RS = 指定时间范围内上涨时段的平均收益 / 指定时间范围内下跌时段的平均损失。
RSI 用于衡量价格波动的速度和变化。该指标提供了证券近期在股市中的表现的一个概念。它衡量股票在 0 到 100 范围内的强度。
如何在趋势跟踪策略中使用 RSI
股票在 70 范围内被视为超买,在 30 以下被超卖。您可以相应地修改您的交易策略。
在 Python 中为趋势跟踪策略绘制 RSI
python代码如下:
# 相对强弱指数
数据['RSI'] = ta.RSI(data.close, timeperiod=14)
# 绘制 RSI
无花果,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
数据['OBV'] = ta.OBV(data.close, data.volume)/10**6
data.close.plot()
plt.ylabel('关闭')
plt.show()
数据.OBV.plot()
plt.ylabel('余额交易量(百万)')
plt.show()
绘制的图表如下所示: