当前位置: 首页 > news >正文

迅投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)

【未完待续】

码字不易,原创更不易,如您觉得本文对您有帮助,麻烦动动您富贵的小手,点赞、收藏、关注、订阅!!!


http://www.mrgr.cn/news/93700.html

相关文章:

  • 【网络】HTTP协议、HTTPS协议
  • 【linux网络编程】套接字编程API详细介绍
  • 08动态库与静态库
  • element-plus中table组件的使用
  • 算法进阶——双指针
  • c语言笔记 数组进阶题目的理解
  • 渗透测试之利用sql拿shell(附完整流程+防御方案)【上】
  • OpenManus:开源版Manus的快速安装及使用「喂饭教程」
  • 数据结构--【顺序表与链表】笔记
  • python中如何正确进行浮点数的大小比较
  • 【让POSTGRESQL支持MS SQLSERVER的 extension】 Babelfish for PostgreSQL介绍及源码安装
  • 数据库原理6
  • mysql8.0使用PXC实现高可用部署
  • 【Git】创建,切换分支
  • 华为配置篇-OSPF基础实验
  • Spark八股
  • 【基础知识】回头看Maven基础
  • 【Java代码审计 | 第七篇】文件上传漏洞成因及防范
  • 本地部署大语言模型-DeepSeek
  • 【Java代码审计 | 第四篇】SQL注入防范