如何简单的做量化交易

news2024/11/19 6:33:29

介绍

首先我不是量化工程师,我只是个后端工程师;其次我对量化也不感兴趣,自己有几把刷子还是了解的,自己不适合做量化交易:

  • 自己没有优秀的模型设计能力
  • 自己是个长线投资,一般一个股票都是至少拿一年以上,短线的涨跌无所谓
  • 99%的量化模型,现实其实没什么价值,看看K线图也不错。优秀的模型比拼的是网络延时和算力。

但通过编程来改善选股还是有其一定的价值。

语言的选择

python! 实在是太方便了,你只要有一丢丢的编程基础就可以了。如下几行代码就可以获得某个股票最近一段时间的5日均值和收盘价格:

# ctp接口,通过tushare接口获取信息

import tushare as ts
import datetime as dt
import matplotlib.pyplot as plt

# 无效的key,请自行去官网申请
ts.set_token('xxxxxxxxxxxx3036b50fd47b983bf51dc843fe3d') 


def getHistoryTrade(pro, code, lastDay):
    """
    查找到最近的数据
    code:股票代码
    lastDay: 最近几日
    """
    end_dt = dt.datetime.now().strftime('%Y%m%d')
    time_temp = dt.datetime.now() - dt.timedelta(days=lastDay)
    start_dt = time_temp.strftime('%Y%m%d')

    df = pro.daily(ts_code=code, start_date=start_dt, end_date=end_dt)

    # 倒序
    df = df.iloc[::-1]

    # 计算5日ma值
    df['ma5'] = df['close'].rolling(window=5).mean()

	# 图表方式呈现
    plt.plot(df['trade_date'], df['close'],label='close')
    plt.plot(df['trade_date'], df['ma5'],label='5ma')
    plt.show()


if __name__ == "__main__":
    pro = ts.pro_api()
    
    # 显示新城控股 最新40个交易日的信息
    getHistoryTrade(pro,'601155.SH',40)

说明

python 环境的安装

我建议在windows下安装,可以使用anaconda, 这个安装包,会安装python环境,并安装大量和计算相关的库,方便后续使用。

可视化开发工具

  • vscode
  • pycharm

都可以

股票信息的获取

我使用的是 tushare,当然你也可以使用其他的接口。
你只要在官网注册一个免费等级的账号,就能够满足你的需求;记得获取api的token,并替代。

在使用前需要pip 安装

pip install tushare 

几个接口调用方法:具体api接口说明

def getStock(pro):
        """
        获取stock信息,保存ts_code , symbol 的对应关系
        """
        data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')

        # 写入文件
        f = open('log.txt','w',encoding='utf-8')
        for i in data.values:
            f.write(str(i)+'\n')
        f.close()
def getMA(code,lastDay):
        """
        获取n日均线和均量
        """
        end_dt = dt.datetime.now().strftime('%Y%m%d')
        time_temp = dt.datetime.now() - dt.timedelta(days=lastDay)
        start_dt = time_temp.strftime('%Y%m%d')
		# 通用行情接口
        df = ts.pro_bar(ts_code=code, start_date=start_dt, end_date=end_dt,ma=[5,6,18,30,36,60])

        dic = df.to_dict('records')

        print(dic[0])

pandas库学习

  • Pandas是Python的一个数据分析包,该工具为解决数据分析任务而创建。
  • Pandas纳入大量库和标准数据模型,提供高效的操作数据集所需的工具。
  • Pandas提供大量能使我们快速便捷地处理数据的函数和方法。
  • Pandas是字典形式,基于NumPy创建,让NumPy为中心的应用变得更加简单

比如我们要计算最近10日收盘价的5日均线:

df['ma5'] = df['close'].rolling(window=5).mean()

10日均线:

df['ma10'] = df['close'].rolling(window=10).mean()

matplotlib库学习

有了计算数据,我们也需要直观的表格图方便我们看出效果。
在这里插入图片描述

matplotlib 是python绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式,使用说明,通过学习各种图表的接口,可以做出让你满意的效果。

最后

事实上,你只需要很基本的python基础就可以完成一些量化模型:

  • 数据的来源只要熟悉几个api接口的使用;
  • 矩阵的数据计算需要你熟悉pandas库;
  • 可视化需要你了解matplotlib 。
    这些你都可以在1周的时间完全掌握。

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

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

相关文章

【五】Netty 传输Java对象

Netty 传输Java对象介绍业务场景模拟流程图代码展示订购采购消息 POJO 类订购应答消息 POJO 类服务端启动类 SubscribeReqServer服务端业务处理类 SubscribeServerHandler客户端启动类 SubscribeClient客户端 业务处理类 SubscribeClientHandler效果展示服务端打印客户端打印总…

20230109网安陈之琳材料大纲-web渗透

目录 引言 正文 信息收集 端口扫描 敏感目录的扫描 主机漏洞扫描 常见的漏洞及防御 SQL注入漏洞 目录遍历漏洞/文件包含漏洞 提权 删日志 引言 首先呢,经过我本人对此篇论文的研读,发现此篇论文属于web方向的一篇入门文章 梁本来前辈对常见…

使用Docker Compose一键部署前后端分离项目

目录 一、安装Docker和docker Compose (1)Docker安装 (2)Docker Compose安装 (3)查看版本信息 二、准备工作 1. 新建工作目录 2. 工作目录结构 3. 后台打包 4. 前台打包 5. 数据库文件上传 6. 编…

