策略移植过程中的细节差异梳理

timi
timi 想要稳稳的幸福~

2 人点赞了该文章 · 379 浏览

        将聚宽论坛策略移植到PTrade平台过程中,会遇到很多细节差异导致运行报错,这篇帖子将列举移植过程中遇到的共性问题,对比不同平台的代码并给出相应的解决办法,文章中未提到的问题欢迎大家在留言区评论补充共同探讨!


        1、PTrade平台与 聚宽论坛策略使用的股票后缀不一致会导致移植时报错,需要进行转换,PTrade平台在上交所上市的股票代码后缀名为.SS,在深交所上市的股票代码后缀名为.SZ;聚宽论坛策略中在上交所上市的股票代码后缀名为 .XSHG,在深交所上市的股票代码后缀名为 .XSHE。

        2、PTrade平台在使用内置tushare数据时,在上交所上市的股票代码后缀名为.SH,在深交所上市的股票代码后缀名为.SZ;具体策略实现过程中平台数据转换有如下转换代码。


PTrade平台股票代码数据转tushare股票代码数据:



tushare股票代码数据转PTrade平台股票代码数据:



        3、 PTrade平台与聚宽论坛策略定时设置交易运行时间的run_daily函数入参方式不同,在编写中需要注意差异化的格式,以下给出代码对比:



        4、PTrade平台与聚宽论坛策略获取全市场标的的函数不同,以下将给出代码对比;聚宽论坛策略中回测日日期context.current_dt等价于PTrade平台中的context.blotter.current_dt。



        5、PTrade平台与聚宽论坛策略获取股票行情数据及财务数据的入参不同,但功能相同;聚宽论坛策略具体涉及的数据获取函数有get_history()与attribute_history()、 get_price()与get_price()、 history()、get_fundamentals ()等,在编写代码过程中需要仔细查阅帮助文档,正确入参,初学者尽量避免使用Panel。以下给出两平台的代码对比:



        6、PTrade平台与聚宽论坛策略过滤ST、*ST、退市股票、停牌股票的模块函数不同,聚宽策略代码中主要利用get_current_data()读取股票名进行过滤,PTrade平台有get_stock_status()获取股票状态信息函数进行过滤,在实际操作中给出实例代码进行替换即可。以下给出两平台的代码对比:



        7、PTrade平台与聚宽论坛策略获取行情交易快照的函数不同,聚宽策略代码中主要利用get_current_data()获取行情快照,PTrade平台有get_snapshot()获取行情快照,需注意PTrade平台中get_snapshot()仅在交易模块可用,在回测时应将对应函数替换为get_history()取得行情数据。

        8、PTrade平台与聚宽论坛策略下单函数有明显区别,聚宽论坛策略除order下单函数外,还有多个order衍生下单函数,如order_target、order_value、order_target_value函数,这些函数在PTrade平台中均可用于策略回测的下单交易函数使用,但在模拟交易或实盘交易的过程中,推荐使用order进行下单交易,以避免下单过程中出现的意外情况。

        9、PTrade平台在仿真模拟交易或实盘交易使用下单函数下单完成后,Portfolio或Position对象数据包含账户当前的资金权益、标的信息等的数据更新可能存在6s内延迟,建议在合适位置合理设置延迟或者判断交易委托状态时合理使用on_trade_response或on_order_response相对应的主推函数进行协助判断。

        10、PTrade平台与聚宽策略after_trading_end盘后处理模块使用基本一致,可以用于输出当日持仓或交易信息,账户总权益及各标的成本价、收益率等信息。还可以用于策略持久化处理,将数据信息输出至研究环境内进行校验,验证无误后重新上传至策略内提供量化交易基础数据,在PTrade平台中要重点关注数据保护的问题,提高策略在交易过程中运行的容错率。


        接下来,该系列文章将重点介绍如何快速上手移植简单的聚宽论坛量化交易策略,以及根据实例进行手把手示例教学,敬请关注。


发布于 2024-03-21 19:12

免责声明:

本文由 timi 原创发布于 百果量化交流平台 ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论