代码写法问题:如何写 “限价单并让该限价单保持在当前bar和后续bar直至成交或信号转变”

我的问题是如何写:限价报单并当本bar未达成成交则报单延续至后续各bar,直至成交或信号转变。我发现TBquant的信号确定后报单买入机制是作用于当前bar的,编写时用“open”、“close”较为通常。但是,信号确定时,往往伴随一些行情的动量,买入价格不优。比如,我一个策略以连续两根bar的close(close[1]和close[2])收于均线上方确定信号为做多买入信号,但是我希望能买到的价格是open[1],因此我写buy(lots,open[1])。 照理说,我希望这是一个限价报单,并且能够持续到满足条件时成交。但是在回测中,我发现实现的买卖点不准,没有按照我的期望来,往往回测显示买点都是在信号确认bar后的那根bar一个最低点,可是这明显是实现不了的,因为那个低点并未满足达到open[1]。而且即便如此,实盘中也不会准确在low、high点去买入。因此,肯定是语言表达未能达成。因此,我想知道,限价报单并且未成交维持报单的写法,以使成交能够精确而现实。以下是这个公式的多单买卖条件代码,请老师示范指正代码写法:// 多单入场条件:不持有多单且前两根bar收盘在均线上方 If (MarketPosition <= 0 And CurrentBar >= 3 And Close[1] > wma[1] And Close[2] > wma[2]) { // 如果没有活跃的多单挂单,则创建挂单 If (!BuyOrderActive) { // 计算多单入场价格 BuyOrderPrice = wma + EntryOffset; BuyOrderActive = True; retryCount = 0; // 重置重试计数 orderBarIndex = CurrentBar; // 记录挂单的bar索引// 提交多单挂单 Buy(Lots, BuyOrderPrice); // 输出交易信息 Print("提交多单挂单: 价格=" + Text(BuyOrderPrice) + ", 数量=" + Text(Lots)); } } // 多单出场条件:持有多单且前两根bar收盘在均线下方If (MarketPosition > 0 And CurrentBar >= 3 And Close[1] < wma[1] And Close[2] < wma[2]) { // 计算多单出场价格 Numeric sellPrice = wma - ExitOffset; // 平多单 Sell(Lots, sellPrice); // 输出交易信息 Print("多单出场: 价格=" + Text(sellPrice) + ", 数量=" + Text(Lots)); // 同时转换做空 。。。。

图表程序挂单之后,理论上就跟图表无关了,成交取决于市场价格,成交不了,挂单就会一直挂着。不存在什么延续的事。要处理挂单,常见的有交易助手,监控器。