【量化QMT/ptrade】如何在策略中获取当前的交易品种和周期(日线/分钟)?
发布时间:2026-4-28 13:57阅读:41
在 QMT 和 Ptrade 中获取当前交易品种和周期的方式有所不同,以下分别介绍:
QMT
- 获取当前交易品种:在策略的函数(如
handle_bar、handle_data等)中,通常会传入一个包含相关信息的上下文对象(context)。如果在策略初始化时设置了交易品种,可通过访问上下文对象的相关属性获取。例如:
python
def after_init(context):
context.stock_code = '600000.SH' # 设置交易品种
def handle_bar(context, bar_dict):
current_stock = context.stock_code
print(f"当前交易品种: {current_stock}")
- 获取当前周期:QMT 中可以通过
subscribe函数设置数据周期,并在相关函数中根据逻辑判断当前周期。例如,在handle_bar函数中:
python
def handle_bar(context, bar_dict):
if context.subscribe_type == '1d':
print("当前周期为日线")
elif context.subscribe_type == '1m':
print("当前周期为分钟线")
这里假设在subscribe函数设置周期时,会将周期信息存储在context.subscribe_type中,实际使用中需根据具体设置和 QMT 版本确认。
Ptrade
- 获取当前交易品种:在
initialize函数中设置交易品种,在其他函数(如handle_data、tick_data等)中可通过全局变量获取。示例如下:
python
def initialize(context):
g.security = '600570.SS' # 设置交易品种
def handle_data(context, data):
current_stock = g.security
print(f"当前交易品种: {current_stock}")
- 获取当前周期:在 Ptrade 中,不同的周期会触发不同的函数。例如,日线周期会触发
handle_data函数,分钟线周期若设置了相应频率,会按设置频率触发handle_data函数,tick 周期会触发tick_data函数。可以通过所在函数来判断当前周期。
python
def handle_data(context, data):
print("当前在日线或分钟线周期处理函数中")
def tick_data(context, data):
print("当前在tick周期处理函数中")
如果需要更精确判断分钟线周期的具体分钟数,可结合set_schedule函数设置的定时任务和相关逻辑来实现。
开户找我优惠多多!选8888资金靓号!ETF佣金万0.5!逆回购手续费百万分之一!免费量化qmt/ptrade!更多优惠欢迎找我!
温馨提示:投资有风险,选择需谨慎。
-
养虾理财用的金融Skill是什么?国泰海通灵犀Skills实测,新手也能装
2026-05-09 13:41
-
豆包开启付费!AI行业迎来拐点,普通投资者该怎么布局?
2026-05-09 13:41
-
2026国金证券新人开户能够享受哪些福利?(含6888元品质礼包)
2026-05-09 13:41


问一问

+微信
分享该文章
