No project description provided
Project description
tdxtrader
通达信预警信号程序化交易
声明:本项目仅用于学习和研究,不保证交易收益,不作为投资建议,风险自负,请充分使用QMT模拟盘测试。
欢迎加入知识星球
运行效果
安装
pip install tdxtrader
预警指标设置
设置两个指标,一个作为买入信号,一个作为卖出信号
预警文件设置
demo
基础示例
import tdxtrader
# 参数
account_id = 'xxxx' # 账号ID
mini_qmt_path = r'D:\国金证券QMT交易端\userdata_mini' # mini_qmt 路径
file_path = r'D:\new_tdx\sign.txt' # 预警文件路径
interval = 1 # 轮询时间(秒)
buy_sign = 'KDJ买入条件选股' # 买入信号
sell_sign = 'KDJ卖出条件选股' # 卖出信号
def buy_event(params):
'''买入事件'''
stock = params.get('stock')
return {
'size': 200,
'price': -1, # 如果是限价,则设置价格
'type': '市价', # 市价,限价
}
def sell_event(params):
'''卖出事件'''
stock = params.get('stock')
position = params.get('position')
return {
'size': position.can_use_volume, # 卖全仓
'price': -1, # 如果是限价,则设置价格
'type': '市价' # 市价,限价
}
tdxtrader.start(
account_id=account_id,
mini_qmt_path=mini_qmt_path,
file_path=file_path,
interval=interval,
buy_sign=buy_sign,
sell_sign=sell_sign,
buy_event=buy_event,
sell_event=sell_event,
cancel_after=10 # 10秒未成交则撤单
)
限价委托(获取预警价格)
stock对象中包含了当前股票的详细信息,可以通过price属性获取预警时的价格
def buy_event(params):
'''买入事件'''
stock = params.get('stock')
return {
'size': 200,
'price': stock.get('price'), # 如果是市价,则设置-1
'type': '限价', # 市价,限价
}
def sell_event(params):
'''卖出事件'''
stock = params.get('stock')
position = params.get('position')
return {
'size': position.can_use_volume, # 卖全仓
'price': stock.get('price'), # 如果是市价,则设置-1
'type': '限价' # 市价,限价
}
按金额买卖
def buy_event(params):
'''买入事件'''
stock = params.get('stock')
return {
'amount': 100000,
'price': stock.get('price'), # 如果是市价,则设置-1
'type': '限价', # 市价,限价
}
def sell_event(params):
'''卖出事件'''
stock = params.get('stock')
return {
'amount': 100000, # 卖全仓
'price': stock.get('price'), # 如果是市价,则设置-1
'type': '限价' # 市价,限价
}
使用当前持仓判断是否买入
def buy_event(params):
'''买入数量'''
stock = params.get('stock')
position = params.get('position')
if position is None:
return {
'amount': 100000,
'price': stock.get('price'), # 如果是市价,则设置-1
'type': '限价', # 市价,限价
}
else:
return None
def sell_event(params):
'''卖出数量'''
stock = params.get('stock')
return {
'amount': 100000, # 卖全仓
'price': stock.get('price'), # 如果是限价,则设置价格
'type': '限价' # 市价,限价
}
按资金比例买入(卖出逻辑一致)
def buy_event(params):
'''买入数量'''
stock = params.get('stock')
position = params.get('position')
xt_trader = params.get('xt_trader')
account = params.get('account')
asset = xt_trader.query_stock_asset(account)
if position is None:
return {
'amount': asset.total_asset * 0.01,
'price': stock.get('price'), # 如果是市价,则设置-1
'type': '限价', # 市价,限价
}
else:
return None
多买入/卖出信号示例
import tdxtrader
# 参数
account_id = 'xxxx' # 账号ID
mini_qmt_path = r'D:\国金证券QMT交易端\userdata_mini' # mini_qmt 路径
file_path = r'D:\new_tdx\sign.txt' # 预警文件路径
interval = 1 # 轮询时间(秒)
buy_sign = ['KDJ买入条件选股', 'MACD买入条件选股'] # 多个买入信号
sell_sign = ['KDJ卖出条件选股', 'MACD卖出条件选股'] # 多个卖出信号
def buy_event(params):
'''买入事件'''
stock = params.get('stock')
return {
'size': 200,
'price': -1, # 如果是限价,则设置价格
'type': '市价', # 市价,限价
}
def sell_event(params):
'''卖出事件'''
stock = params.get('stock')
position = params.get('position')
return {
'size': position.can_use_volume, # 卖全仓
'price': -1, # 如果是限价,则设置价格
'type': '市价' # 市价,限价
}
tdxtrader.start(
account_id=account_id,
mini_qmt_path=mini_qmt_path,
file_path=file_path,
interval=interval,
buy_sign=buy_sign,
sell_sign=sell_sign,
buy_event=buy_event,
sell_event=sell_event,
cancel_after=10 # 10秒未成交则撤单
)
企业微信通知
利用企业微信机器人发送通知
设置群机器人参看:https://open.work.weixin.qq.com/help2/pc/14931
tdxtrader.start(
account_id=account_id,
mini_qmt_path=mini_qmt_path,
file_path=file_path,
interval=interval,
buy_sign=buy_sign,
sell_sign=sell_sign,
buy_event=buy_event,
sell_event=sell_event,
cancel_after=10, # 10秒未成交则撤单,
wechat_webhook_url='你的webhook_url' # 企业微信机器人webhook url
)
详细参数
account_id
QMT账号ID
mini_qmt_path
QMT mini路径
file_path
预警文件路径
interval
轮询时间(秒)
buy_sign
买入信号
sell_sign
卖出信号
buy_event
买入事件
sell_event
卖出事件
cancel_after
未成交撤单时间(秒)
wechat_webhook_url
企业微信机器人webhook url
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tdxtrader-0.4.5.tar.gz
(579.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tdxtrader-0.4.5.tar.gz.
File metadata
- Download URL: tdxtrader-0.4.5.tar.gz
- Upload date:
- Size: 579.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c996372f859d836ae90293519ef4ef854e029f3fa346aca1d0273edfa731be8
|
|
| MD5 |
db564c254948ce64fecf7014465b01bd
|
|
| BLAKE2b-256 |
2b46918825ee49ff9e86fc554bf0d7d59de4486403bc88d916e42359e072d7f8
|
File details
Details for the file tdxtrader-0.4.5-py2.py3-none-any.whl.
File metadata
- Download URL: tdxtrader-0.4.5-py2.py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc4f203f9f5241337d55e15047570feb11fcf79e902d5a76add9047f682c5d15
|
|
| MD5 |
f5b9658232e4ebe1b34e05ae86c54273
|
|
| BLAKE2b-256 |
55ca41efb94cc33cd6801e65b2ef19c0bfac077f07d07c2ad1f08aa21fe35541
|