Python帮助文档

一、代码格式要求

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

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

二、Python指标编写步骤

1.创建指标文件夹

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

2.创建Python指标文件

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

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

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

(4)编辑器下载完后,vscode编辑器会自动出现系统自带的基础编程代码,您可以根据您的需求进行编写代码,编写完成后,点击右上方的[Run Python File]即可运行

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

3.使用指标

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

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

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

4.指标代码编写

初始化函数

函数:data_init

说明:定义指标初始化

参数类型必填说明
var1str序列名称
MULTI_LINEstr序列类型,参考DrawStyle
rgba(255,0,0,1)strK线颜色

用法:

返回结果:

 

指标计算

函数:data_calculate

说明:指标的计算函数

参数类型必填说明
rates_totalint数据长度
timelistk线的时间集合
openlistk线的开盘价
highlistk线的最高价
lowlistk线的最低价
closelistk线的收盘价
volumelistk线的成交量

用法:

 

DrawStyle

函数:DrawStyle

说明:目前仍在整理中,待完善,仅供简单参考

参数类型必填说明
MULTI_LINEstr线条
MULTI_BARstr主题
MULTI_TEXTstr多行文字
MULTI_SVGICONstrSVG图标集合
COLOR_KLINEKstr彩色K线
CALCULATE_DATAstr计算数据

用法:

 

5.指标代码案例

(供参考,用户重点关注“开发者编写代码位置”)

三、Python策略编写

1.创建策略文件夹

在策略页面中点击策略列表,再点击[新增]开始新增策略分类文件夹

2.创建策略文件

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

②添加策略成功后跳转到vscode编辑器页,完成您的代码编写后点击[Run Python File]按钮进行编译,如下图

3.使用策略

①添加回测策略

编译成功的策略,可在回测->添加回测页面->测试模型中选择自己的策略模型,带有参数的策略,还需填写策略参数

②开始回测

添加成功后,点击[回测]按钮,回测进度条100%表示回测完成

③查看回测报告

点击[详情]查看您的回测策略数据是否匹配

①添加任务

在任务界面找到您自己的策略,双击即可进入添加任务窗口,设置您的参数

②启动任务

启动任务后的实时k线图

4.策略代码编写

结构函数

初始策略函数

函数:onInit

说明:初始策略函数,每次开启只运算一次

用法:

 

新行情输入运算

函数:onTick

说明:每当有新行情时,输入则运算一次

用法:

 

结束函数

函数:onStop

说明:每次任务结束会调用一次; 可以执行一些结尾统计操作

用法:

 

接收任务订单信息

函数:onOrder

说明:接收该任务开出的订单信息,可以在接收到订单后执行撤单

用法:

 

方法函数

获取指标

函数:getIndicators

说明:获取账户的指标计算结果

参数类型必填说明
indicators_namestr指标的名称
symbolstr产品名称
periodstr周期
exchangestr交易所CODE
params外置参数指标的外置参数列表

用法:

返回结果:

 

获取k线数据

函数:getKline

说明:获取k线具体数据

参数类型必填说明
symbolstr品种合约
exchangestr交易所CODE
periodstr运行周期
pricestr价格序列
lenint获取k线数据长度

用法:

 

获取产品合约信息

函数:getSymbolInfo

说明:获取品种合约信息

参数类型必填说明
mf_engine.mFsymbolstr品种合约
tickFiledNamestrCTP返回字段名称,如PriceTick是每根tick的价格

用法:

返回结果:

 

输出日志

函数:log

说明:输出日志内容

用法:

 

开单

函数:customOpenOrder

说明:期货交易接口,开仓、开空、平仓和平空

参数类型必填说明
symbolstr合约代码
pricestr价格
volumestr手数
priceTypestr报价类型 ,包含"市价/限价",默认限价
dicrectionstr报单方向,包含 "多/空"
offsetstr报单类型,0:开单;1:平今仓;3:平昨

用法:

 

返回账户信息

函数:getAccount

说明:返回登录账户的信息(无参数)

用法:

返回结果:

ACCOUNTDATA对象查看 (Ctrl+点击实现跳转)

 

返回订阅产品数据

函数:getTickByPosition

说明:返回当前本机订阅的产品数据(无参数)

用法:

