如何构建myquant量化策略?

news2024/12/1 0:35:00

对于如何构建myquant量化策略这个问题而言,就是获取量化股票接口的基础数据,然后有了基础数据,才能对数据进行加工处理,构建量化策略,进行量化分析,回测和回溯。myquant量化策略主要是基于python进行量化投资的开发,获取数据的方式比较丰富,就比如说一些通常使用的数据接口进行掘金量化的开发文档:

一、逐笔成交量化策略:

TickRecord

逐笔成交

OrderRecord

逐笔委托

OrderQueueRecord

委托队列

StockQuoteRecord

股票十档行情

二、TickRecord (逐笔成交)

字段名

类型

备注

stock_exchange

uint32

证券市场,1-SH,2-SZ

stock_code

string

证券代码

created_at

int64

成交日期时间戳(毫秒)

code

string

成交编号

price

uint32

成交单价

volume

uint64

成交数量

amount

uint64

成交金额

tx_dir

uint32

交易方向:0-未知,1-买方成交,2-卖方成交

tx_kind

uint32

交易类型:0-成交,1-撤单

buy_order_seq

string

买方委托序号

sell_order_seq

string

卖方委托序号

也就是说,myquant量化策略需要通过这些股票数据接口来充当介质输出交易者满意的策略,直接在系统上定制,执行程序后,就能将自动交易系统实现委托下单。例如,交易者想精选股盈利,就可以通过挖掘股票数据的条件来满足,比如以下程序:

假如这里选用vn.py中的双均线策略demo,它的量化策略代码如下:

from vnpy.app.cta_strategy import (
    CtaTemplate,
    StopOrder,
    TickData,
    BarData,
    TradeData,
    OrderData,
    BarGenerator,
    ArrayManager,
)


class DemoStrategy(CtaTemplate):
    """演示用的简单双均线"""

    # 策略作者
    author = "Smart Trader"

    # 定义参数
    fast_window = 10
    slow_window = 20

    # 定义变量
    fast_ma0 = 0.0
    fast_ma1 = 0.0
    slow_ma0 = 0.0
    slow_ma1 = 0.0

    # 添加参数和变量名到对应的列表
    parameters = ["fast_window", "slow_window"]
    variables = ["fast_ma0", "fast_ma1", "slow_ma0", "slow_ma1"]

    def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
        """"""
        super().__init__(cta_engine, strategy_name, vt_symbol, setting)

        # K线合成器:从Tick合成分钟K线用
        self.bg = BarGenerator(self.on_bar)

        # 时间序列容器:计算技术指标用
        self.am = ArrayManager()

    def on_init(self):
        """
        当策略被初始化时调用该函数。
        """
        # 输出个日志信息,下同
        self.write_log("策略初始化")

        # 加载10天的历史数据用于初始化回放
        self.load_bar(10)

    def on_start(self):
        """
        当策略被启动时调用该函数。
        """
        self.write_log("策略启动")

        # 通知图形界面更新(策略最新状态)
        # 不调用该函数则界面不会变化
        self.put_event()

    def on_stop(self):
        """
        当策略被停止时调用该函数。
        """
        self.write_log("策略停止")

        self.put_event()

    def on_tick(self, tick: TickData):
        """
        通过该函数收到Tick推送。
        """
        self.bg.update_tick(tick)

    def on_bar(self, bar: BarData):
        """
        通过该函数收到新的1分钟K线推送。
        """
        am = self.am

Market市场代码: 0—深圳,1—上海

Stockcode:证券代码;

start :指定的范围开始位置;

count:要请求的 K 线数目,最大值为 800

比如以下语句表示获取获取股票深证的000001股票最近的10条1分钟数据;

api.get_security_bars(7, 0, '000001', 0, 10)
数据获取的接口一般返回list结构,如果需要转化为pandas Dataframe接口,可以使用 api.to_df 进行转化 如:

api.to_df(api.get_security_bars(7, 0, '000001', 0, 10)) # 返回普通list后转DataFrame;再进一步的调研函数程序,就完成myquant量化策略选股的操作了,将股票选股自选股中。

执行示例:

 


 

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

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

相关文章

案例实操 | 利用Lambda函数来进行特征工程,超方便的!!

特征工程对于我们在机器学习的建模当中扮演着至关重要的角色,要是这一环节做得好,模型的准确率以及性能就被大大地被提升,今天小编就通过Python当中的lambda函数来对数据集进行一次特征工程的操作,生成一些有用的有价值的特征出来…

nacos--基础--3.4--集成--spring--spring上下文中的一些关键的特性

nacos–基础–3.4–集成–spring–spring上下文中的一些关键的特性 1、spring上下文中的一些关键的特性 注解驱动依赖注入外部化配置事件驱动 2、注解驱动 2.1、 启用 Nacos EnableNacos 是一个模块驱动的注解EnableNacos 支持 Nacos Spring 的所有功能 服务发现&#xff1…

香港服务器托管带宽怎么选?

香港服务器托管时,带宽的选择非常重要,带宽用量的大小不同,最终的费用也就会不同。用户在香港托管服务器的时候,应该选择多大的带宽才合适呢?应该如何选择香港服务器带宽大小呢? 香港服务器托管带宽怎么选? 其实,大…

5G无线技术基础自学系列 | 无线电波传播模型

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 无线电波传播模型用于预测无线电波在各…

JAVA开发(JWTUtil工具类实现token源码赏析)

