当前位置: 首页 > news >正文

许昌永诚网络科技有限公司/优化大师的作用

许昌永诚网络科技有限公司,优化大师的作用,在哪里可以做百度推广,上海官方网站建qteasy教程1 - 安装方法及初始化配置 qteasy教程1 - 安装方法及初始配置qteasy安装前的准备工作1, 创建安装环境2,安装MySQL数据库 (可选)安装pymysql 3,创建tushare账号并获取API token (可选)4,安装TA-lib (可选)WindowsMac OSL…

qteasy教程1 - 安装方法及初始化配置

  • `qteasy`教程1 - 安装方法及初始配置
    • `qteasy`安装前的准备工作
      • 1, 创建安装环境
      • 2,安装`MySQL`数据库 (可选)
        • 安装`pymysql`
      • 3,创建`tushare`账号并获取API token (可选)
      • 4,安装`TA-lib` (可选)
          • Windows
          • Mac OS
          • Linux
    • 第一次导入`qteasy`
      • 1,配置`tushare`的API token
      • 2,配置本地数据源
    • 开始下载第一批金融数据

qteasy教程1 - 安装方法及初始配置

qteasy是一个完全本地化部署和运行的量化交易分析工具包,具备以下功能:

  • 金融数据的获取、清洗、存储以及处理、可视化、使用
  • 量化交易策略的创建,并提供大量内置基本交易策略
  • 向量化的高速交易策略回测及交易结果评价
  • 交易策略参数的优化以及评价
  • 交易策略的部署、实盘运行

qteasy使用python创建,使用向量化回测及交易模拟引擎实现了策略的高速回测,同时又兼顾策略框架的灵活性,使得用户可以根据需要灵活定制各种高级策。qteasy提供了多种策略参数优化算法,帮助优化及评价交易策略,同时提供了实时运行模式,使交易策略可以直接部署使用。

通过本系列教程,您将会通过一系列的实际示例,充分了解qteasy的主要功能以及使用方法。

qteasy安装前的准备工作

1, 创建安装环境

qteasy可以通过pip来安装,由于依赖包较多,为了避免各依赖包与现有环境中的包产生冲突,建议创建一个独立的python环境来安装qteasy

创建虚拟环境的方法有很多种,这里介绍两种方法,分别是使用venvconda

要使用venv创建虚拟环境,macOS和Linux用户可以打开终端,进入您需要创建环境的路径,输入以下命令,在当前目录下创建一个名为qteasy-env的虚拟环境,并激活环境:

python -m venv qteasy-env  
source qteasy-env/bin/activate

Windows用户可以打开命令提示符,进入您需要创建环境的文件夹,输入以下命令,创建虚拟环境并激活:

py -m venv qteasy-env  
.venv\Scripts\activate

要使用conda创建虚拟环境,可以打开终端,输入以下命令,创建一个名为qteasy-env的虚拟环境,并激活环境:

conda create -n qteasy-env python=3.8
conda activate qteasy-env

在激活的虚拟环境中,使用以下命令安装qteasy:

pip install qteasy

2,安装MySQL数据库 (可选)

qteasy可以管理大量的金融数据。qteasy的工作方式是将所有的金融数据下载到本地,清洗后存储到事先定义好的数据表中,在需要时(生成K线图、交易信号生成、模拟交易回测、交易结果评价等所有环节都需要用到金融数据)从本地数据源直接读取所需的数据。因此,必须在本地设置一个数据管理环境。

qteasy同时支持数据库及文件系统作为数据管理环境,考虑到金融数据量,强烈推荐使用数据库作为本地数据源。qteasy支持的本地数据源包括:

  • csv 文件 默认数据源。占用空间大,但是可以使用Excel读取本地数据,数据量大时速度慢
  • mysql 数据库,强烈推荐使用mysql数据库并确保磁盘有至少1TB的存储空间,速度快
  • hdf5 文件 占用空间大,数据量大时速度慢
  • feather 文件 占用空间较小,数据量大时速度慢

为了实现最佳的数据存储效率,建议使用mysql数据库作为本地数据源。

如果需要使用数据库作为本地数据源,参照以下方法安装MySQL数据库,如果使用文件作为本地数据源,可以跳过这一步。

