代码写法问题:如何写 “限价单并让该限价单保持在当前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));

// 同时转换做空 。。。。


限价单
TB中的订单类型问题,关于限价单、市价单……
tbpy 市价单的函数怎么写
最新bar信号闪烁问题
bar里面均线金叉后立马在当前bar进行开仓操作如何避免信号闪烁问题
简语言如何发送限价单
bar数据问题
求白/夜开盘900/2100到当前bar的成交量之和?
委托平仓和开仓成交刚好在同一刻的问题
起始bar数和回溯bar数

图表程序挂单之后,理论上就跟图表无关了,成交取决于市场价格,成交不了,挂单就会一直挂着。

不存在什么延续的事。

要处理挂单,常见的有交易助手,监控器。