返回结果:

TICKDATA对象查看 (Ctrl+点击实现跳转)

 

返回K线数量

函数:bars

说明:返回基础K线的数量(无参数;返回值为整数)

用法:

返回结果:

 

获取撤单信息

函数:actionOrder

说明:无返回值,撤单信息在onOrder (Ctrl+点击实现跳转)获得

用法:

 

获取持仓信息

函数:getPosition

说明:获取持仓信息(无参数)

用法:

返回结果:

POSITIONDATA对象查看 (Ctrl+点击实现跳转)

 

对象

ACCOUNTDATA
属性类型说明
BrokerIDstr经纪公司代码
AccountIDstr投资者帐号
PreMortgagefloat上次质押金额
PreCreditfloat上次信用额度
PreDepositfloat上次存款额
PreBalancefloat上次结算准备金
PreMarginfloat上次占用的保证金
InterestBasefloat利息基数
Interestfloat利息收入
Depositfloat入金金额
Withdrawfloat出金金额
FrozenMarginfloat冻结的保证金
FrozenCashfloat冻结的资金
FrozenCommissionfloat冻结的手续费
CurrMarginfloat当前保证金总额
CashInfloat资金差额
Commissionfloat手续费
CloseProfitfloat平仓盈亏
PositionProfitfloat持仓盈亏
Balancefloat期货结算准备金
Availablefloat可用资金
WithdrawQuotafloat可取资金
Reservefloat基本准备金
TradingDaystr交易日
SettlementIDint结算编号
Creditfloat信用额度
Mortgagefloat质押金额
ExchangeMarginfloat交易所保证金
DeliveryMarginfloat投资者交割保证金
ExchangeDeliveryMarginfloat交易所交割保证金
ReserveBalancefloat保底期货结算准备金
CurrencyIDstr币种代码
PreFundMortgageInfloat上次货币质入金额
PreFundMortgageOutfloat上次货币质出金额
FundMortgageInfloat货币质入金额
FundMortgageOutfloat货币质出金额
FundMortgageAvailablefloat货币质押余额
MortgageableFundfloat可质押货币金额
SpecProductMarginfloat特殊产品占用保证金
SpecProductFrozenMarginfloat特殊产品冻结保证金
SpecProductCommissionfloat特殊产品手续费
SpecProductFrozenCommissionfloat特殊产品冻结手续费
SpecProductPositionProfitfloat特殊产品持仓盈亏
SpecProductCloseProfitfloat特殊产品平仓盈亏
SpecProductPositionProfitByAlgfloat根据持仓盈亏算法计算的特殊产品持仓盈亏
SpecProductExchangeMarginfloat特殊产品交易所保证金
RemainSwapfloat剩余换汇额度
FrozenSwapfloat延时换汇冻结金额

 

TICKDATA
属性类型说明
TradingDaystr交易日
InstrumentIDstr合约代码
ExchangeIDstr交易所代码
ExchangeInstIDstr合约在交易所的代码
LastPricefloat最新价
PreSettlementPricefloat上次结算价
PreClosePricefloat昨收盘
PreOpenInterestfloat昨持仓量
OpenPricefloat今开盘
HighestPricefloat最高价
LowestPricefloat最低价
Volumeint数量
Turnoverfloat成交金额
OpenInterestfloat持仓量
ClosePricefloat今收盘
SettlementPricefloat本次结算价
UpperLimitPricefloat涨停板价
LowerLimitPricefloat跌停板价
PreDeltafloat昨虚实度
CurrDeltafloat今虚实度
UpdateTimestr最后修改时间
UpdateMillisecint最后修改毫秒
BidPrice1float申买价一
BidVolume1int申买量一
AskPrice1float申卖价一
AskVolume1int申卖量一
BidPrice2float申买价二
BidVolume2int申买量二
AskPrice2float申卖价二
AskVolume2int申卖量二
BidPrice3float申买价三
BidVolume3int申买量三
AskPrice3float申卖价三
AskVolume3int申卖量三
BidPrice4float申买价四
BidVolume4int申买量四
AskPrice4float申卖价四
AskVolume4int申卖量四
BidPrice5float申买价五
BidVolume5int申买量五
AskPrice5float申卖价五
AskVolume5int申卖量五
AveragePricefloat当日均价
ActionDaystr业务日期

 

