十大券商有免费的量化ptrade吗?api接口哪家券商有?
发布时间:2024-9-6 15:17阅读:161
策略API介绍
设置函数
set_universe-设置股票池
set_universe(security_list)
使用场景
该函数仅在回测、交易模块可用
接口说明
该函数用于设置或者更新此策略要操作的股票池。
注意事项:
股票策略中,该函数只用于设定get_history函数的默认security_list入参, 除此之外并无其他用处,因此为非必须设定的函数。
参数
security_list: 股票列表,支持单支或者多支股票(list[str]/str)
返回
None
示例
set_benchmark-设置基准
set_benchmark(sids)
使用场景
该函数仅在回测、交易模块可用
接口说明
该函数用于设置策略的比较基准,前端展现的策略评价指标都基于此处设置的基准标的。
注意事项:
此函数只能在initialize使用。
参数
security:股票/指数/ETF代码(str)
默认设置
如果不做基准设置,默认选定沪深300指数(000300.SS)的每日价格作为判断策略好坏和一系列风险值计算的基准。如果要指定其他股票/指数/ETF的价格作为基准,就需要使用set_benchmark。
返回
None
示例
set_commission-设置佣金费率
set_commission(commission_ratio=0.0003, min_commission=5.0, type="STOCK")
使用场景
该函数仅在回测模块可用
接口说明
该函数用于设置佣金费率。
注意事项:
关于回测手续费计算:手续费=佣金费+经手费
佣金费=佣金费率*交易总金额(若佣金费计算后小于设置的最低佣金,则佣金费取最小佣金)
经手费=经手费率(万分之0.487)*交易总金额
参数
commission_ratio:佣金费率,默认股票每笔交易的佣金费率是万分之三,ETF基金、LOF基金每笔交易的佣金费率是万分之八。(float)
min_commission:最低交易佣金,默认每笔交易最低扣5元佣金。(float)
type:交易类型,不传参默认为STOCK(目前只支持STOCK, ETF, LOF)。(string)
返回
None
示例
set_fixed_slippage-设置固定滑点
set_fixed_slippage(fixedslippage=0.0)
使用场景
该函数仅在回测模块可用
接口说明
该函数用于设置固定滑点,滑点在真实交易场景是不可避免的,因此回测中设置合理的滑点有利于让回测逼近真实场景。
注意事项:
无
参数
fixedslippage:固定滑点,委托价格与最后的成交价格的价差设置,这个价差是一个固定的值(比如0.02元,撮合成交时委托价格±0.01元)。最终的成交价格=委托价格±float(fixedslippage)/2。
返回
None
示例
set_slippage-设置滑点
set_slippage(slippage=0.001)
使用场景
该函数仅在回测模块可用
接口说明
该函数用于设置滑点比例,滑点在真实交易场景是不可避免的,因此回测中设置合理的滑点有利于让回测逼近真实场景。
注意事项:
无
参数
slippage:滑点比例,委托价格与最后的成交价格的价差设置,这个价差是当时价格的一个百分比(比如设置0.002时,撮合成交时委托价格±当前周期价格*0.001)。最终成交价格=委托价格±委托价格*float(slippage)/2。
返回
None
示例
set_volume_ratio-设置成交比例
set_volume_ratio(volume_ratio=0.25)
使用场景
该函数仅在回测模块可用
接口说明
该函数用于设置回测中单笔委托的成交比例,使得盘口流动性方面的设置尽量逼近真实交易场景。
注意事项:
假如委托下单数量大于成交比例计算后的数量,系统会按成交比例计算后的数量撮合,差额部分委托数量不会继续挂单。
参数
volume_ratio:设置成交比例,默认0.25,即指本周期最大成交数量为本周期市场可成交总量的四分之一(float)
返回
None
示例
set_limit_mode-设置成交数量限制模式
set_limit_mode(limit_mode='LIMIT')
使用场景
该函数仅在回测模块可用
接口说明
该函数用于设置回测的成交数量限制模式。对于月度调仓等低频策略,对流动性冲击不是很敏感,不做成交量限制可以让回测更加便捷。
注意事项:
不做限制之后实际撮合成交量是可以大于该时间段的实际成交总量。
参数
limit_mode:设置成交数量限制模式,即指回测撮合交易时对成交数量是否做限制进行控制(str)
默认为限制,入参'LIMIT',不做限制则入参'UNLIMITED'
返回
None
示例
set_yesterday_position – 设置底仓
set_yesterday_position(poslist)
使用场景
该函数仅在回测模块可用
接口说明
该函数用于设置回测的初始底仓。
注意事项:
该函数会使策略初始化运行就创建出持仓对象,里面包含了设置的持仓信息。
参数
poslist:list类型数据,该list中是字典类型的元素,参数不能为空(list[dict[str:str],...]);
数据格式及参数字段如下:
[{
'sid':标的代码,
'amount':持仓数量,
'enable_amount':可用数量,
'cost_basis':每股的持仓成本价格,
}]
参数也可通过csv文件的形式传入,参考接口convert_position_from_csv
返回
None
示例
set_parameters - 设置策略配置参数
set_parameters(**kwargs)
使用场景
该函数仅在回测、交易模块可用
接口说明
该函数用于设置策略中的配置参数。
注意事项:
1、该函数入参格式必须为a=b样式。
2、not_restart_trade、server_restart_not_do_before两个入参必须在initialize模块中设置
3、not_restart_trade入参配置说明(交易场景务必了解):
服务器环境重启拉起交易时,initialize和before_trading_start函数会被重复调用,请务必检查策略编写逻辑:
(1)避免在这两个函数中设置无法被系统持久化保存的变量,变量一旦被初始化会导致策略逻辑异常。
(2)避免在这两个函数中调用委托接口,造成重复委托。
您可将not_restart_trade入参设置为1,在交易时间段避免重复执行的问题,交易时间段默认为09:00-11:30、13:00-15:30,实际以券商的配置为准。
4、server_restart_not_do_before入参配置说明(交易场景务必了解):
服务器环境重启拉起交易时,before_trading_start函数默认会被调用,为了避免重复调用带来的一系列问题(同上),您可将server_restart_not_do_before入参设置为"1",即一个交易日内before_trading_start函数仅调用一次。
支持的参数
holiday_not_do_before:交易中节假日是否执行before_trading_start。缺省,执行;1,不执行。
tick_data_no_l2:tick_data中data是否包含order和transcation。缺省,包含;1,不包含。
receive_other_response:策略中是否接收非本交易产生的主推。缺省,不接收;1,接收。
receive_cancel_response:策略中是否接收撤单委托产生的主推。缺省,不接收;1,接收。
not_restart_trade:交易时间段若服务器重启,是否自动执行重新拉起本交易。缺省,执行;1,不执行。
server_restart_not_do_before:若服务器重启导致重拉交易,是否重复执行before_trading_start函数。缺省,执行;1,不执行。
返回
None
示例
后续小编会持续更新关于ptrade使用和开通的文章,感兴趣的朋友可以提前关注,欢迎大家点赞私信评论一起沟通学习哦!
温馨提示:投资有风险,选择需谨慎。
![](https://static.cofool.com/licai/Home/image/counselor/read-yz.jpg)
![](https://static.cofool.com/licai/Home/image/counselor/read-yz.jpg)
![](https://static.cofool.com/licai/Home/image/counselor/read-yz.jpg)
![](https://static.cofool.com/licai/Home/image/counselor/read-yz.jpg)
-
投资小白必看!2025 年券商排名新出炉
2025-02-13 18:24
-
买房算房贷头疼?这个计算器,让你秒懂省钱贷款方案,不怕被坑!
2025-02-13 18:24