打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
做市商交易(期货)

做市商交易(期货)

分享
阅读 26065 更新 2021-07-22 13:33:48
    • 1. 原理
      • 做市商制度
    • 2. 策略思路
    • 3. 策略代码
    • 4. 回测结果

    做市商策略

    1. 原理

    做市商制度

    做市商制度是一种报价驱动制度。做市商根据自己的判断,不断地报出买入报价和卖出报价,以自有资金与投资者进行交易。做市商获取的收益就是买入价和卖出价的价差。

    假设做市商以6344卖出一手合约,同时以6333买入一手合约。如果都成交,做市商可净获利11个点。但如果当时合约价格持续走高或走低,做市商没有对手方能够成交,这时就不得不提高自己的买价或降低自己的卖价进行交易,做市商就会亏损。因此,做市商并不是稳赚不赔的。

    2. 策略思路

    第一步:订阅tick数据(只有最近3个月数据)
    第二步:获取tick数据中的卖一和买一价格。
    第三步:以买一价格开多,以卖一价格开空。以卖一价格平多,以买一价格平空。

    回测标的:CZCE.CF801
    回测时间: 2017-09-29 11:25:00 至 2017-09-29 11:30:00
    回测初始资金:50万
    注意:若修改回测期,需要修改对应的回测标的。

    3. 策略代码

    1. # coding=utf-8
    2. from __future__ import print_function, absolute_import, unicode_literals
    3. from gm.api import *
    4. '''
    5. 本策略通过不断对CZCE.CF801进行:
    6. 买(卖)一价现价单开多(空)仓和卖(买)一价平多(空)仓来做市
    7. 并以此赚取差价
    8. 回测数据为:CZCE.CF801的tick数据
    9. 回测时间为:2017-09-29 11:25:00到2017-09-29 11:30:00
    10. 需要特别注意的是:本平台对于回测对限价单固定完全成交,本例子 仅供参考.
    11. 敬请通过适当调整回测参数
    12. 1.backtest_commission_ratio回测佣金比例
    13. 2.backtest_slippage_ratio回测滑点比例
    14. 3.backtest_transaction_ratio回测成交比例
    15. 以及优化策略逻辑来达到更贴近实际的回测效果
    16. 目前只支持最近三个月的tick数据,回测时间和标的需要修改
    17. '''
    18. def init(context):
    19. # 订阅CZCE.CF801的tick数据
    20. context.symbol = 'CZCE.CF801'
    21. subscribe(symbols=context.symbol, frequency='tick')
    22. def on_tick(context, tick):
    23. quotes = tick['quotes'][0]
    24. # 获取持有的多仓
    25. position_long = context.account().position(symbol=context.symbol, side=PositionSide_Long)
    26. # 获取持有的空仓
    27. position_short = context.account().position(symbol=context.symbol, side=PositionSide_Short)
    28. # 没有仓位则双向开限价单
    29. # 若有仓位则限价单平仓
    30. if not position_long:
    31. # 获取买一价
    32. price = quotes['bid_p']
    33. print('买一价为: ', price)
    34. order_target_volume(symbol=context.symbol, volume=1, price=price, order_type=OrderType_Limit,
    35. position_side=PositionSide_Long)
    36. print('CZCE.CF801开限价单多仓1手')
    37. else:
    38. # 获取卖一价
    39. price = quotes['ask_p']
    40. print('卖一价为: ', price)
    41. order_target_volume(symbol=context.symbol, volume=0, price=price, order_type=OrderType_Limit,
    42. position_side=PositionSide_Long)
    43. print('CZCE.CF801平限价单多仓1手')
    44. if not position_short:
    45. # 获取卖一价
    46. price = quotes['ask_p']
    47. print('卖一价为: ', price)
    48. order_target_volume(symbol=context.symbol, volume=1, price=price, order_type=OrderType_Limit,
    49. position_side=PositionSide_Short)
    50. print('CZCE.CF801卖一价开限价单空仓')
    51. else:
    52. # 获取买一价
    53. price = quotes['bid_p']
    54. print('买一价为: ', price)
    55. order_target_volume(symbol=context.symbol, volume=0, price=price, order_type=OrderType_Limit,
    56. position_side=PositionSide_Short)
    57. print('CZCE.CF801买一价平限价单空仓')
    58. if __name__ == '__main__':
    59. '''
    60. strategy_id策略ID,由系统生成
    61. filename文件名,请与本文件名保持一致
    62. mode实时模式:MODE_LIVE回测模式:MODE_BACKTEST
    63. token绑定计算机的ID,可在系统设置-密钥管理中生成
    64. backtest_start_time回测开始时间
    65. backtest_end_time回测结束时间
    66. backtest_adjust股票复权方式不复权:ADJUST_NONE前复权:ADJUST_PREV后复权:ADJUST_POST
    67. backtest_initial_cash回测初始资金
    68. backtest_commission_ratio回测佣金比例
    69. backtest_slippage_ratio回测滑点比例
    70. backtest_transaction_ratio回测成交比例
    71. '''
    72. run(strategy_id='strategy_id',
    73. filename='main.py',
    74. mode=MODE_BACKTEST,
    75. token='token_id',
    76. backtest_start_time='2017-09-29 11:25:00',
    77. backtest_end_time='2017-09-29 11:30:00',
    78. backtest_adjust=ADJUST_PREV,
    79. backtest_initial_cash=500000,
    80. backtest_commission_ratio=0.00006,
    81. backtest_slippage_ratio=0.0001,
    82. backtest_transaction_ratio=0.5)

    4. 回测结果

    设定初始资金50万,手续费率为0.01%,滑点比率为0.01%。回测结果如下图所示。

    回测期累计收益率为0.05%,年化收益率为16.87%,基准收益率为0,整体收益跑赢指数。最大回撤为0,胜率97.14%。

    需要注意的是,本演示策略只是用作示例,在现实中,以买一和卖一挂单不一定会成交,实际收益率也达不到示例水平,需谨慎。

    注:此策略只用于学习、交流、演示,不构成任何投资建议。

    本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
    打开APP,阅读全文并永久保存 查看更多类似文章
    猜你喜欢
    类似文章
    【热】打开小程序,算一算2024你的财运
    一个期货冠军奇迹的买卖方法 - 菲阿里四价策略
    网格交易策略
    东方财富 量化交易(自动)程序(1)
    量化交易平台重构:选股/择时因子篇
    How to say all the keyboard symbols in English
    Python期货股票量化交易,多品种组合模型之动量策略!
    更多类似文章 >>
    生活服务
    热点新闻
    分享 收藏 导长图 关注 下载文章
    绑定账号成功
    后续可登录账号畅享VIP特权!
    如果VIP功能使用有故障,
    可点击这里联系客服!

    联系客服