掘金量化—Python SDK文档—4.数据结构

目录

Python SDK文档

4.数据结构

  4.1数据类

    Tick - Tick 对象

    报价quote - (dict 类型)

    Bar - Bar 对象

    L2Order - Level2 逐笔委托

    L2Transaction - Level2 逐笔成交

  4.2交易类

    Account - 账户对象

    Order - 委托对象

    ExecRpt - 回报对象

    Cash - 资金对象

    Position - 持仓对象

    Indicator - 绩效指标对象


Python SDK文档

4.数据结构

4.1数据类
Tick - Tick 对象

行情快照数据

参数名 类型 说明
symbol str 标的代码
open float 日线开盘价
high float 日线最高价
low float 日线最低价
price float 最新价
cum_volume long 最新总成交量,累计值(日线成交量)
cum_amount float 最新总成交额,累计值 (日线成交金额)
cum_position int 合约持仓量(只适用于期货),累计值(股票此值为 0)
trade_type int 交易类型(只适用于期货) 1: '双开', 2: '双平', 3: '多开', 4: '空开', 5: '空平', 6: '多平', 7: '多换', 8: '空换'
last_volume int 最新瞬时成交量
last_amount float 最新瞬时成交额(郑商所 last_amount 为 0)
created_at datetime.datetime 创建时间
quotes [] (list of dict) 股票提供买卖 5 档数据, list[0]~list[4]分别对应买卖一档到五档, 期货提供买卖 1 档数据, list[0]表示买卖一档;, level2 行情对应的是 list[0]~list[9]买卖一档到十档,注意:可能会有买档或卖档报价缺失,比如跌停时无买档报价(bid_p 和 bid_v 为 0),涨停时无卖档报价(ask_p 和 ask_v 为 0); 其中每档报价quote结构如下:
报价quote - (dict 类型)
参数名 类型 说明
bid_p float 买价
bid_v int 买量
ask_p float 卖价
ask_v int 卖量
bid_q dict 委买队列 包含(total_orders (int)委托总个数, queue_volumes (list) 委托量队列),仅 level2 行情支持
ask_q dict 委卖队列 包含(total_orders (int)委托总个数, queue_volumes (list) 委托量队列),仅 level2 行情支持

注意: 1、tick 是分笔成交数据,股票频率为 3s, 期货为 0.5s, 指数 5s, 包含集

### 掘金量化平台代码示例与实现教程 掘金量化是一款专为专业量化投资设计的功能齐全的落地式终端,它提供了从策略开发到实盘交易的一体化解决方案[^4]。以下是关于掘金量化的代码示例以及其实现方法的相关说明。 #### 1. Python 环境配置与基础 API 调用 在使用掘金量化之前,需先搭建好 Python 开发环境并熟悉其 SDK 的基本调用方式。以下是一个简单的初始化代码示例: ```python from myquant import * def initialize(context): """ 初始化函数,在回测或实时运行时只执行一次。 :param context: 上下文对象,用于存储全局变量。 """ context.stock = '000001.SZ' # 设置目标股票代码 log.info(f"初始化完成,目标股票为 {context.stock}") def handle_data(context, data): """ 数据处理函数,每次有新数据到达时都会触发此函数。 :param context: 上下文对象。 :param data: 当前时间点的数据。 """ current_price = data.current(context.stock, 'price') # 获取当前价格 if current_price is not None and current_price > 10: order_value(context.stock, 1000) # 下单买入指定金额 log.info(f"买入 {context.stock},价格为 {current_price}") ``` 这段代码展示了如何定义 `initialize` 和 `handle_data` 函数来设置初始条件和处理市场数据[^4]。 --- #### 2. 多因子策略实现 多因子策略是一种常见的量化交易策略,可以通过组合多个技术指标来进行决策。以下是一个基于移动平均线交叉信号的简单多因子策略示例: ```python import talib def initialize(context): context.stock = '000001.SZ' context.short_window = 10 # 短期均线窗口 context.long_window = 50 # 长期均线窗口 def handle_data(context, data): history = data.history(context.stock, ['close'], max(context.short_window, context.long_window), '1d') short_ma = talib.SMA(history['close'].values, timeperiod=context.short_window)[-1] long_ma = talib.SMA(history['close'].values, timeperiod=context.long_window)[-1] if short_ma > long_ma: order_target_percent(context.stock, 1) # 全仓买入 elif short_ma < long_ma: order_target_percent(context.stock, 0) # 清仓卖出 ``` 该代码利用 Talib 库计算短期和长期移动平均线,并根据两者的交叉关系发出买卖信号[^1]。 --- #### 3. 参数优化流程 参数优化是提升量化策略表现的重要环节之一。掘金量化提供了一种便捷的方法来测试不同参数组合的效果[^3]。以下是一般性的参数优化步骤: 1. 定义待优化的参数范围(如均线周期、止损比例等)。 2. 编写循环逻辑遍历所有可能的参数组合。 3. 对每组参数运行回测并记录收益、夏普比率等评价指标。 4. 输出最优参数及其对应的绩效结果。 具体实现可参考如下伪代码框架: ```python best_params = {} max_sharpe_ratio = float('-inf') for short_period in range(5, 20): # 假设短周期取值范围为 [5, 20] for long_period in range(30, 80): # 假设长周期取值范围为 [30, 80] backtest_result = run_backtest(short_period, long_period) sharpe_ratio = calculate_sharpe_ratio(backtest_result) if sharpe_ratio > max_sharpe_ratio: best_params = {'short': short_period, 'long': long_period} max_sharpe_ratio = sharpe_ratio print(f"最佳参数组合:{best_params}, 最大夏普比率:{max_sharpe_ratio}") ``` --- #### 4. 绩效分析工具 为了评估策略的表现,掘金量化内置了强大的绩效分析功能。用户可通过访问特定 URL 或者直接导出报告文件进行深入研究[^5]。例如,查看某次回测的结果详情页面地址类似于下面的形式: ``` https://www.myquant.cn/analyse/report?action=backtest&id=<your_report_id> ``` 其中 `<your_report_id>` 是具体的报告编号。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值