MySQL的官网可以直接找到社区开源版本下载:
网站提供了dmg和tar等多种不同的安装方式,而且还有针对M1芯片的版本可选:

png

安装完成后,创建用户,设置访问方式并设置密码:

# 创建新的用户,并允许客户通过localhost连接
mysql> CREATE USER '用户名'@'localhost' IDENTIFIED BY '初始密码';
Query OK, 0 rows affected (0.46 sec)# 设置用户的权限
mysql> GRANT ALL ON *.* TO '用户名'@'localhost';
Query OK, 0 rows affected (0.06 sec)# 创建新的用户,并允许客户通过远程连接
mysql> CREATE USER '用户名'@'%' IDENTIFIED BY '初始密码';
Query OK, 0 rows affected (0.46 sec)# 设置用户的权限
mysql> GRANT ALL ON *.* TO '用户名'@'%';
Query OK, 0 rows affected (0.06 sec)

数据库设置好之后,记录您的数据库登录信息、在qteasy的设置中将会用到。

安装pymysql
pip install pymysql

3,创建tushare账号并获取API token (可选)

qteasy目前主要依赖tushare来获取金融数据,系统内建了比较完整的API与tushare接口。鉴于tushare的接口均有权限或积分要求,建议用户提前准备好相应的tushare积分,并开通相应权限。

在这里插入图片描述

申请tushare积分和权限的方法请参见tushare pro主页:

在这里插入图片描述

如果不创建tushare账号,qteasy仍然可以获得一些数据,但是数据的种类非常有限,访问频率和次数也受到限制,很多qteasy功能的使用将会受到限制,如下图所示:

tushare数据详情页2
未来计划增加其他金融数据提供商的API,以扩大数据来源。

4,安装TA-lib (可选)

qteasy内置了大量的技术指标,这些技术指标的计算依赖于TA-lib,如果需要使用qteasy内置的所有技术指标,需要安装TA-lib
如果跳过这一步,将只能使用以下少数几种内置策略。下面简单介绍TA-lib的安装方法:

完整的TA-Lib包无法通过pip安装,因为通过pip install ta-lib安装的只是TA-Lib包的一个python wrapper, 用户必须首先安装C语言的TA-Lib才能在python中使用它。

有些用户可以用下面的方法安装C语言的TA-Lib包:
conda install -c conda-forge libta-lib

在不同的系统下安装C语言的TA-Lib包的方法:

Windows
  • 下载 ta-lib-0.4.0-msvc.zip 并解压至 C:\ta-lib.
  • 下载并安装 Visual Studio Community (2015 或更新版本), 选择 [Visual C++] 功能
  • Windows 开始菜单, 启动 [VS2015 x64 Native Tools Command Prompt]
  • 移动至 C:\ta-lib\c\make\cdr\win32\msvc
  • nmake
Mac OS

使用brew安装ta-lib

$ brew install ta-lib

如果使用Apple Silicon芯片,可以使用:

$ arch -arm64 brew install ta-lib
Linux

下载 ta-lib-0.4.0-src.tar.gz ,然后:

$ tar -xzf ta-lib-0.4.0-src.tar.gz
$ cd ta-lib/
$ ./configure --prefix=/usr
$ make
$ sudo make install

安装完成C语言TA-Lib后,可以安装TA-Libpython wrapper

pip install TA-Lib

更完整的TA-Lib的安装方法请参考这里

第一次导入qteasy

当qteasy的所有依赖包正确安装后,就可以在IDE中导入qteasy了。

import qteasy as qt
print(qt.__version__)

第一次导入qteasy时会自动初始化,初始化过程会创建一个qteasy.cnf文件,这个文件用于存储qteasy的环境配置变量,用户可以通过修改这个文件来修改qteasy的环境配置变量。

用户可以将一些关键配置信息存放在qteasy.cfg文件中,这样qteasy在导入时会自动读取这些配置信息。

用户可以在资源管理器、访达或者终端中找到qteasy的根目录,然后打开qteasy.cfg文件,修改其中的内容。

在qteasy中可以通过qt.QT_ROOT_PATH查看qteasy的根目录

