本文讲解期魔方 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 |
字符串 | 文本输入框 |
不同的类型在指标面板会自动生成对应的输入框,用户可直接在指标面板中修改参数值。
相关阅读

评论
登录后参与讨论,与站内账号体系共用。