POSITIONDATA
属性类型说明
InstrumentIDint合约代码
BrokerIDstr经纪公司代码
InvestorIDstr投资者代码
PosiDirectionstr持仓多空方向
HedgeFlagstr投机套保标志
PositionDatestr持仓日期
YdPositionint上日持仓
Positionint今日持仓
LongFrozenint多头冻结
ShortFrozenint空头冻结
LongFrozenAmountfloat开仓冻结金额
ShortFrozenAmountfloat平仓冻结金额
OpenVolumeint开仓量
CloseVolumeint平仓量
OpenAmountfloat开仓金额
CloseAmountfloat平仓金额
PositionCostfloat持仓成本
PreMarginfloat上次占用的保证金
UseMarginfloat占用的保证金
FrozenMarginfloat冻结的保证金
FrozenCashfloat冻结的资金
FrozenCommissionfloat冻结的手续费
CashInfloat资金差额
Commissionint手续费
CloseProfitint平仓盈亏
PositionProfitfloat持仓盈亏
PreSettlementPriceint上次结算价
SettlementPricefloat本次结算价
TradingDaystr交易日
SettlementIDint结算编号
OpenCostfloat开仓成本
ExchangeMarginfloat交易所保证金
CombPositionint组合成交形成的持仓
CombLongFrozenint组合多头冻结
CombShortFrozenint组合空头冻结
CloseProfitByDatefloat日盯市平仓盈亏
CloseProfitByTradefloat逐笔对冲平仓盈亏
TodayPositionint今日持仓
MarginRateByMoneyfloat保证金率
MarginRateByVolumefloat保证金率(按手数)
StrikeFrozenint执行冻结
StrikeFrozenAmountfloat执行冻结金额
AbandonFrozenint放弃执行冻结
ExchangeIDstr交易所代码
YdStrikeFrozenint执行冻结的昨仓
InvestUnitIDstr投资单元代码
PositionCostOffsetfloat大商所持仓成本差值,只有大商所使用
TasPositioninttas持仓手数
TasPositionCostfloattas持仓成本

5.策略代码案例

(供参考,用户重点关注“开发者编写代码位置”)

 

麦语言帮助文档

一、麦语言指标编写

1.创建麦语言文件

在指标列表中任意分类中点击[新增],选择[My-Language],输入指标名称点击确定

2.麦语言指标编译

面板自动显示出vscode编辑器,此时需要将其放大打开进行编译

3.主附图设置

IsMainIndex,当IsMainIndex为0时,指标叠加方式为副图,当IsMainIndex为1时,指标叠加方式为主图,当IsMainIndex为3时,指标叠加方式为主图替换, 当不设置IsMainIndex函数时。默认为副图叠加

4.外部参数设置

myinput();将指标参数映射到客户端参数栏

5.预警函数设置

MESSAGE(COND,'TEXT',Empty);满足信号COND时,触发预警消息,消息内容为TEXT,Empty为0时,则为立即触发,Empty为1时,收线触发。消息方式在设置中设置

6.指标调试

在指标列表中,找到麦语言的指标,点击[编辑]后进入vscode剪辑器

根据您的需求编写指标后,右键点击[麦语言编译]

如果编译成功,在界面右下方会出现编译通过,此时指标调试成功

如果编译失败,界面右下方会出现编译异常,请到控制“输出”看原因,此时点击界面左上方终端->新建终端查看具体原因

点击终端的输出以及麦语言输出

出现具体错误原因,您可以据此继续完善编译

常见问题

一、期魔方软件下载安装

下载地址