一、token解决问题的背景: 1、 单点登录, 2、分布式登录状态, 3、在信任期内 避免 重新输入用户名密码登录。 4、跨系统免登陆等。 5、一些接口的请求权限验证。 总结以上token最终都是为了解决在在分布式系统中信任期内 避免 重新输入用户名…

如何选择合适的统计学方法

一般来说,使用哪种统计方法,取决于我们的应用场景、我们的研究目的是什么。 这里面一个麻烦的地方在于,不管你使用哪种统计方法,似乎都可以得出一个’结果’或一个p值,但这个结果有没有意义就两说了。 在我看来&…

【WEB安全】Xstream最新反序列化poc执行报错问题

前言 最近有个需求,用Xstream反序列化打个内存马,从通用性来讲,肯定用1.4.17的洞去打应用范围最广。众所周知,Xstream官方会提供其漏洞的poc。在我实验之下,1.4.17的几个poc只要涉及到任意java代码执行的都会报错&…

VMware创建共享文件夹并实现文件传输(Windows主机,Ubuntu虚拟机)

文章目录创建共享文件夹安装/更新VMware tool挂载共享文件夹共享文件夹的实现更改配置项,实现自动挂载(推荐直接用这个)数据传输参考博客创建共享文件夹 1、开启虚拟机的共享文件夹配置 首先在虚拟机中打开设置,在选项中点击共享…

Java springboot+vue+MySQLJava大型CRM客户关系管理源码带手机端和小程序源码 Java客户全流程高效管理CRM系统源码

springbootvue MySQL数据库 1. 前端:Vue 2. 后端:Spring boot 3. 数据库:MySQL 源码已经亲测 1. 前端:Vue 2. 后端:Spring boot 3. 数据库:MySQL 小程序是用UNIAPP开发的。 后台登录账户&#xff1a…

(附源码)springboot智能服药提醒app 毕业设计 102151

基于springboot智能服药提醒app 摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,智能服药提醒app程序被用户…

平均价格算法:TWAP vs. VWAP

时间加权平均价格 (TWAP) 和成交量加权平均价格 (VWAP) 算法应用不同的方法来计算资产价格,这是所有去中心化金融 (DeFi) 原语的组成部分。 在本文中,我们介绍了 TWAP 和 VWAP 算法之间的差异,解释了它们如何在区块链环境中为资产定价&#…

化学工程与装备杂志化学工程与装备杂志社化学工程与装备编辑部2022年第10期目录

科学研究与开发《化学工程与装备》投稿:cnqikantg126.com 槐木活性炭处理生活废水的研究 孔繁铸;高丽娟;赵开创;钱程; 1-3 基于Pumplinx的水泵机械密封温升仿真研究 赵雪飞;贾红杰;李雪峰;李雷;王景新;张晓辉; 4-728 全固态石墨烯-Ag/AgCl海洋电场探测电…

功率放大器的输入阻抗和输出阻抗是交流还是直流电阻

功率放大器的输入阻抗和输出阻抗一般是指交流电阻。交流电阻指一些伏安特性曲线的斜率。所以放大器输入阻抗和输出阻抗都是理论分析计算为主,而不使用万用表测量其大小。 输入阻抗一般是指电路输入端的等效阻抗,输入端加上一个电压源U,测量输…

WRF模式安装+详细运行教程

安装教程在安装之前,首先需要去查看自己的 Linux 系统(虚拟机或者服 务器)上的编译环境,也就是确定自己是否安装编译器或安装了哪种编 译器。(因为安装过程需要选择编译器)常用的编译器分为三种系列&#x…

Typora基础使用技巧

Typora Tutorial 1.数学符号及公式 (1).常用数学符号 数学符号没什么特别的语法,这里顺道总结以下方便使用: + - ≠ ≈ / > < ≯ ≮ ≤ ≥ ∵ ∴ ∽ ≌, √, Φ Χ Ψ Ωα…

antd-protable的分页逻辑封装

一、前言 这次的分页基于pro-table进行封装。 前端分页看似是个小功能,但里面隐藏的逻辑还是非常多的,比如我们业务中需要的分页器除了能进行正常的页码切换等操作外,还需要如下的功能: 次页删除最后一条数据需要跳转至第一页&…

计算机研究生就业方向之去大厂做大数据

我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么,如果你只是转码,那么你不一定要考研,至少以下几个职位研究生是没有啥优势的: 1,软件测试工程师(培训一下就行) 2,前…

JUC并发编程第十篇,谈谈ThreadLocal原理与内存泄露的那些事儿

JUC并发编程第十篇,谈谈ThreadLocal原理与内存泄露的那些事儿一、ThreadLocal是什么?能干嘛?二、ThreadLocal 使用场景举例三、阿里开发规范中 ThreadLocal 的使用(SimpleDateFormat)四、ThreadLocal 底层源码架构分析…

一个帖子教你实现 商品下单、获取商品订单信息、商品送货时发送通知 一体化功能

1、介绍 总览 通过无缝数据库结构,在保证数据的可用性、一致性、安全性外,云数据库能够实现数据在客户端和云端之间的无缝同步。云函数提供serverless环境,AppGallery Connect的其他服务为云函数提供事件源。监听事件源可以触发相关函数。 …

Word处理控件Aspose.Words功能演示:使用 C++ 将 PowerPoint 演示文稿转换为 Word 文档

Aspose API 支持旗下产品覆盖文档、图表、PDF、条码、OCR、CAD、HTML、电子邮件等各个文档管理领域,为全球.NET 、Java、C 等10余种平台开发人员提供丰富的开发选择。 在某些情况下,您有一个 PowerPoint 演示文稿并想要创建一个详细描述其内容的文档。为…