VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 14
声望: 0

code text heredef on_trade(self, trade: TradeData):
"""
Callback of new trade data update.
"""

    msg = f"({trade.datetime},{self.strategy_name},{trade.direction},{trade.offset},{self.pos})"
    self.send_email(msg)

    file = open('tradenotes_20220106.csv',mode='a',encoding='utf-8',newline='')
    csv_w = csv.DictWriter(file,fieldnames=['交易时间','名称','方向','开平',
            '持仓'])
    csv_w.writeheader()
    data_dict = {'交易时间':trade.datetime,'名称':self.strategy_name,'方向':trade.direction,'开平':trade.offset,
                '持仓':self.pos
            }
    csv_w.writerow(data_dict)
    self.put_event

这段代码是把交易记录写入表格,并发邮件。
目前邮件功能正常,写入表格却不能实现。难道是运行环境或交易引擎的原因。
我把代码拿出来在外面运行,写入表格功能是正常的。大神能解释一下原因吗?谢谢

Super Moderator
avatar
加入于:
帖子: 566
声望: 44

你试着文件写好之后调用file.close()把文件关掉试试,可能是第一次文件占用后面打不开吧。还有trade.datetime、trade.direction、trade.offset都是类,建议使用strftime函数处理trade.datetime对象,并且使用trade.direction.value、trade.offset.value,替代trade.direction、trade.offset。

Member
avatar
加入于:
帖子: 14
声望: 0

多谢指教

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】