我想实现:
固定轮询模式下,在当根K线出现条件一cond1后先平仓,从第二根K线开始后面几条K线,在cond1前提下,只要出现 条件二cond2,就下单,否则不下单,语句要如何编写。因为在当根K线情况下,有可能出现cond2情况,但我不想在当根K线就下单。
可以在cond2的条件中加上EXITBARS作为条件,可以避免在当根K线不下单
使用BARSLAST函数进行处理。
例如,判断cond1成立以后到第五根之间的范围。
if BARSLAST(cond1)>0 and BARSLAST(cond1)<5 and cond2 then begin
下单语句;
end
BARSLAST放在if之外使用。赋值给一个变量,把变量放到if里用。
aa:BARSLAST();
if xxxxx then begin
AA参与计算
end
EXITBARS受本周期和次周期指令的影响。并且还要考虑到第一次开仓之前的返回值为-1的情况,
具体看该函数说明中的链接
[此贴子已经被作者于2018/10/24 9:13:11编辑过]
//多头进仓条件
long:=M1>M2;
if long then
begin
sellshort(HOLDING<0,holding,THISCLOSE);
buy(holding=0 and LOW<M1,1,THISCLOSE);
end
//空头进仓条件
long2:=M2>M1;
if long2 then
begin
sell(HOLDING>0,holding,thisclose);
buyshort(holding=0 and HIGH>M1,1,THISCLOSE);
end
具体语句,是这样,老师帮忙看下能如何改,多谢!多谢!
确认下您的需求,是平仓(平多、平空)后,本根K线不立马开仓是吗?
就是在出现条件一:M1>M2后,马上做平仓(平空)后,但当根K线不立马开仓,而是待接下几根K线,条件一仍然成立,出现条件二LOW<M1,即时开多仓(对应之前平空);另外情况是道理一样,出现M2>M1,马上做平仓(平多)后,但当根K线不立马开仓,而是待接下几根K线,M2>M1仍然成立,出现条件HIGH>M1,即时开空仓(对应之前平多);都在固定轮询情况下。
表达不是很清楚,不好意思,让老师费神了。
long:=M1>M2;
long_bar:=BARSLAST(long=1);
if long then
begin
sellshort(HOLDING<0,holding,THISCLOSE);
buy(long_bar>0 and long_bar<5 and holding=0 and LOW<M1,1,THISCLOSE);
end
空头部分自行实现。
[此贴子已经被作者于2018/10/24 10:13:35编辑过]