迅投miniQMT量化交易之【网格交易】的实现(七)——__init__()方法
和大家一起分享如何使用miniQMT实现我们自己的网格交易系统。如果您对量化交易感兴趣,欢迎一起交流。
特别声明:本文只从技术层面介绍如何通过miniQMT实现网格交易,尽管相关代码已经笔者实盘验证,但笔者不对读者的实际盈亏负责。
本专栏其他文章:
使用迅投miniQMT实时监控同花顺自选股,实现自动交易
使用python获取同花顺免费版和同花顺远航版自选股数据用于量化交易
使用python将选股策略选股结果自动更新同花顺【远航版】自选股
使用python将选股策略选股结果自动更新同花顺【免费版】自选股
迅投miniQMT实盘大单拆单批量下单方法的实现
迅投miniQMT实盘大单拆单时随机买卖量的实现方法
迅投miniQMT实盘大单拆单时使用【等差价格】下单的实现方法
迅投miniQMT量化交易之【网格交易】的实现(一)——需求分析
迅投miniQMT量化交易之【网格交易】的实现(二)——主要功能
迅投miniQMT量化交易之【网格交易】的实现(三)——GridTrade类迅投miniQMT量化交易之【网格交易】的实现(四)——参数详解迅投miniQMT量化交易之【网格交易】的实现(五)——数据库设计
迅投miniQMT量化交易之【网格交易】的实现(六)——实盘效果展示
__init__()方法的定义
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):
__init__()方法的参数
接受10个参数,详见《迅投miniQMT量化交易之【网格交易】的实现(四)——参数详解》
__init__()方法主要功能
1.给类属性赋值
self.qmt_path = qmt_path
self.account = account
self.xt_trader, self.acc = self._init_xttrader()
self.fix_price = fix_price
self.commission = commission
self.stamp_duty = stamp_duty
self.free_five = free_five
self.log_level = log_level
self.is_log = is_log
# 缓存
self.stock_cache = {}
# 线程锁
self.lock = threading.Lock()
2.初始化日志功能
这里自定义了一个日志类,主要是完成日志的部分初始化功能,以简化GridTrade类代码。
self.logger = YdLogging('yd_grid_trade.log', self.log_level).get_logger()
3.初始化数据库连接池
self.db_pool = PooledDB(creator=pymysql,maxconnections=5,**db_config
)
4.初始化数据库表
self.init_db_tables()
5.核对并更新股票配置信息、初始化股票缓存
self._init_stock_cache(stock_configs)
完整代码
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):
self.qmt_path = qmt_pathself.account = accountself.xt_trader, self.acc = self._init_xttrader()self.fix_price = fix_priceself.commission = commissionself.stamp_duty = stamp_dutyself.free_five = free_fiveself.log_level = log_levelself.is_log = is_log
# 自定义的日志self.logger = YdLogging('yd_grid_trade.log', self.log_level).get_logger()
# 初始化数据库连接池self.db_pool = PooledDB(creator=pymysql,maxconnections=5,**db_config)# 缓存self.stock_cache = {}
# 线程锁self.lock = threading.Lock()
# 初始化数据库表self.init_db_tables()
# 核对并更新可用股票余额、初始化股票缓存self.init_stock_cache(stock_configs)
【未完待续】
码字不易,原创更不易,如您觉得本文对您有帮助,麻烦动动您富贵的小手,点赞、收藏、关注、订阅!!!