Nginx反向代理和负载均衡配置

一.什么是反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就…

Sentinel-限流 冷启动

概述 当流量突然增大的时候,我们常常会希望系统从空闲状态到繁忙状态的切换的时间长一些。即如果系统在此之前长期处于空闲的状态,我们希望处理请求的数量是缓步的增多,经过预期的时间以后,到达系统处理请求个数的最大值。Warm U…

在Mac上配置Vue开发环境

因为Vue是NodeJS的模块,要想使用Vue需要先安装NodeJS 在Mac中安装NodeJS通过brew包管理器就会很方便, 因为访问源速度问题建议使用5(阿里),Homebrew开源项目地址:https://gitee.com/cunkai/HomebrewCN/blob/master/REA…

千锋教育+计算机四级网络-计算机网络学习-02

目录 分组交换的两种传输方式 数据报方式 ​编辑 虚电路方式 OSI参考模型 IP地址分类 公有IP 私有IP 回环ip地址 子网掩码 端口 端口号 端口分类 数据包的组装、拆解 网络应用程序开发流程 选择合适的协议(TCP或UDP) TCP—面向连接 UDP—面向无连接 …

第八章面向对象编程(中级)

8.1访问修饰符 8.1.1基本介绍 java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围): 公开级别:用 public 修饰,对外公开受保护级别:用 protected 修饰,对子类和同一个包中的类公开…

基于Docker安装Nginx

基于Docker安装Nginx 1.安装Nginx 先启动一个 Nginx 实例, 可以得到相关配置 1.这里我将安装的软件放在/mydata目录下 #进入mydata目录 cd mydata/ #创建nginx目录 mkdir nginx # 拉取nginx 1.10版本镜像并允许容器 docker run -p 80:80 --name nginx -d nginx:1.10将容器内…

RHCE第四天之Web服务器详解

文章目录一、网址及HTTP简介二、www服务器的类型三、 www服务器的基本配置四、基于https协议的静态网站五、实验练习web服务器提供的数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我…

Profiler导致的严重性能问题

背景客户反馈系统突然运行非常缓慢,持续了近20分钟的时间,通过SQL专家云定位到有人开启了Profiler导致,但是不能定位是谁开启的,请我们协助分析。现象登录SQL专家云,进入实时可视化页面,在活动会话中看到在…

【Ctfer训练计划】——(十)

作者名:Demo不是emo主页面链接: 主页传送门创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷座右…

智公网:这几类人员报考公务员无法被录取

对于很多人来讲,毕业之后都想找一份稳定的工作,目前最受欢迎的就是公务员和教师编了,我们今天来说下公务员这个铁饭碗。 公务员考试可是很不容易的,有两场考试,第一场是笔试,第二场是面试。笔试通过之后才…

2021-06-10 Multisim的74LS192功能表及555时基74LS190

缘由https://ask.csdn.net/questions/7445811?spm1005.2025.3001.5141以及60s倒计时电路连接后没有显示 - 24小时必答区 74LS192芯片是一个具有双计数功能的芯片,既可以做加计数,也可以做减计数。 1、A、B、C、D 置数输入端,管脚悬空相当…

Web端接入视频设备(NVR/IPC)

概述 本文主要介绍视频监控设备,视频监控设备接入,常用的开源流媒体及接入过程中的一些问题。 第一章 视频监控设备 目前常见的视频监控设备主要有NVR和IPC,以海康为例。 1.1 视频监控设备介绍 IPC即IP Camera,可以接入网络的…

06-GC垃圾收集器有那些?

如图展示了HotSpot虚拟机中7种不同的垃圾收集, 连线代表两者可搭配使用 1.Serial 垃圾收集器(单线程、复制算法) Serial(英文连续)是最基本垃圾收集器,使用复制算法,曾经是JDK1.3.1 之前新生代唯一的垃圾…

【基础】Flink -- DataStream API

Flink -- DataStream API执行环境 Execution Environment创建执行环境设置执行模式触发程序执行源算子 Source从集合中读取数据从文件读取数据从 Socket 读取数据自定义数据源转换算子 Transformation基本转换算子映射 map过滤 filter扁平映射 flatMap聚合算子 Aggregation按键…

WPS配置mathtype

笔者电脑软件版本:WPS Office mathtype_7.4.8.0 请注意WPS适配的mathtype版本。 下载地址 mathtype_7.4.8.0:https://wwl.lanzoum.com/iuJDz0guffuh wps.vba.exe:https://handong1201.lanzouw.com/iX5GZtn70pe(mathtype右侧选…

查找算法之线性查找

目录 线性查找 算法实现 算法实现 python C 复杂度分析 优点与缺点 线性查找 线性查找(Linear Search)是一种最基础的查找方法,其从数据结构的一端开始,依次访问每个元素,直到另一端后停止。 算法实现 线性查…

【凸优化】Gradient Descent and Newton Descent【梯度下降法和牛顿下降法】(含Python代码绘制等高线图)

文章目录Gradient Descent and Newton Descent一、下降法【Descent】二、梯度下降法【Gradient Descent】三、牛顿下降法【Newton Descent】四、示例Example五、ReferenceGradient Descent and Newton Descent 一、下降法【Descent】 首先介绍什么是下降法【Descent Methods】…