量化交易背离策略是指根据价格与指标(如RSI、MACD等)之间的背离关系,来预测价格的走势。

在市场上,当价格趋势强劲时,技术指标往往滞后于价格,此时价格与指标之间的关系是正相关的;相反,当价格趋势弱劲时,技术指标往往领先于价格,此时价格与指标之间的关系是负相关的。因此,可以根据价格与指标的相关关系,来预测价格的走势。

以下是Python代码示例:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from talib import RSI# 读取数据
data = pd.read_csv("data.csv")# 计算RSI指标
price = data["close"]
rsi = RSI(price, timeperiod=14)# 绘图
plt.plot(price, label="price")
plt.plot(rsi, label="RSI")
plt.legend()
plt.show()

以上代码示例是通过Pandas库读取数据,并使用Talib库计算RSI指标,最后使用Matplotlib库绘图展示数据。可以根据实际情况调整参数,以达到更佳的效果。

那么,在实际的交易过程中,如何使用背离策略呢?

一种常见的方法是,在价格与指标出现背离关系时,买入或卖出证券。比如,当价格创新高,而RSI指标却未能创新高,此时出现了价格与RSI指标之间的背离关系,可以考虑卖出证券;相反,当价格创新低,而RSI指标却未能创新低,此时出现了价格与RSI指标之间的背离关系,可以考虑买入证券。

以下是Python代码示例:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from talib import RSI# 读取数据
data = pd.read_csv("data.csv")# 计算RSI指标
price = data["close"]
rsi = RSI(price, timeperiod=14)# 判断是否出现背离关系
if rsi[-1] < 30 and price[-1] > price[-2]:print("Buy")
elif rsi[-1] > 70 and price[-1] < price[-2]:print("Sell")
else:print("Hold")

以上代码示例是通过判断最后一个数据的价格与RSI指标的关系,决定是否买入、卖出或持有证券。实际使用中,需要对代码进行更加详细的实现。

需要注意的是,背离策略不是万能的,在实际交易中需要结合其他因素考虑。

另外,虽然背离策略可以在一定程度上提高交易精度,但不能保证100%的交易成功率,同时也不能消除交易风险。使用背离策略时,需要根据自己的风险偏好进行灵活选择和调整。

现在,让我们通过一段 Python 代码来模拟背离策略的实现过程:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt# 读取历史数据
df = pd.read_csv('stock_data.csv')# 计算收盘价的移动平均值和标准差
window = 20
mean = df['close'].rolling(window=window).mean()
std = df['close'].rolling(window=window).std()# 计算上下轨
upper_band = mean + 2 * std
lower_band = mean - 2 * std# 计算买入和卖出信号
df['buy_signal'] = np.where(df['close'] > upper_band, 1, 0)
df['sell_signal'] = np.where(df['close'] < lower_band, 1, 0)# 计算趋势
trend = np.where(df['close'] > mean, 1, -1)
df['trend'] = trend# 检查背离
df['divergence'] = np.where((trend == 1) & (df['buy_signal'] == 0), 1,np.where((trend == -1) & (df['sell_signal'] == 0), -1, 0))# 绘制趋势图和背离图
plt.plot(df['close'], label='close')
plt.plot(upper_band, label='upper_band')
plt.plot(lower_band, label='lower_band')
plt.legend()
plt.show()plt.plot(df['divergence'], label='divergence')
plt.legend()
plt.show()

"背离"策略基于寻找股价和技术指标之间的不一致性。当股价向上,技术指标向下时,这可能意味着市场对该证券的信心有所减弱,因此该策略可能在此情况下做空。相反,当股价向下,技术指标向上时,这可能意味着市场对该证券的信心有所增强,因此该策略可能在此情况下做多。

以下是示例python代码,实现对证券的背离策略:

import numpy as np
import pandas as pd
import matplotlib.pyplot as pltdef backtesting(close, sma, threshold=0.03):# 计算收盘价与简单移动平均线之间的差距gap = close - sma# 创建空列表用于存储交易信号signals = []# 遍历差距for i in range(1, len(gap)):# 如果差距从正变为负,则产生做空信号if gap[i-1] > 0 and gap[i] < 0 and abs(gap[i-1] - gap[i]) / close[i-1] > threshold:signals.append(-1)# 如果差距从负变为正,则产生做多信号elif gap[i-1] < 0 and gap[i] > 0 and abs(gap[i-1] - gap[i]) / close[i-1] > threshold:signals.append(1)# 否则不产生交易信号else:signals.append(0)# 返回交易信号列表return signals# 读取股票数据
data = pd.read_csv('stock_data.csv')
# 计算简单

