和大家一起分享如何使用miniQMT实现我们自己的网格交易系统。如果您对量化交易感兴趣,欢迎一起交流。
特别声明:本文只从技术层面介绍如何通过miniQMT实现网格交易,尽管相关代码已经笔者实盘验证,但笔者不对读者的实际盈亏负责。
本专栏其他文章:
使用python获取同花顺免费版和同花顺远航版自选股数据用于量化交易
使用python将选股策略选股结果自动更新同花顺【远航版】自选股
使用python将选股策略选股结果自动更新同花顺【免费版】自选股
迅投miniQMT实盘大单拆单时使用【等差价格】下单的实现方法
迅投miniQMT量化交易之【网格交易】的实现(一)——需求分析
类定义
如前所述,网格交易类采用面向对象的方法设计,GridTrade类定义如下:
class GridTrader:
def __init__(self, qmt_path: str, account: str, db_config: dict, stock_configs: dict, fix_price: bool = False, commission: float = 0.0001, stamp_duty: float = 0.0005, free_five: bool = True, log_level: str = 'info', is_log: bool = False):
主要参数
1.qmt_path
迅投QMT客户端所在路径, 券商端指定到 userdata_mini文件夹。如果是连接投研端进行交易,需要指定到f"{安装目录}\userdata"。
2.account
资金账号。
3.db_config
数据库配置字典,格式:
{
host='127.0.0.1',
port=3306,
user='root',
password='root',
db='gridtrade',
charset='utf8'
}
4.stock_configs
dict类型,股票配置字典,格式:
{
'股票代码': {
'base_price': float, 初始基准价格
'min_price': float, 价格区间下限
'max_price': float, 价格区间上限
'min_position': int, 最小持仓量
'max_position': int, 最大持仓量
'price_type': str, 取值为'rate'按涨跌比例,'amount'按涨跌金额
'buy_price_change': float, 买入价格变化。当price_type为rate时,为涨跌比例,如0.05表示上涨5%;为amount时,为涨跌金额,如0.05表示上涨0.05元
'sell_price_change': float, 卖出价格变化。当price_type为rate时,为涨跌比例,如0.05表示下跌5%;为amount时,为涨跌金额,如0.05表示下跌0.05元
'buy_volume': int, 每笔买入数量
'sell_volume': int, 每笔卖出数量
},
...
}
stock_configs
示例:
stock_configs = {
"600037.SH": {
"base_price": 6.0,
"min_position": 1000,
"max_position": 5000,
"min_price": 5.0,
"max_price": 15.0,
"price_type": "amount",
"buy_price_change": 0.03,
"sell_price_change": 0.03,
"buy_volume": 500,
"sell_volume": 500
},
"600033.SH": {
"base_price": 4.50,
"min_position": 500,
"max_position": 4000,
"min_price": 3.0,
"max_price": 6.0,
"price_type": "rate",
"buy_price_change": 0.06,
"sell_price_change": 0.06,
"buy_volume": 2000,
"sell_volume": 2000
}
}
股票配置字典可以json格式存储,便于后期维护更新。
5.fix_price
bool类型, 为False时,买入时以卖一价委托,卖出时以买一价委托;为True时,均以lastPrice即实时价委托。默认为False,可以提高成交速度和成功率。
6.commission
float类型,证券交易佣金比例,默认为0.0001,即万分之一。
7.stamp_duty
float类型,印花税率,默认为0.0005,即千分之零点五,仅卖出时缴纳。
8.free_five
bool类型,证券交易佣金是否免5,默认True。
9.log_level
str类型,日志级别,默认为info。
10.is_log
bool类型, 是否生成日志,默认False。如为True,则在当然目录下生成日志文件,开启了日志轮转功能。
【未完待续】
原创不易、码字不易,如您觉得本文对您有用,麻烦动动您富贵的小手,点赞、收藏、关注、订阅!!!