请教服务:关于限价建仓问题,能否在一个价格区间进行限价建仓,还是只能限定一个单一的固定值。
比如,开多条件为:kd:=c>=ma5;开多限价区间为:只要满足开多条件,当价格小于ma5+2*mindifff 时均可建仓,而不要价格正好为ma5+2*mindifff 时才能建仓。如何对以下公式进行设置,谢谢。
ss:=1;
kd:=c>=ma5
if kd then begin
buy( holding=0 ,ss,limitr,ma5+2*mindiff);
end
(对上述开多中的限价ma5+2*mindiff,改为一个小于ma5+2*mindiff的区间值)
如果想在某个区间限价减仓 可以考虑这样变通下。市价下单,但是下单条件是价格在某个区间即可。
代码可以这样
buy(holding=0 and c>a and c<b,1,market);
a,b 就是区间的2端。 你考虑下这个做法。
单单限价指令只能针对一个价格点,没办法指定一个区间。
按照您说的方式,增加开仓限制条件,根据测试,实际意思发生了质变化,不但起不到作用,还会降低收益。
能不能再帮我再想想其他办法来实现。谢谢!
不行的,挂单价格肯定是一个价格点。 只能在条件里面设置下单时机。
另外我又看了下你原先的表述,觉得你是不是理解错了什么:“开多限价区间为:只要满足开多条件,当价格小于ma5+2*mindifff 时均可建仓,而不要价格正好为ma5+2*mindifff 时才能建仓。” 你入场的时机是在开仓条件里面设置,和你设置的挂单价格没有关系。不是说价格到了ma5+2*mindifff 才下单。不是这样子的。 限价那个是挂单的价格,不是入场的条件。
if c>=ma5 and c<=ma5+8*mindiff then buy(holding=0,1,limitr,a);是c>=ma5 and c<=ma5+8*mindiff 这个条件满足时 以价格保单,成交会以小于或等于a的价格成交if c>ma5+8*mindiff then buy(holding=0,1,limitr,ma5+8*mindiff);是 c>ma5+8*mindiff 时以ma5+8*mindiff 的价格保单,成交价格小于或等于ma5+8*mindiff