KB / ARTICLE

指标结构与参数配置

指标文档 · 期货版修订 R2发布于 2026-10-14

本文讲解期魔方 Python 指标的完整框架结构(必选 + 可选的 6 个部分),以及内置参数和外置参数的配置方法。

指标框架

指标框架分为 3 个必选部分 + 3 个可选部分:

类型 函数 说明
必选 Params 类 定义外置参数
必选 on_init(self) 指标初始化(声明计算方式、图形对象、数据字段)
必选 calculate_all(self, data) 全量计算(首次接收 600 根 K 线)
可选 on_auth(self) 自定义权限验证
可选 on_subscribe(self) 订阅多品种 / 多周期数据
可选 calculate_last(self, data) 增量计算(实时行情推送)
# 定义外置参数
from pydantic import BaseModel
class Params(BaseModel, validate_assignment=True):
    from pydantic import Field
    is_main:bool = Field(default=True, title="是否为主图")

# 指标初始化
def on_init(self):
    pass

# 指标全量计算
def calculate_all(self, data):
    pass

# 指标增量计算
def calculate_last(self, data):
    pass

# 自定义权限验证
def on_auth(self):
    pass

# 订阅多品种周期数据
def on_subscribe(self):
    pass

参数配置

内置参数

内置参数是指标对象本身(self)的属性,由期魔方在实例化指标对象时自动创建,用户可以通过 self.xxx 访问:

self.name  # 指标名称
self.symbol  # 当前指标加载在行情页面的合约
self.period  # 当前指标加载在行情页面的周期
self.calculate_type  # 指标计算方式 'last' or 'all'
self.calculate_data_type  # 数据类型 'list' / 'dict' / 'pandas' / 'numpy'

外置参数

外置参数是指标在运行前可通过 UI 界面配置的属性,需要通过 self.params.xxx进行访问。若没有额外声明 is_main,指标默认在副图加载:

from pydantic import BaseModel

class Params(BaseModel, validate_assignment=True):
    from pydantic import Field

    # is_main=True 主图显示,False 副图显示
    is_main:bool = Field(default=True, title="是否是主图")
    # 可添加任意自定义参数
    fast:int = Field(default=10, title="快线周期")
    slow:int = Field(default=20, title="慢线周期")
    threshold:float = Field(default=0.5, title="阈值")

目前外置支持 4 种数据类型:

类型 说明 界面表现
bool 布尔型 复选框
int 整型 数字输入框
float 浮点型 数字输入框
str 字符串 文本输入框

不同的类型在指标面板会自动生成对应的输入框,用户可直接在指标面板中修改参数值。


相关阅读

已复制到剪贴板
指标文档 · 期货版修订 R2

返回指标文档 · 期货版板块

评论