当前位置:   article > 正文

[QMT]07-迅投极简版调用教程_迅投 qmt

迅投 qmt
  1. 26行中的证券账户改成你的账户编码

  1. 17行改成你本机userdata_mini目录所在的路径

  1. 41行是股票代码

  1. 45行是股票价格

  1. 仅供学习参考,据博文内容进行买卖操作以及程序bug造成损失,盈亏自负,与博主无关

  1. from itertools import starmap
  2. import time
  3. import pandas as pd
  4. from xtquant.xttrader import XtQuantTrader
  5. from xtquant.xttype import StockAccount
  6. from xtquant import xtconstant
  7. from Scallback import *
  8. # import Scallback
  9. #显示设置
  10. pd.set_option('max_rows',None) #显示最多行数
  11. pd.set_option('max_columns',None) #显示最多列数
  12. pd.set_option('expand_frame_repr',False) #当列太多时显示不清楚
  13. pd.set_option('display.unicode.east_asian_width',True) #设置输出右对齐
  14. #path 为mini qmt客户端的userdata_mini路径
  15. path=r'F:\gszqqmt\userdata_mini'
  16. #session_id 为会话编号,策略使用方对于不同的Python策略需要使用不同的会话编号
  17. session_id=int(time.time())
  18. #创建交易API实例
  19. xt_trader=XtQuantTrader(path,session_id)
  20. #print(xt_trader)
  21. acc=StockAccount('这里输入你的账号')
  22. #创建交易回调对象,并声明接收回调
  23. # callback=MyXtQuantTraderCallback()
  24. callback=MyXtQuantTraderCallback()
  25. xt_trader.register_callback(callback)
  26. #启动交易线程
  27. xt_trader.start()
  28. #建立交易连接,返回0表示成功
  29. connect_result=xt_trader.connect()
  30. if connect_result != 0:
  31. import sys
  32. sys.exit('连接QMTmin失败,程序将退出 %d' % connect_result)
  33. if __name__=='__main__':
  34. stock_code='600050.SH' #证券代码
  35. order_type=xtconstant.STOCK_BUY #xtconstant.STOCK_BUY:证券买入 xtconstang.STOCK_SELL: 证券卖出
  36. price_type=xtconstant.FIX_PRICE #xtconstant.LATEST_PRICE:最新价 xtconstant.FIX_PRICE:限价
  37. order_volume=200 # order_volume: 委托数量,股票以'股' 为单位,债券以'张'为单位
  38. price=7.29 #price:报价价格,如果price_type 为指定价,那price须指定价格,否则为0.
  39. strategy_name='strategy_name' #strategy_name:策略名称
  40. order_remark='remark' # order_remark : 委托备注
  41. #同步下单报单
  42. seq=xt_trader.order_stock(acc,stock_code,order_type,order_volume,price_type,price,
  43. 'strategy_name','remark')
  44. print("下单编号:",seq)
  45. # 根据订单号查询委托
  46. orders=xt_trader.query_stock_orders(acc,seq)

以下文件命名为 Scallback.py与上面的主脚本放到同一目录下.

  1. from xtquant.xttrader import XtQuantTraderCallback
  2. import time, datetime, traceback, sys
  3. class MyXtQuantTraderCallback(XtQuantTraderCallback):
  4. def on_disconnected(self):
  5. """
  6. 连接状态回调
  7. :return:
  8. """
  9. print(datetime.datetime.now(),"连接断开connection lost")
  10. def on_account_status(self, status):
  11. """
  12. 账号状态信息推送
  13. :param response: XtAccountStatus对象
  14. :return:
  15. """
  16. print("账号状态信息推送on_account_status")
  17. print(status.account_id,status.account_type,status.status)
  18. print(datetime.datetime.now(), sys._getframe().f_code.co_name)
  19. def on_stock_asset(self,asset):
  20. """
  21. 资金变动推送
  22. :param asset: XtAsset对象
  23. :return:
  24. """
  25. print("资金变动推送on asset callback")
  26. print(asset.account_id,asset.cash,asset.total_asset)
  27. def on_stock_order(self, order):
  28. """
  29. 委托回报推送
  30. :param order: XtOrder对象
  31. :return:
  32. """
  33. print(datetime.datetime.now(), '委托回调', order.order_remark)
  34. print(order.stock_code, order.order_status, order.order_sysid)
  35. def on_stock_trade(self, trade):
  36. """
  37. 成交变动推送
  38. :param trade: XtTrade对象
  39. :return:
  40. """
  41. print(datetime.datetime.now(), '成交回调', trade.order_remark)
  42. print(trade.account_id,trade.stock_code,trade.order_id)
  43. def on_stock_position(self, position):
  44. """
  45. 持仓变动推送
  46. :param position: XtPosition对象
  47. :return:
  48. """
  49. print("on position callback")
  50. print(position.stock_code, position.volume)
  51. def on_order_error(self,order_error):
  52. """
  53. 委托失败推送
  54. :param order_error: XtOrderError 对象
  55. :return:
  56. """
  57. print("委托失败单号【",order_error.order_id,"】\n","失败错误码:",order_error.error_id,"\n","失败具体说明:", order_error.error_msg)
  58. def on_cancel_error(self, cancel_error):
  59. """
  60. 撤单失败信息推送
  61. :param cancel_error: XtCancelError 对象
  62. :return:
  63. """
  64. print("on cancel_error callback")
  65. print(cancel_error.order_id, cancel_error.error_id, cancel_error.error_msg)
  66. def on_order_stock_async_response(self, response):
  67. """
  68. 异步下单回报推送
  69. :param response: XtOrderResponse 对象
  70. :return:
  71. """
  72. print(f"异步委托回调 {response.order_remark}")
  73. print(response.account_id, response.order_id, response.seq)
  74. def on_cancel_order_stock_async_response(self, response):
  75. """
  76. :param response: XtCancelOrderResponse 对象
  77. :return:
  78. """
  79. print(datetime.datetime.now(), sys._getframe().f_code.co_name)
  80. print(response.account_id, response.order_id, response.seq)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/644370
推荐阅读
相关标签
  

闽ICP备14008679号