import qteasy as qt
print(qt.QT_ROOT_PATH)

第一次初始化后的qteasy.cnf文件内容如下:

# qteasy configuration file
# following configurations will be loaded when initialize qteasy# example:
# local_data_source = database

用户可以直接在文件中添加配置信息,保存文件后重新导入qteasy即可使配置生效了,例如:

local_data_source = database

以下几个配置信息是用户在使用qteasy前非常有必要配置的:

1,配置tushare的API token

注意tushare是一个收费的数据服务,用户需要获取积分,积分越多,获取的数据种类越多,权限也越大,如果不配置tushare token,将无法正常使用tushare的数据服务。

如果您按照教程前一节的内容创建了tushare账号并获取了token,可以将token写入qteasy.cnf文件中,这样在导入qteasy时就会自动读取这个token。

qteasy.cnf文件中添加以下内容:

tushare_token = 你的tushare token

2,配置本地数据源

默认情况下,qteasy使用csv文件保存本地数据,速度较慢而且占用空间较大。为了更好地使用qteasy,用户还应该完成本地数据源的基本配置。

如果您按照教程前一节的内容创建了mysql数据库,可以将数据库的配置信息写入qteasy.cnf文件中,这样qteasy就会连接到您指定的数据库,将金融数据存储到数据库中。

qteasy.cnf文件中添加以下内容:

local_data_source = database
database_host = <你的数据库主机名,如local_host>
database_port = <你的数据库端口,如3306>
database_user = <你的数据库用户名>
database_password = <你的数据库连接密码>
database_name = <保存金融数据的数据库名,如qt_base>

如果不做上述配置,qteasy会使用默认的csv文件作为本地数据源。

开始下载第一批金融数据

完成上述配置以后,保存并关闭qteasy.cfg文件,恭喜你,qteasy已经安装并配置好了,现在可以开始使用qteasy了。

首先,我们需要下载一些金融数据,交易策略的回测、优化、评价等所有功能都需要用到金融数据。
在这里,我们可以先下载一些股票数据,以便后续的教程中使用。

qt.refill_data_source是一个通用的数据下载函数,只要你的tushare积分足够,可以下载股票、期货、指数、基金等金融数据,也可以下载宏观经济、财务报表、财务指标、公司基本信息等非交易数据。使用这个函数,您可以批量下载数据到本地,保存前会进行数据去重和清洗、确保不会重复保存,另外,使用多线程并行下载,提供下载进度条,特别适合一次性下载大量历史数据保存到本地,也适合定期运行,定期补充增量数据,例如每月或每周补充下载本月或本周的所有数据。

