返回列表 发布新帖

事件驱动(subscribe)示例,如何将回调函数callback_func不写在init里

1660 1
发表于 2023-12-30 22:17:56 | 显示全部楼层 阅读模式

本帖最后由 ***4137 于 2023-12-30 22:19 编辑

#coding:gbk

class a():pass
A = a()
A.bought_list = []

account = 'testaccount'
def init(C):
    #下单函数的参数需要 ContextInfo对象 在init中定义行情回调函数 可以用到init函数的入参 不用手动传入 
    def callback_func(data):
        #print(data)
        for stock in data:
            current_price = data[stock]['close']
            pre_price = data[stock]['preClose']
            ratio = current_price / pre_price - 1
            print(stock, C.get_stock_name(stock), '当前涨幅', ratio)
            if ratio > 0 and stock not in A.bought_list:
                msg = f"当前涨幅 {ratio} 大于0 买入100股"
                print(msg)
                #下单函数passorder 安全起见处于注释状态 需要实际测试下单交易时再放开
                #passorder(23, 1101, account, stock, 5, -1, 100, '订阅下单示例', 2, msg, C)
                A.bought_list.append(stock)
    stock_list = ['600000.SH', '000001.SZ']
    for stock in stock_list:
        C.subscribe_quote(stock, period = '1d', callback = callback_func)

事件驱动(subscribe)示例,如何将回调函数callback_func不写在init里,写在外面跟init同级,写在外面的callback_func也需要用到ContextInfo,刚学习求帮助

评论1

rzp
发表于 2024-1-2 10:42:50 | 显示全部楼层
  1. #encoding:gbk
  2. import time
  3. from functools import partial


  4. def init(ContextInfo):
  5.         s = '000001.SZ'
  6.         ContextInfo.subscribe_quote(s,
  7.                                                 period='tick',
  8.                                                 dividend_type='follow',
  9.                                                 result_type='dict',
  10.                                                 callback=partial(on_subscribe, ContextInfo,'tick')) # 用 partial扩展回调参数
  11.         ContextInfo.subscribe_quote(s,
  12.                                                 period='1m',
  13.                                                 dividend_type='follow',
  14.                                                 result_type='dict',
  15.                                                 callback=partial(on_subscribe, ContextInfo,'1m'))  # 用 partial扩展回调参数
  16.        
  17.        
  18. def on_subscribe(ContextInfo, period, data):
  19.         # ContextInfo、period 用partial 扩展的参数
  20.         print(ContextInfo,period, data)
复制代码

回复

您需要登录后才可以回帖 登录 | 立即注册

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2025 迅投QMT社区 版权所有 All Rights Reserved. 京ICP备2025122616号-3
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表