下载地址:(https://www.qmfquant.com/#/product)

进入下载网页后,双击[软件下载]

电脑配置

期魔方量化投研平台仅支持电脑端运行,且电脑配置需要在win7及以上操作系统,2核4G以上配置,在安装前,请确认您的电脑配置

安装流程

点击软件下载后,若电脑有360或其他杀毒软件,会遭到拦截,此时需要点击信任即可(以Edeg浏览器作为案例)

如果出现以上提示,请点击右键后点击[保留]

在详细信息中点击[仍然保留]信任后即可开始安装

待软件下载成功后,在下载任务栏中双击[打开文件]

文件打开后,双击[下一步]进入安装

在准备安装页面中点击[安装],开始进行安装

初次安装时,需耐心等待此界面进度条完成后代表完成安装

异常情况

如果您的电脑安装有360等杀毒软件,可能会阻止期魔方客户端的安装和运行,可以选择终止其运行或卸载。

二、期魔方账号注册

期魔方账号注册和登录

在完成安装后,PC端会自动弹出登录窗口,如下图

如果没有自动弹出登录窗口,请您在电脑桌面找到期魔方客户端快捷方式,双击打开它

如果您是初次登录,没有期魔方账号,则需在登录窗口双击[注册]

在双击[注册]后,会自动进入魔方商学院注册界面,点击[立即注册]进入注册页面,如下图

在注册页面中,设置您的用户名,最好是用英文名或是您中文名的拼音,在后续登录期魔方客户端中更不易出错

输入正确的手机号后,会弹出人机验证窗口,向右准确滑动后,系统会自动发送验证码

在手机短信中查看验证码,复制或记住数字,输入验证码

在验证码正确输入后,设置您的登录密码,一定要记住您的密码

提交注册信息后,魔方学院会显示账户信息,则表示账号注册成功

如果账号注册成功或者本身已有账号,则可打开期魔方客户端窗口,输入您的账号密码,账号可以是您注册时设置的用户名或者电话号码,正确输入完成后即可双击登录

在登录过程中,可能会出现提示[连接获取品种的网络查询接口超时],此时点确定即可继续完成登录

修改密码

如果您想修改密码,点击魔方学院网址(https://academy.qmfquant.com/user/account),在用户中心中双击[账户安全],如下图

双击[修改密码]即可开始修改密码,要输入您的旧密码和新密码后,双击[确认提交],即可完成修改密码

如果您忘记了原密码,双击修改密码窗口的[忘记原密码,重设密码]

此时需要您输入绑定的手机号码,以及新的密码,输入完成后点击[确认提交]即可成功修改密码

 

微信登录

您在用微信登录期魔方官方网站前,应进行微信账号的绑定,在魔方学院—账户安全页面中点击微信绑定,如下图

用您的微信扫描二维码后自动进入期魔方公众号界面,点击关注公众号,如下图

关注期魔方公众号后,点击发消息,如下图

进入消息页面后,发送“验证码”,即可得到验证码,记住验证码在300秒内正确输入到验证码中,点击绑定,即可完成微信绑定

完成微信账号绑定后,在魔方商学院登录中可以选择微信社交账号登录,如下图

进入扫码登录界面,扫描二维码,向期魔方公众号发送“验证码”消息,得到验证码在300秒内正确输入后,点击[登录]即可完成微信登录

三、指标操作相关

导入导出/删除

①指标导入

在指标列表中,点击右上方[导入],在导入窗口中选择您想导入的pythonmy-language语言

选择导入语言后,点击您想导入的文件,点击[打开]

页面中出现导入成功即可

在行情界面中,点击[导出]选择您要导出的文档,记住上方的打开路径,然后点击打开

打开后,会弹出此电脑文件,需要根据您之前的路径依次点进去后,找到文件后,点击[选择文件夹]

选择后,页面出现导出成功即可

加载运行指标

在行情页面,点击右上方指标图形,弹出指标面板后,在自编指标中选择您想要运行的指标,点击三个小点后双击[加载指标]

指标运行成功后,会显示在实时行情K线图中,方便您进行观察分析

编辑指标

方式一:在行情页面,点进指标面板,对您想编辑的指标进行编辑,自动跳转到vscode编辑器

只有自编指标且加载后才能进行编辑

方式二:在策略页面,对您想编辑的指标点击[编辑],即可自动跳转至vscode编辑器页面

四、期货账号登录

账号登录

第一步,点期魔方客户端右下角,[登录] 按钮

第二步,选择自己的期货公司,并输入自己的期货账户和密码,执行登录

第三步,出现持仓面板弹窗后,登录完成

权限问题

穿透相关

 

多账户登录

在持仓面板右上角点击[设置],进入期货账号管理窗口中,如下图

点击账号管理右下方的添加账号

输入您想添加的账号的信息,点击登录或完成,这个账号必须真实存在并绑定在对应期货公司中,否则无法登录成功

如果您已添加多个账户,在切换账户时,先点击您想登录的另一个期货账号前的选项,先选中它,然后点击登录

五、邮箱消息绑定

在期魔方客户端右上方点击设置

进入消息设置窗口,先点击邮件消息的选项后,点击邮箱配置

在邮箱配置中,输入您的邮箱地址后,点击测试,邮箱收到测试消息后点击确定即可完成邮箱绑定

六、微信消息绑定

在消息设置窗口,先点击微信消息的选项后,点击微信配置

输入您微信绑定的电话号码,点击确定后即可完成微信绑定

点击测试,企业微信收到消息绑定成功后,即绑定成功

完成绑定后,根据您想要收到的消息内容进行选择

七、策略回测和常见问题

回测策略设置

在期魔方客户端平台点击上方回测板块,添加回测

并根据您想要回测的交易品种、测试资金及开始结束时间等来对回测基础参数进行设置,设置完成后点击保存即可在后续进行回测

设置好参数后,点击[回测],待回测进度条完成100%后或者右上方提示,即可点击[详情]查看回测报告

在回测报告中,您可以根据您想要了解的部分进行针对性的查看,也可以进行一个较为综合的查看分析。与此同时,回测报告包含了综合报告、收益回撤、资金风险、图表分析和明细详情等五大板块的内容,致力于为您提供较为详尽的回测分析,以期帮助您的投资决策

常见问题

如果您设置的回测开始时间是比回测结束时间更近的年份,则回测进度将为0并提示未获得该时段的数据

此时您需要将开始时间和结束时间重新设置一下,点击[编辑参数]进入回测参数设置窗口

重新编辑参数,使开始时间早于结束时间,保存后即可进行回测

如果您选择回测的产品合约生效的时间少于开始时间到结束时间的时间间隔,不会影响回测的进行,但回测的信号起始时间是该产品合约生效开始交易的时间

八、任务加载和常见问题

任务添加

在任务添加之前,必须登录期货账号任务才能运行,并且您设置的任务账号需与您登录的期货账号一致,如下图:登录的是226714的账号,task-01任务不能执行,因为其账号为185193

进入任务界面中,查看您添加的策略是否在策略列表中,双击您想添加的策略列表中[我的策略]的任意一个策略,进入添加任务窗口

设置好默认参数和外置参数后,点击提交后,添加任务成功

任务运行

选择一个您想运行的任务,点击[启动]

任务启动后会出现实时行情K线图

您可在任务实时K线图中加载您需要的指标,点击实时K线图右上方的指标按钮,选择您想嵌入的指标,加载指标后即可显示在K线图中

如果您想同时启动多个任务,则直接点击多个任务的[启动]按钮,点击不同任务即可完成任务切换

常见问题

九、盘手训练

时间设置

在期魔方客户端中点击训练模块,右下角点击设置,进入训练参数设置

初始资金,应不低于最小保证金金额

滑点损耗(输入0则不启用此参数)

保证金比例(默认读取交易所标准保证金比例,可以不用额外设置)

K线数量,默认不超过8000根,具体需要根据合约长度计算

开始时间,默认为从今天开始往前推根K线的时间,和K线根数设置二选一

在时间设置中,您可选择[Now]选项,则定位到现在的时间为初始训练时间,也可已在日期中选择任意时间作为训练开始时间

设置好训练参数后,点击[保存设置]即可

品种选择和周期选择

方式一:在训练模块左下角选择您想训练的品种,以及手数等,进行买多或卖空等操作

方式二:按键盘A~Z二十六个字母中任意一个,启动键盘精灵,在键盘精灵中搜索您想选择的交易品种

在训练页面中,在三个小窗口中可以选择不同的训练周期

所有参数都设置好后,点击右下角的的启动按钮,开始进行训练

训练报告

待训练进度完成100%后,点击[数据分析]进入盘手训练数据报告

十、错误说明

一旦弹出提示“后端接口服务已经中止运行”内容,意味这后端的server没有启动成功,首先才检查操作系统为window10以前的操作系统,目前暂时不支持win7,如果低操作系统版本,需要购买云windows服务器,并安装的是window10以上的操作系统