import qteasy as qt# 下载股票数据 (从2023年1月1日到2023年12月31日之间的所有股票数据)
qt.refill_data_source(tables='stock_daily', start_date='20230101', end_date='20231231')Filling data source file://csv@qt_root/data/ ...
[########################################]9/9-100.0%  <trade_calendar:SSE-XHKG>74804wrtn in ~9't
[########################################]7/7-100.0%  <stock_basic:SH-BJ>10365wrtn in ~1't
[########################################]272/272-100.0%  <stock_daily:20230101-20231231>959278623wrtn in ~2H

qteasy中,所有数据都保存在特定的数据表中,而且每一种数据都有其唯一的数据ID,例如’pe’表示市盈率,open表示开盘价,等等;通过数据ID,用户可以在qteasy中随时获取所需的数据——只要数据已经下载到本地。

同时,数据ID也是qteasy中交易策略的核心,用户可以通过数据ID在交易策略中"订阅"所需要的数据类型,并根据这些数据生成交易信号(关于交易信号和交易策略,请参见教程第四章)。

根据您的网络环境和数据量大小,下载数据的时间可能会有所不同,下载完成后,2023年内的所有股票数据就可以直接获取了。

要获取历史数据,可以使用get_history_data函数,在参数中指定数据类型、股票代码、开始日期和结束日期,
下面的代码可以获取2023年1月1日到3月1日的股票000001.SZ的开盘价、最高价、最低价、收盘价、成交量、成交额等数据:

import qteasy as qt
qt.get_history_data('open, high, low, close, vol', shares='000001.SZ', start='20230101', end='20230301'){'000001.SZ':              open   high    low  close         vol
2023-01-04  13.71  14.42  13.63  14.32  2189682.53
2023-01-05  14.40  14.74  14.37  14.48  1665425.18
2023-01-06  14.50  14.72  14.48  14.62  1195744.71
...
2023-02-27  13.75  13.88  13.68  13.69   621461.93
2023-02-28  13.75  13.85  13.61  13.78   607935.92
2023-03-01  13.80  14.19  13.74  14.17  1223451.78}

至此,如果您看到上面的数据,表明qteasy的安装和初始化工作已经完成,您已经可以开始使用qteasy了。

在下一章节中,我们将会介绍qteasy的基本数据类型,以及如何使用qteasy来获取并管理金融数据。

关于qteasy的更多介绍,请参见qteasy文档

相关文章:

【python量化交易】qteasy使用教程01 - 安装方法及初始化配置

qteasy教程1 - 安装方法及初始化配置 qteasy教程1 - 安装方法及初始配置qteasy安装前的准备工作1&#xff0c; 创建安装环境2&#xff0c;安装MySQL数据库 (可选)安装pymysql 3&#xff0c;创建tushare账号并获取API token (可选)4&#xff0c;安装TA-lib (可选)WindowsMac OSL…...

UML 2.5图形库

UML 2.5图形库 drawio是一款强大的图表绘制软件&#xff0c;支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用&#xff0c;则直接输入网址drawon.cn或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功能&#xff0c;并实现了云端存储&#…...

分享springboot框架的一个开源的本地开发部署教程(若依开源项目开发部署过程分享持续更新二开宝藏项目PostgresSQL数据库版)

1首先介绍下若依项目&#xff1a; 若依是一个基于Spring Boot和Spring Cloud技术栈开发的多租户权限管理系统。该开源项目提供了一套完整的权限管理解决方案&#xff0c;包括用户管理、角色管理、菜单管理、部门管理、岗位管理等功能。 若依项目采用前后端分离的架构&#xf…...

打卡今天学习 Linux

过年了&#xff0c;祝大家过年快乐 在今天的学习中&#xff0c;我们涉及了一些关键的 Linux 系统管理知识点&#xff0c;包括 systemctl、IP 地址配置、域名解析、映射的创建、软链接等。让我们简要回顾一下这些主题。 1. systemctl systemctl 是一个强大的 Linux 系统管理工…...

单片机精进之路-3流水灯

P1代表单片机的P1口的8个io的寄存器&#xff0c;使用_crol_函数&#xff1a;将 k进行1位左位移&#xff0c;并将值以unsigned char类型返回&#xff0c;再将K的值赋给P1&#xff0c;这样就点亮了P1口对应的IO为低电平的led灯。 //flow light and beep #include <reg51.h>…...

c# File.WriteAllLines 和 File.WriteAllText

File.WriteAllLines 和 File.WriteAllText 都是 C# 中用于写入文本文件的方法&#xff0c;但它们有一些区别。 1. File.WriteAllLines 方法&#xff1a; File.WriteAllLines 方法用于将字符串数组的内容按行写入文本文件。每个数组元素都被写入文件的一行&#xff0c;且方法会…...

linux系统定时任务管理

crontab使用 一、crontab简介 crontab 这个指令所设置的工作将会循环的一直进行下去&#xff01;可循环的时间为分钟、小时、每周、每月或每年等。crontab 除了可以使用指令执行外&#xff0c;亦可编辑 /etc/crontab 来支持。 至于让 crontab 可以生效的服务则是 crond 这个服…...

mysql的慢sql优化

为什么要优化慢sql &#xff1f; 慢sql会长时间占用 数据库连接数&#xff0c;如果项目中有大量的慢sql&#xff0c;那么可用的数据库连接数就会变少&#xff0c;进而会影响业务。 慢sql优化 优化慢sql&#xff0c;最常见的就是添加索引。查询语句中不要使用select *尽量减少…...

排序算法---插入排序

原创不易&#xff0c;转载请注明出处。欢迎点赞收藏~ 插入排序是一种简单直观的排序算法&#xff0c;它的基本思想是将待排序的元素分为已排序和未排序两部分&#xff0c;每次从未排序部分中选择一个元素插入到已排序部分的合适位置&#xff0c;直到所有元素都插入到已排序部分…...

迷你世界勒索病毒,你的文件被删了吗?

前言 笔者在某恶意软件沙箱平台分析样本的时候&#xff0c;发现了一款比较有意思的勒索病毒MiniWorld迷你世界勒索病毒&#xff0c;它的解密界面与此前的WannaCry勒索病毒的界面相似&#xff0c;应该是作者仿冒的WannaCry的UI&#xff0c;如下所示&#xff1a; 这款勒索病毒既…...

QT styleSheet——控件设置样式表

QT开发中&#xff0c;需要设置多种多样的控件表现形式&#xff0c;QT实现的styleSheet能够满足多种多样的场景&#xff0c;这里简单的记录下一些我常用的 设置透明背景&#xff0c;鼠标悬浮时&#xff0c;设置背景色&#xff1a; pushButton->setStyleSheet("QPushBu…...

Linux学习

1 Linux的目录结构介绍 bin存放常用的命令etc存放配置文件bootlinux启动的文件home存放用户lib存放动态库&#xff0c;给应用程序使用lostfound一般是空的&#xff0c;但系统异常关机会产生文件media自动挂载&#xff0c;如u盘&#xff0c;光盘mnt手动挂载&#xff0c;一般自己…...

MFC研发自验用例编写应注意哪些关键测试点

MFC&#xff08;Microsoft Foundation Classes&#xff09;是一个用于开发Windows应用程序的C类库。在MFC应用程序的研发过程中&#xff0c;自验用例&#xff08;自我验证测试用例&#xff09;的编写是非常重要的一环&#xff0c;它有助于确保代码的质量、稳定性和功能正确性。…...

ChatGPT升级版本GPT-4V(ision)支持多模态语音和图像

ChatGPT升级指南&#xff1a;迎接GPT-4V(ision)的全新多模态时代 ChatGPT最新升级引入了GPT-4V(ision)&#xff0c;这是一个突破性的多模态版本&#xff0c;支持语音和图像输入。现在&#xff0c;用户可以与ChatGPT进行更加丰富和互动的对话。以下是您升级到GPT-4V(ision)所需…...

机器人搬砖 - 华为OD统一考试

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 机器人搬砖&#xff0c;一共有N堆砖存放在N个不同的仓库中&#xff0c;第 i 堆中有 bricks[i] 块砖头&#xff0c;要求在8小时内搬完。 机器人每小时能搬砖的数量…...

10分钟快速入门正则表达式

在力扣上看了一本付费书籍&#xff0c;终于让我入门了正则表达事... 问题&#xff1a; "^1[3-9]\\d{9}$" 是啥意思 读完本篇小笔记&#xff0c;你就知道&#xff0c;啥是"^1[3-9]\\d{9}$" 这个是啥意思了。 首先&#xff0c;正则表达式&#xff0c;这个名…...

【C++】C++的简要介绍

简单不先于复杂&#xff0c;而是在复杂之后。 文章目录 1. 什么是C2. C的发展史3. C的重要性3.1 语言的使用广泛度3.2 在工作领域3.3 在校招领域3.3.1 岗位需求3.3.2 笔试题 3.3.3 面试题 4. 如何学习C4.1 别人怎么学&#xff1f; 1. 什么是C C语言是结构化和模块化的语言&…...

Golang数据库编程详解 | 深入浅出Go语言原生数据库编程

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 Golang学习专栏&#xff1a;https://blog.csdn.net/qq_35716689/category_12575301.html 前言 对数据库…...

《游戏引擎架构》 -- 学习2

声明&#xff0c;定义&#xff0c;以及链接规范 翻译单元 声明与定义 链接规范 C/C 内存布局 可执行映像 程序堆栈 动态分配的堆 对象的内存布局 kilobyte 和 kibibyte 流水线缓存以及优化 未完待续。。。...

#Js篇:js里面递归的理解

定义&#xff1a; 递归是一种编程技术&#xff0c;它是指一个函数在其定义内部调用自身的过程。 特点&#xff1a; 一个问题可以分解为更小的问题用同样的方法解决&#xff1b;分解后的子问题求解方式一样&#xff0c;不同的是数据规模变小&#xff1b;存在递归终止条件 作…...

Qt博客目录

一.Qt安装配置和创建项目 Qt所有版本下载地址 Qt安装配置教程windows版&#xff08;包括&#xff1a;Qt5.8.0版本&#xff0c;Qt5.12&#xff0c;Qt5.14版本下载安装教程&#xff09;&#xff08;亲测可行&#xff09; QT从入门到入土&#xff08;一&#xff09;——Qt5.14.…...

【C++】初识模板:函数模板和类模板

目录 一、模板函数 1、函数模板的概念 2、函数模板的格式 3、函数模板的原理 4、函数模板实例化 5、 模板参数的匹配原则 二、类模板 1 、类模板的定义格式 2 、类模板的实例化 3、模板类示例 一、模板函数 1、函数模板的概念 函数模板代表了一个函数家族&#xff0c…...

记录Dynamo每个节点的运行时间

不知道小伙伴们在写Dynamo程序的时候&#xff0c;有没有遇到这种问题→程序运行很慢&#xff0c;但是却不知道该优化哪些节点&#xff0c;可以提高程序运行的速度。 今天呢&#xff0c;就给大家分享一个节点包→TuneUp&#xff0c;在节点包管理器里就可以下载&#xff0c;安装…...

探索设计模式的魅力:代理模式揭秘-软件世界的“幕后黑手”

设计模式专栏&#xff1a;http://t.csdnimg.cn/U54zu 目录 引言 一、魔法世界 1.1 定义与核心思想 1.2 静态代理 1.3 动态代理 1.4 虚拟代理 1.5 代理模式结构图 1.6 实例展示如何工作&#xff08;场景案例&#xff09; 不使用模式实现 有何问题 使用模式重构示例 二、…...

AD9361多片同步设计方法

本文基于ZC706FMCOMMS5的平台&#xff0c;介绍了多片AD9361同步的方法。并将该设计移植到自行设计的ZYNQ70354片AD9361(实现8路同步收发)的电路板上。本设计采用纯逻辑的方式&#xff0c;仅使用了ZYNQ芯片的PL部分。 9361多芯片同步主要包括基带同步和射频同步两大块任务。其中…...

2024/2/7 图的基础知识

图的存储 B3643 图的存储 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路&#xff1a;mp[n][n]用来存邻接矩阵&#xff0c;二维vector用来存每个点连的点 完整代码&#xff1a; #include <bits/stdc.h> #define int long long const int N 1e5 10; int n, m; …...

1897_野火FreeRTOS教程阅读笔记_链表

1897_野火FreeRTOS教程阅读笔记_链表 全部学习汇总&#xff1a; g_FreeRTOS: FreeRTOS学习笔记 (gitee.com) 之前我自己通过直接啃代码的方式对FreeRTOS也算是有了一点理解了&#xff0c;这次趁着些许闲暇翻看一下野火的FreeRTOS教程。一者算是一种复习&#xff1b;二者可能对自…...

CTFshow web(php命令执行 45-49)

基础知识&#xff1a; 1.绕过cat使用&#xff1a; tac more less head tac tail nl od(二进制查看) vi vim sort uniq rev 2.绕过空格用&#xff1a; %09 <> ${IFS} $IFS$ {cat,fl*} %20 注&#xff1a; %09 ##&#xff08;Tab&#xff09; %20 ##&#xff08;spa…...

飞天使-linux操作的一些技巧与知识点8-zabbix6.0 容器搭建

文章目录 安装docker安装步骤mysql下载镜像安装zabbix 使用zabbix非host模式创建 测试效果 安装docker 1. 配置官方 yum 源$ sudo yum install -y yum-utils $ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo2. 安装 Docker$ …...

51 单片机入门 400 例

1 IO输出 点亮1个LED灯方法1 2 IO输出 点亮1个LED灯方法2 3 IO输出 点亮多个LED灯方法1 4 IO输出 点亮多个LED灯方法2 5 闪烁1个LED 6 不同频率闪烁1个LED灯 7 不同频率闪烁多个LED灯…...