量化交易策略 背离策略相关推荐

  1. Python量化交易03——海龟策略

    参考书目:深入浅出Python量化交易实战 海龟策略也是经典中的经典.其核心要点是:在股价超过过去的N天交易日的最高点时是买入信号,跌破过去的N天交易日的最低点时是卖出信号.最高点和最低点的通道被称为 ...

  2. 分享聚宽量化交易执行选股策略的执行过程

    分享聚宽量化交易执行选股策略的执行过程: 首先就是需要用不同的函数处理不同的数据,比如上市数据,要用run_query()函数处理,财务与估值数据要用get_fundamentals()函数处理.以及 ...

  3. 4、Python量化交易-双均线策略

    目录 一.数据准备 二.5日均线和30日均线 1 - 均线的概念 2 - 计算5日均线与30日均线 3 - 画出MA5和MA30 三.金叉和死叉 1 - 金叉和死叉概念 2 - 分析所有金叉日期和死叉 ...

  4. python量化交易--择时策略

    1.在banban网爬取所有A股的股票名称和代码. 观察板板网站的股票,将在深圳上市和上海上市的A股信息爬取并保存到本地文件 2.传入股票代码,利用tushare api提取股票的所有历史数据,对股票 ...

  5. 量化交易 米筐 策略初始设置与运行流程

    策略运行流程熟悉 1.初始运行信息 2.编写策略的逻辑 3.策略的一个分析 1.策略初始设置介绍 基础设置:指定回测的起止日期.初始资金以及回测频率 起止日期:在历史数据,回测区间(5-10年) 初始 ...

  6. 量化交易学习-RSI策略1

    这里写自定义目录标题 介绍 主要策略 获取金融数据 Backtrader 基础设置 添加价格数据 交易信号一 超买超卖线 介绍 RSI就不多介绍了,主要灵感来自于蔡立耑写的<量化投资 以Pyth ...

  7. 量化交易入门笔记-策略回测与评估

    首先,编写一个简单的"双均线量化策略" 代码如下: def initialize(context):"""双均线量化策略的初始化函数"&qu ...

  8. python量化交易--因子选股策略

    Fama-French三因子选股策略,三因子分别为  市场因子(股指).市值因子.账面市值比因子 三因子模型的具体步骤: 1.对股票按照市值和账面市值比分组,共计六组,市值按大小市值各50%分,账面市 ...

  9. 量化交易——布林带策略

    一.布林带策略介绍 布林带/布林线/保利加通道(Bollinger Band):由三条轨道线组成,其中上下两条线分别可以看成是价格的压力线和支撑线,在两条线之间是一条价格平均线. 一般来说,股价会运行 ...

最新文章

  1. Sql Server 日志清理 (数据库压缩方法)
  2. springcloud13---zuul
  3. 刘浩(专业打劫三十年)20155307的预备作业02:
  4. H3C 单区域OSPF配置示例二
  5. 明略数据(现在)是一家怎样的公司?
  6. Java Web底层(1)
  7. 凯撒密码加密器(命令行版)
  8. 如果大一光靠自己学,华为HICE能过的几率大吗?
  9. 英文垃圾邮件分类机器学习篇——带你一次看个爽
  10. C++基础之detele和detele[]
  11. The full stack trace of the root cause is available in the server logs.
  12. Quartz配置上次任务没有执行完,下次任务推迟执行
  13. CES2020 | 小牛电动成为科技出行的“另类”标杆
  14. 什么是Google广告:AdSence令数多人致富
  15. 光纤收发器具体是怎么使用的?光纤收发器使用方法详解!
  16. Arduino Uno 实验6——LM35温度传感器
  17. 软件测试职业发展规划
  18. 【直播聊天室】Android开发源码
  19. 常用搜索引擎搜索串【ZT+原创】
  20. 帆软报表当数据为空,显示0

热门文章

  1. 坚持不懈的学习吧,少年
  2. NOI-OJ 3.9 ID:3344 冷血格斗场
  3. access mysql连接字符串_【技巧】连接不同版本Access的各种连接字符串
  4. java relativelayout,Java RelativeLayout.removeView方法代码示例
  5. 很文雅,很不错的句子(些许伤感)
  6. Java实现 LeetCode 203 移除链表元素
  7. XMLHttpRequest 详解
  8. java valueof的用法_Java中String.valueOf()方法的使用
  9. Ubuntu常见问题汇总以及安装应用(QQ、微信、迅雷等)
  10. IT职场-和你说说现场应用工程师(FAE)