在策略中,我使用了 MarketPosition 来判断当前仓位状态。按照策略的运行规则,当第一个满足条件的 Tick 数据触发信号时,MarketPosition 的值应该会发生变化。然而,查看日志时发现,该代码块被多次执行,这与预期不符。为什么会出现这种情况?该如何解决这种情况。
多次执行,没问题啊,机制就是这样,会有什么问题呢?
但是我在 账户透视 同一个时间点会出现出现重复发单这种情况。
那为什么你日志里执行了多次,账户透视里只有两笔呢?
如果我清楚,我就不在论坛请教了。
如果按照你说的,执行了多少次,就发了多少次单,这里是解释不通的,所以你的怀疑是说不通的。
实际上,在零基础课程里,已经解释过了信号系统的运行,我想你一定没有认真学习过相关的内容。
https://www.bilibili.com/video/BV1hM4y1H7Tx/?spm_id_from=333.1387.collection.video_card.click
至于你的账户透视里为什么会有两个报单,你可以根据账户透视的操作源字段看看到底是那个工作区和单元发出的订单。
我推测是要么你同时跑了两个一模一样的单元,要么是你在头寸管理的时候设置了2倍的系统倍数。
建议自己再确认一下。
另外,指出疑点只是希望引起你自己的思考。毕竟做交易是要有独立假设和验证的能力的。你提出的观点是buy sell语句执行一次就会报一次单,但是你拿出的证据却不相匹配,这个其实应该先思考一下再提出问题。
账户透视的操作源字段显示的是同一个工作区同一个单元发出的订单,而且重复报单这种情况只出现了一次,其他时候都是正常的。
谢谢
那你这个重复报单一定是启动自动交易第一次报单,而且你没有对历史持仓进行同步。
只有中金所品种有这个现象,商品期货不会出现这个现象。
原因是中金所品种在软件设置里默认是开平互转节省日内平今手续费的。
你启动前肯定是个空头信号,所以第一笔本来是买入平仓的,根据日内开平互转规则,所以就转成买入开仓了。
两个解决办法
第一 启动策略的时候,监控器一键同步一下,把仓位补上。
第二 样本数量少一点,不要出历史信号
那你这个重复报单一定是启动自动交易第一次报单,而且你没有对历史持仓进行同步。
只有中金所品种有这个现象,商品期货不会出现这个现象。
原因是中金所品种在软件设置里默认是开平互转节省日内平今手续费的。
你启动前肯定是个空头信号,所以第一笔本来是买入平仓的,根据日内开平互转规则,所以就转成买入开仓了。
两个解决办法
第一 启动策略的时候,监控器一键同步一下,把仓位补上。
第二 样本数量少一点,不要出历史信号