目标:在K线的开盘价市价下单(逐K线,固定1秒轮询)
如果使用market,在图表上会显示进场K线是下一根的开盘价,而且enterprice会是下一根的开盘价,与预期不符
如果使用limitr,open 可能不成交
如果使用limitr,open+100 即挂一个很大的滑点,可能会显示白箭头,从而不成交
请问该怎么写
目标:在K线的开盘价市价下单(逐K线,固定1秒轮询)
如果使用market,在图表上会显示进场K线是下一根的开盘价,而且enterprice会是下一根的开盘价,与预期不符
2.7增加了
忽略由新交易系统指令发出的交易指令的价格检查。
比如buy(cross(ma1,ma2),1,limitr,low-1);这段代码将因为开多的价格在K线的最低价以下,将导致无效指令。
但是加上IGNORECHECKPRICE就可以了,比如:buy(cross(ma1,ma2),1,limitr,low-1),ignorecheckprice;
所属函数组:交易系统
举个例子好了:
if time>=100000 and holding=0 and ref(close,1)>ref(open,1) then buy(1,1,limitr,open);
if time>151400 and holding=1 then sell(1,1,thisclose);
效果如图:
用market的话,虽然成交价会和上面一样,但图表显示会晚一根,同时enterprice不一样
if time>=100000 and holding=0 and ref(close,1)>ref(open,1) then buy(1,1,market);
if time>151400 and holding=1 then sell(1,1,thisclose);
如果这样写的话
if time>=100000 and holding=0 and close>open then buy(1,1,market);
if time>151400 and holding=1 then sell(1,1,thisclose);
会在前一根阳线刚开始一会儿就触发买单,图表和第一种一样,但实际成交价不对
MARKET是市价,实盘情况下,如果您是走完一根K线,那么在走完K线满足开仓条件时,就会按照市价发出委托.
如果是固定时间间隔,那么根据您的设置在满足条件的情况下,就会及时的按照市价发出委托.---此种需注意信号消失的情况
图表程序化交易,图上显示的是虚拟的,资金持仓开仓价格等
如果想得到实盘的真实,需要用后台程序化交易
楼主什么意思,想以market下单,但不影响enterprice ?
那就把enterprice换个自己的变量就好了
比如:用kcj代替
variable:kcj=0;
if holding=0 and buycond then begin
buy(1,1,market);
kcj:=o;
end
或者:
if holding=0 and buycond then begin
buy(islastbar,1,market);
buy(not(islastbar),1,limitr,open);
kcj:=o;
end