聚宽实盘跟单,开启量化投资实战新篇章
聚宽实盘跟单是指通过聚宽(QuantBox)平台,将量化策略从模拟交易直接切换到实盘交易的一种操作。聚宽是一个为量化投资者提供策略开发、回测、交易一体化的量化交易平台。以下是进行聚宽实盘跟单的基本步骤:
1. "注册与登录":
- 在聚宽官网注册账号并登录。
2. "策略开发":
- 在聚宽平台上编写和测试你的量化交易策略。
- 确保策略经过充分的回测,并符合你的交易策略和风险控制要求。
3. "资金准备":
- 在券商处开设交易账户,并确保账户内有足够的资金用于实盘交易。
4. "实盘配置":
- 在聚宽平台上进行实盘配置,包括选择交易账户、设置交易参数、风险控制参数等。
- 可以设置交易频率、资金分配、止损止盈等参数。
5. "策略部署":
- 将经过测试的策略部署到实盘交易中。
- 可以选择手动部署或使用自动化部署工具。
6. "监控与调整":
- 实时监控策略的运行情况,包括交易信号、持仓情况、盈亏状况等。
- 根据市场变化和策略表现,适时调整策略参数。
7. "风险控制":
- 建立完善的风险控制机制,包括但不限于
相关内容:
通过QMT读取聚宽的交易信号,实现自动交易,解决聚宽无法实盘、手动下单的问题,同时继承了聚宽的策略因子,省去了策略重写、因子重构的繁琐工作。
1、优点
每3秒读取一次聚宽的信号,当有信号时自动下单
支持成交模式、持股模式、1比1模式等多种跟单方式
设置止损、止盈等参数,控制交易风险,保护收益。
直接使用聚宽策略,简单易用,不需要重写策略代码
2、准备工作
开通QMT账户
领取聚宽跟单系统.rzrk 策略文件
注册授权码password,每个策略注册一个,区分大小写、不能重复。
3、使用教程
(1)将下面这串代码复制到策略代码开头,注册的授权码替换代码中的password
'''
《QMT-聚宽跟单系统》使用说明
原理替代,继承聚宽的交易函数类
读取下单类的函数参数,把交易数据发送到服务器
把下面的全部源代码复制到聚宽策略的开头就可以
使用前先模拟盘测试一下数据
把下面的内容全部复制到策略的开头就可以
管理员:lance
微信:lance3450
'''
import requests
import json
import pandas as pd
from jqdata import *
url='http://101.34.65.108'
port=8888
#自定义服务器编码
url_code='63d85b6189e42cba63feea36381da615c31ad8e36ae420ed67f60f3598efc9ad'
#找管理员注册,每个策略一个,不能重复,且区分大小写,务必和注册时一致
password='Alex1'
class joinquant_trader:
def __init__(self,url='http://101.34.65.108',
port=8888,
url_code='63d85b6189e42cba63feea36381da615c31ad8e36ae420ed67f60f3598efc9ad',
password='123456'):
'''
获取服务器数据
'''
self.url=url
self.port=port
self.url_code=url_code
self.password=password
def get_user_data(self,data_type='用户信息'):
'''
获取使用的数据
data_type='用户信息','实时数据',历史数据','清空实时数据','清空历史数据'
'''
url='{}:{}/_dash-update-component'.format(self.url,self.port)
headers={'Content-Type':'application/json'}
data={"output":"joinquant_trader_table.data@{}".format(self.url_code),
"outputs":{"id":"joinquant_trader_table","property":"data@{}".format(self.url_code)},
"inputs":,
"changedPropIds":,"parsedChangedPropsIds":}
res=requests.post(url=url,data=json.dumps(data),headers=headers)
text=res.json()
df=pd.DataFrame(text)
return df
def send_order(self,result):
'''
发送交易数据
'''
url='{}:{}/_dash-update-component'.format(self.url,self.port)
headers={'Content-Type':'application/json'}
data={"output":"joinquant_trader_table.data@{}".format(self.url_code),
"outputs":{"id":"joinquant_trader_table","property":"data@{}".format(self.url_code)},
"inputs":,
"changedPropIds":,"parsedChangedPropsIds":}
res=requests.post(url=url,data=json.dumps(data),headers=headers)
text=res.json()
df=pd.DataFrame(text)
return df
#继承类
xg_data=joinquant_trader(url=url,port=port,password=password,url_code=url_code)
def send_order(result):
'''
发送函数
status: 状态, 一个OrderStatus值
add_time: 订单添加时间, 对象
is_buy: bool值, 买还是卖,对于期货:
开多/平空 -> 买
开空/平多 -> 卖
amount: 下单数量, 不管是买还是卖, 都是正数
filled: 已经成交的股票数量, 正数
security: 股票代码
order_id: 订单ID
price: 平均成交价格, 已经成交的股票的平均成交价格(一个订单可能分多次成交)
avg_cost: 卖出时表示下卖单前的此股票的持仓成本, 用来计算此次卖出的收益. 买入时表示此次买入的均价(等同于price).
side: 多/空,'long'/'short'
action: 开/平, 'open'/'close'
commission交易费用(佣金、税费等)
'''
data={}
data=str(result.status)
data=str(result.add_time)
data=str(result.is_buy)
data=str(result.amount)
data=str(result.filled)
data=str(result.security)
data=str(result.order_id)
data=str(result.price)
data=str(result.avg_cost)
data=str(result.side)
data=str(result.commission)
result=str(data)
xg_data.send_order(result)
return data
def xg_order(func):
'''
继承order对象 数据交易函数
'''
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
if result == None:
return
send_order(result)
return result
return wrapper
def xg_order_target(func):
'''
继承order_target对象 百分比
'''
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
if result == None:
return
send_order(result)
return result
return wrapper
def xg_order_value(func):
'''
继承order_value对象 数量
'''
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
if result == None:
return
send_order(result)
return result
return wrapper
def xg_order_target_value(func):
'''
继承order_target_value对象 数量
'''
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
if result == None:
return
send_order(result)
return result
return wrapper
order = xg_order(order)
order_target = xg_order_target(order_target)
order_value = xg_order_value(order_value)
order_target_value = xg_order_target_value(order_target_value)
上面代码复制到策略开头

(2)将策略挂到聚宽进行模拟交易

(3)在QMT启动策略脚本

(4)编译文件,填写QMT账户,其他参数,保存运行即可

以上就是聚宽实盘跟单的教程,有什么不懂,可以和我一起交流