1、指标编写

1.1新手快速上手

1.1.1 缩进与空格

使用4个空格进行缩进,不使用制表符(Tab)。在运算符两侧、逗号后面和冒号后面添加空格

1.1.2 命名规范

变量、函数和类名使用小写字母和下划线分隔,如my_variable。常量使用大写字母和下划线分隔,如MY_CONSTANT

1.1.3 指标小demo运行案例

该demo以5日单均线为例,步骤如下:

第一步是先调用data_init方法定义了一个空列表,并指定了一条均线buffer_line1作为输出对象;第二步是调用了data_calculate方法计算5日均线。

2.1.1 创建指标文件夹

首先在期魔方策略界面中,先点击指标列表,再点击[新增]进入新增分类窗口,输入文件名和注释说明后点击[确定]后成功创建新文件夹

image-20240929100859853

2.1.2 创建Python指标文件

(1)策略->指标列表 -> 新增按钮->新增指标弹窗->填写好指标名称,选择语言为“python”->点击确定按钮

image-20240929102636039

(2)第一次使用编辑器的用户需先下载编辑器

image-20240929102848131

(3)策略页面出现下载中进度条

image-20240929102921986

(4)下载完成后会自动解压

image-20241022104946864

(5)编辑器下载完自动解压后,vscode编辑器会自动出现系统自带的基础编程代码框架

image-20241022105312417

(6)您可以根据您的需求进行编写代码,编写完成后在空白处右键,点击[python编译],若提示[编译成功!]则为正常,若编译提示失败,那么需要根据报错原因去对代码行进行筛查以解决问题

image-20240929110717485

(7)解决好问题后,再次选择编译以验证查看是否提示编译成功,成功后即可返回软件运行

image-20240929104308417

(8)如遇到缺失模块,找到安装目录下coder文件夹所在的位置,复制路径,使用命令:“xx\期魔方\coder\python3116\python.exe -m pip install xx模块”

image-20240929105542104

2.1.3 创建麦语言指标文件

与创建python指标的步骤基本一致:

策略->指标列表 -> 新增按钮->新增指标弹窗->填写好指标名称,选择语言为“My-Language”->点击确定按钮

image-20241031170909912

点击确定后可以在指标列表中找到刚才新增的my-Language指标

image-20241031171319520

2.1.4 使用指标

行情页面使用指标:

编译成功的指标,可在行情->指标->自编指标中查看并渲染到K线图上展示效果

image-20240929144553260

一个行情可以加载多个指标,您只需要继续点击加载别的指标即可,并在我的加载或行情左上方查看您添加的具体指标

image-20240929144922349

任务页面使用指标:

任务->启动任务->指标标识->指标面板->选择指标,应用指标在任务实时行情K线中

image-20240929145131390

 

1.2 指标文件结构介绍

按照指标框架,先导入外置参数,再通过2个主要的结构方法函数定义指标的输出对象并进行相应的计算:

 

1.3 指标函数介绍

1.3.1 结构性函数

指标文件主要由2个结构性函数构成,这2个函数开发者必须编写

(1)data_init()

函数功能:

初始化函数,设置基本参数

函数说明:

自定义指标输出的对象(如案例中的self)并对其进行初始化,每次启动只调用一次

 

参数说明类型必填
buffer_code指标键名str
buffer_name序列名称str
buffer_type序列类型,参考DrawStylestr
colorK线颜色(rgba格式)str

(2)data_calculate(rates_total, time, open, high, low, close, volume)

函数功能: 根据K线数据计算所需要的指标输出对象的值

函数说明:

a. 该函数提供以下7个参数用于计算指标,计算指标的具体过程由开发者自己编写

b. 当K线数据更新时,该函数会被同步调用一次,接收到最新的K线数据

c. 根据开发者编写的逻辑计算出指标输出对象的值,详情参照使用案例

参数说明:

参数说明类型必填
rates_total数据长度int
timeK线的时间集合list
openK线的开盘价list
highK线的最高价list
lowK线的最低价list
closeK线的收盘价list
volumeK线的成交量list

1.3.2 功能性函数

指标文件中的功能性函数已封装好,这2个函数开发者直接调用即可

(1)init_buffer()

函数功能:

指标的计算对象创建方法

函数说明:

a. 该函数提供以下4个参数

b. 该函数用于创建指标计算对象,所有被创建的指标计算对象才能在data_calculate()函数中使用

参数说明:

参数说明类型必填
buffer_code指标键名str
buffer_name序列名称str
buffer_type序列类型,参考DrawStylestr
colorK线颜色(rgba格式)str

(2)is_init()

函数功能:

指标的判断是否为初始化状态方法,无参数

函数说明:

a. 返回自定义对象是否为初始化状态,返回True为初始化未完成状态,False为初始化已完成状态

b. 用户需要根据自身业务需求选择使用全量数据计算或增量数据计算

DrawStyle

定义指标输出对象在图表上显示的类型,本例为MULTI_LINE,以下参数作为目前主要实现的功能类型,后续有待丰富

参数说明类型必填
MULTI_LINE线条str
MULTI_BAR柱体str
MULTI_TEXT文字str
MULTI_SVGICONSVG图标集合str
COLOR_KLINEK彩色K线str

 

1.4 指标使用案例

双均线指标案例:

在默认指标代码框架中,输出两条线,一条为5日均线,另一条为10日均线:

 

1.5 常见问题

(1)在代码编写时,一定要注意编写格式的规范性问题,这样在自己编写想要实现的指标逻辑时,计算机语言才能读懂您的语言

(2)上面给出的指标框架中,变量、函数和类名在使用情景下,最好使用一眼看上去就能通俗易懂的名称,如苹果(apple)

(3)在编写指标代码之前,一定要区分好是用MY语言编写还是用Python语言编写,否则代码行可能会编译失败而无法正常运行