全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
这个价格怎么冒出来的
2020-09-16 21:47

这是onbar的事件处理函数:

    highline=Highest(High[1],20);
    lowline=Lowest(Low[1],20);
    If(MarketPosition<>1 And High>=highline)
    {
        Buy(1,5750); 
    }
    If(MarketPosition<>-1 And Low<=lowline)
    {
        SellShort(1,6170);
    }

请注意买入价和卖出价都是写死的。

下面的是账户透视内容。

为什么委托价和我的指令对不上?

还有,顺便问一下,关于marketposition,如果我发出指令后,没有及时成交,marketposition的值会改吗?如果不改,上面的语句是不是会不停的发交易指令?

tblaocai

您好!BuySell指令中的价格,在产生图表信号时,正常情况下系统是会做矫正的,即不会让价格超过当前K线的价格范围,如果您非要产生一个超过当前K线价格范围的信号,可以在BuySell指令后加一个枚举类型的参数。

比如:  Buy(1, 5750, Enum_Signal_UnCorrectPrice)

2020-09-17 10:49
tblaocai

第二个问题,Marketposition这个函数的值只跟图表信号有关,信号产生了值就会改变,和实际账户是否成交无关。

2020-09-17 10:50
tblaocai

但可能和您的认知相反的是,MarketPosition值的变化只在当前tick运行公式时会短暂保持,下一个tick来后,marketposition的值又会变回之前的值。否则,下一个Tick运行公式时,这个 If(MarketPosition<>1 And High>=highline)就会因为marketposition==1而不满足条件,从而导致Buy指令不执行,引起信号闪烁。这一点是初接触TB的用户,必须好好体会的。

2020-09-17 10:50
您未登录,请先 登录注册 后发表评论
顶部