Python量化交易学习——Part8:带有技术因子指标的多因子策略

技术面分析又称技术分析(Technical Analysis ),是股票投资分析的专业术语。技术分析研究以往价格和交易量数据,进而预测未来的价格走向。此类型分析侧重于图表与公式的构成,以捕获主要和次要的趋势,并通过估测市场周期长短,识别买入 / 卖出机会。根据您选择的时间跨度,您可以使用日内(每 5 分钟、每 15 分钟、每小时)技术分析,也可使用每周或每月技术分析。
技术因子主要是作为基本面选股的一个重要补充,解决基本面选股策略中对买入时机的选择有所欠缺的问题。
技术因子的来源可以有多个方面,比如我们可以根据自身的数据处理知识自行编写技术因子,也直接调用第三方函数库的函数作为技术因子,甚至还可以将前两种方式融合,对函数进行重构,以实现自己特有目的的技术因子

技术因子构建策略1:自行编写技术因子

在这里我随便写一个作为例子:

假设技术因子为:对股票过去5天的成交量和最高价进行排名,再取相关系数

# coding=utf-8
import gm.api as gm
import talib
import numpy as np
import pandas as pd
from scipy.stats import rankdata
import datetime
gm.set_token("自己的token码")
"""
1、set_token 设置用户token, 如果token不正确, 函数调用会抛出异常;
2、调用数据查询函数, 直接进行数据查询。
"""
def eg(symbol,now):last_day = gm.get_previous_trading_date("SHSE",now)data = gm.history_n(symbol=symbol,frequency="1d",count=5,end_time=last_day,fields="volume,high",adjust=gm.ADJUST_PREV,df=True)volume = data["volume"].valueshigh = data["high"].valueshigh_rank = rankdata(high)#根据最高价大小进行排名print(high_rank)volume_rank = rankdata(volume) #根据成交量大小进行排名print(volume_rank)corr =np.corrcoef(high_rank,volume_rank)return corr[0][1]day_time, hour_and_mins = str(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')).split(" ")
corr = eg("SZSE.002415",day_time)
print(corr)

由此,我们得到了一个技术因子,我们可以用过这个技术因子对股票进行买卖回测,看该技术因子的实战效果如何。

技术因子构建策略2:调用talib库中现成的技术因子

这个我们在前面章节已经讲过,我这里不再详述,以获取EMA均线因子为例,代码如下:

from gm.api import *
import talib
import numpy as np
#MA_Type: 0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3 (Default=SMA)
# 与数据库进行通信,将账号密码加密后发送给服务器

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

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

相关文章

Charles抓包工具系列文章(二)-- Repeat 回放http请求

一、什么是http请求回放 当我们对客户端进行抓包,经常会想要重试http请求,或者改写原有部分进行重新请求,都需要用到回放http请求。 还有一种场景是压力测试,对一个请求进行重复请求多少次,并加上适当的并发度。 这里…

【PythonWeb开发】Flask视图函数传递数据到前端模版的方法总结。

在Flask框架中,视图函数返回响应有四种常见方式,都得掌握。 一、返回文本内容 可以直接返回字符串,Flask会自动将其转换为一个响应对象,具有默认的text/html内容类型。 app.route(/return_text) def return_text():return "…

力扣第211题“添加与搜索单词 - 数据结构设计”

关注微信公众号 数据分析螺丝钉 免费领取价值万元的python/java/商业分析/数据结构与算法学习资料 在本篇文章中,我们将详细解读力扣第211题“添加与搜索单词 - 数据结构设计”。通过学习本篇文章,读者将掌握如何实现一个支持通配符搜索的字典数据结构&…

WebStorm 配置 PlantUML

1. 安装 PlantUML 插件 在 WebStorm 插件市场搜索 PlantUML Integration 并安装,重启 WebStorm 使插件生效。 2. 安装 Graphviz PlantUML 需要 Graphviz 来生成图形。使用 Homebrew 安装 Graphviz: 打开终端(Terminal)。确保你…

java的Nio演进

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 java的Nio演进 前言简介正文总结 前言 在JDK1.4推出JavaNIO之前,基于Java的所有Socket通信都采用了同步阻塞模式 (BIO),这种一请求一应答的通信模型简化了上层的应用开发,但…

C语言小例程28/100

题目&#xff1a;利用递归方法求5!。 程序分析&#xff1a;递归公式&#xff1a;fnfn_1*4! #include <stdio.h>int main() {int i;int fact(int);for(i0;i<6;i){printf("%d!%d\n",i,fact(i));} } int fact(int j) {int sum;if(j0){sum1;} else {sumj*fac…

消防认证-防火门

一、消防认证 消防认证是指消防产品符合国家相关技术要求和标准&#xff0c;且通过了国家认证认可监督管理委员会审批&#xff0c;获得消防认证资质的认证机构颁发的证书&#xff0c;消防产品具有完好的防火功能&#xff0c;是住房和城乡建设领域验收的重要指标。 二、认证依…

