前言:
此时我们对“python策略”可能比较关切,各位老铁们都想要学习一些“python策略”的相关知识。那么小编在网络上网罗了一些关于“python策略””的相关资讯,希望大家能喜欢,我们一起来学习一下吧!今天就我最近在用的一款量化交易软件,给大家详细演示一下“如何创建一个Python策略”,先声明一下:小编用的这款量化交易软件使用门槛很低哟,一般的个人投资者也是可以免费使用的!
一、新建一个Python策略
模型创建方法有三种:
1.在【策略开发】界面,使用平台预置的各种示例模型,点击后方“编辑”按钮,并在弹出的【策略编辑器】中以此示例模型代码为基础进行编写。
2.在【策略开发】界面,点击新建模型,选择Python模型,在弹出的【策略编辑器】中从头到尾编写一个用户自己的量化模型。
3.在模型管理面板右键,选择新建模型,并选择Python模型。
二、策略编写
【策略编辑器】是专门为模型开发者设计的,集成了模型列表、函数列表、函数帮助、模型基本信息、参数设置、回测参数等多个部分,拥有代码高亮、自动补全等特色功能于一体的便捷的模型编辑、开发环境。模型编辑页面右侧可选择策略默认的周期、品种;编写Python策略需在开始时定义编码格式,如gbk,之后可选择导入第三方库,所选第三方库要在量化交易软件管理端白名单内才可运行。Init方法和handlebar方法的定义是必须的。
Init方法会在策略运行开始时调用一次,用以初始化所需对象(包裹在ContextInfo对象中传递),设定股票池等。Handlebar方法会在历史K线上逐K线调用,平台会保存函数所做更改。在盘中交易时间,handlebar函数会随行情推送(tick数据)被调用,当一个tick数据为所在K线最后一个tick时,此tick调用的handlebar所做的更改会被平台保存,如有交易指令,会在下一根K线的第一个tick到来时发送;其他tick可以打印运行结果,但handlebar所做更改不会被保存,也不会发送交易信号。
编写创建完模型后,对应模型的基本信息和回测参数进行设置。基本信息包括:
回测模式指策略以历史行情为依据进行运算,投资者可观察该策略在历史行情所获得的年化收益率、夏普比率、最大回撤、信息比率等指标表现,回撤参数包括:
使用者也可在参数设置中设置好参数值,参数名为变量名,模型中可以调用。最新值为变量默认值,运行/回测模式使用。
其中最小/最大/步长项,为遍历参数。初始项可不填。最小/最大都是包含在遍历区间内的,如图所示三个变量,测评时会遍历(20-3+1)[(160-140)/10+1][(-150+250)/10+1]种组合。
点击公式测评,可选择回测模式支持的指标,如单位净值,最大回撤等,作为评价标准。点击优化,评测结果弹窗显示不同参数变量组合下的回测结果,根据结果选择最优参数组合。可点击所需指标进行排序。需要注意的是,在测评之前,需要针对所选品种和周期补充数据。三、补充数据
在创建用户的模型之前,用户应使用客户端提供的“数据管理”功能,选择并补充模型所需的相应市场、品种以及对应周期的历史数据。
四、策略运行
策略编写完毕后,点击编译,可保存策略。编译按钮在Python策略中只起保存功能,不会检查语法与引用的正误。之后点击运行可以看到策略运行效果(如有错误,会在日志输出的位置报错)。
如当前平台所处界面为“行情”界面或“交易”界面,点击运行之前,需在行情中手动设置好K线品种和周期,点击运行后,策略即可在当前主图下运行。
如平台当前界面处于“我的主页”界面或“策略开发”和“策略交易”等非行情界面,点击运行时,会基于策略编辑器-基本信息中所设置的默认周期和默认品种运行。
当选择的运行位置为副图时,如想关闭策略,将主图下方策略运行的附图关闭即可。
当选择的运行位置为主图叠加时,如想关闭策略,在主图上右键单击取消叠加指标即可。当选择的运行位置为主图时,键盘精灵输入KLINE即可结束模型运行。
五、策略调试
如果策略运行不成功,需要进行策略调试这一步。当运行出错时,报错信息会显示在日志输出面板,以供修改调试之用。
六、策略回测
对某一策略编译成功后,点击回测,可以通过日志输出查看模型基于历史行情数据回测情况和表现。
在回测之前,需要设置好策略回测运行的主图品种和周期,以及相关的回测参数。回测主图和周期可以在策略编辑器-基本信息中进行设置,回测开始和结束时间、基准、费率等可以在策略编辑器-回测参数中设置。用户在回测前,需根据此策略回测运行的主图、周期和时间,在【数据管理】中对行情数据进行下载补充。如回测时间设置为20180930至20190530,运行主图为SZ.000001平安银行日线。如果回测正常的话,主界面会跳转到模型设置的默认标的和默认周期界面,并输出模型绩效分析结果。
此时,可最小化或者关闭【策略编辑器】,并对回测结果进行分析,随着光标在K线主图上的移动,右边回测结果展示窗口会动态显示截止光标所在当日的绩效分析结果(包括年化收益,基准年化收益,单位净值,下方差,信息比率,夏普比率,波动率,索提诺比率,阿尔法系数,贝塔系数,跟踪误差,最大回撤,胜率等)、当日买入、当日卖出、持仓列表。以上列表均可鼠标右键复制和导出数据。
如需根据模型生成的买入、卖出列表进行手工交易,则可直接点击“买入’或“卖出’按钮,平台会弹出下单界面由用户进行确认后进行普通交易下单或算法交易下单。交易方式可点击卖出按钮右侧的普通交易进行切换设置。
副图回测指标:提供图形化的展示,除去绩效分析的相关指标外,用户可以通过编辑模型代码自定义输出一些特色指标,鼠标右键可以选择复制模型运行结果(每一天的数据)。
另外,回测结果还提供了持仓分析、历史板块汇总、操作明细、日志输出等信息,方便用户进行深入分析。
持仓分析:可查看光标所在当天持仓的行业分布,展示在相关行业的市值情况、盈利情况、权重以及股票数量情况,鼠标右键可以复制和导出数据;可切换对比基准,和模型持仓进行对比。
历史板块汇总:可查看模型自回测日期以来到光标所在日期该模型交易标的的汇总信息,包括累计盈亏、累计交易量、累计交易额、持仓天数等;点击选择板块,可以自行选择其常用板块进行板块的各项数据累计汇总;汇总数据均可以进行排序,鼠标右键可以复制和导出数据。
操作明细:可查看模型回测的历史每一笔交易的明细。
日志输出:可用于调试输出模型回测和运行情况。
七、回测、运行两种模式的区别
在模型编辑器中,有“回测”和“运行”两个按钮,分别代表两种模式,它们之间的区别如下:
1.回测模式指策略以历史行情为依据,以回测参数中的开始时间、结束时间为回测时间区间进行运算,投资者可观察该策略在历史行情所获得的年化收益率、夏普比率、最大回撤、信息比率等指标表现。回测模式目前仅支持股票、期货、ETF期权三种业务。
2.运行模式指策略根据实时行情信号进行运算,以主图行情开始时间到当前时间为运行区间,进行策略的模拟运行,但不进行真实的委托。运行模式可以支持股票、期货、ETF期权、两融、沪港通、深港通等业务品种。
注:如果需要向模拟/实盘柜台发送真实的委托,请将策略加入到“模型交易”中,并将策略的运行模式切换为“实盘”模式。