嵌入式系统中串口通信粘包问题的解决方案(C语言)

文章目录 0. 引言1. 什么是粘包问题&#xff1f;2. 粘包问题的影响3. 处理粘包问题的思路4. 不同处理方法的优缺点分析5. 实现方案5.1 数据包格式5.2 代码实现 0. 引言 在嵌入式系统中&#xff0c;串口通信是一种常见且重要的数据传输方式。然而&#xff0c;由于硬件和软件的限…

闪迪sd卡视频格式化数据恢复方法,你了解吗

咨询&#xff1a;“我不小心将闪迪SD卡格式化了&#xff0c;里面的重要视频文件全都不见了。我感到非常焦虑&#xff0c;因为这些视频对我来说意义非凡。现在急需找到方法来恢复&#xff01;&#xff01;” 在数字时代&#xff0c;SD卡已成为我们日常生活中不可或缺的数据存储设…

python中数据的作用域

一、命名空间 在 Python 中&#xff0c;命名空间是一个系统&#xff0c;它用于确保名字的唯一性&#xff0c;并防止命名冲突。命名空间是一个存储变量名称&#xff08;或者更广泛地说&#xff0c;标识符&#xff09;与对象之间映射的抽象概念。每个变量名你在程序中创建&#x…

本篇内容:ArkTS开发系列之事件(2.8.1触屏、键鼠、焦点事件)

上篇回顾&#xff1a; ArkTS开发系列之导航 (2.7动画&#xff09; 本篇内容&#xff1a;ArkTS开发系列之事件&#xff08;2.8.1触屏、键鼠、焦点事件&#xff09; 一、知识储备 1. 触屏事件&#xff1a;包括点击事件、拖拽事件、触摸事件。 点击事件 Button()....onClick(…

msvcp120.dll丢失怎么办,找不到msvcp120.dll的多种解决方法

最近&#xff0c;我在运行一个程序时遇到了一个错误&#xff0c;系统提示找不到msvcp120.dll文件&#xff0c;无法继续执行代码。这让我感到非常困扰&#xff0c;因为这个问题导致我无法正常运行这个程序。经过一番搜索和尝试&#xff0c;我找到了几种修复这个问题的方法&#…

如何开发、使用 Starter

开发 第一步&#xff1a;创建starter工程hello-spring-boot-starter并配置pom.xml文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchem…

SpringBoot优点达项目实战:项目初始化(一)

SpringBoot优点达项目实战&#xff1a;项目初始化&#xff08;一&#xff09; 文章目录 SpringBoot优点达项目实战&#xff1a;项目初始化&#xff08;一&#xff09;1、项目介绍2、项目搭建3、依赖导入4、数据准备 1、项目介绍 技术框架 SpringbootmybatisPlusvueknife 2、项目…

什么是生成式AI?

生成式AI&#xff08;Generative AI&#xff09;是一类利用机器学习和人工智能技术来生成内容的系统。这些系统可以创建文本、图像、音乐、视频等各种类型的内容。生成式AI通过学习大量的数据来理解和模仿人类的创作过程&#xff0c;从而生成新的、原创的内容。以下是生成式AI的…

创建App

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在Django项目中&#xff0c;推荐使用App来完成不同模块的任务&#xff0c;通过执行如下命令可以启用一个应用程序。 python manage.py startapp app…

RT-Thread的Finsh实现学习

学习原因 工作中&#xff0c;使用同事开发的调试软件&#xff0c;输入参数打印的函数名就可以打印参数&#xff0c;但看不到代码实现&#xff0c;只能用自己微薄的知识积累去猜一下&#xff0c;之前尝试过&#xff0c;专门写一个函数&#xff0c;去解析编译生成的map文件&#…

名侦探李先生第一话:谁是真正的凶手(只出现一次的数字相关题解(力扣)+位操作符回忆)

引子&#xff1a;我们在之前的案子中破解过基础的单身狗问题&#xff0c;那面对更有挑战的案子&#xff0c;且看李先生如何破局&#xff0c;那下凶手&#xff01; 复习&#xff1a; 1&#xff0c;位操作符&#xff1a; 正整数原&#xff0c;反&#xff0c;补码都相同 首位是…

RocketMQ如何添加JVM监控

这里是小奏,觉得文章不错可以关注公众号小奏技术 JVM监控选型 本次JVM监控我们采用prometheus官方提供的jmx_exporter来实现 RocketMQJVM开发 整体目录 1. 新增agent目录 我们在distribution目录新增一个agent模块&#xff0c;然后添加两个文件 jmx_prometheus_javaagent-…

NtripShare2024年第二季度主要技术进展

NtripShare Cloud GNSS解算云平台方面 1、解算引擎增加根据卫星多路径效应自动剔除卫星的算法。 2、解算引擎增加解算时间段限制&#xff08;发现贵州某地在晚12点周期性效果变差&#xff09;。 3、增加2000坐标至地方坐标系转换的支持(七参数、四参数、TGO高程拟合&#x…