思路是M1和M3是两条均线,5天和10天,两线相交就开多单或空单,有一个止盈止损,就是成交量相对大的话就先平仓,观看,
这里有个问题:
比如现在这条K线的成交量符合条件,能不能过一条K线再平仓,如图,就是直接在当条K线就平了,最好就是在下一条K线再平仓,公式要怎么写?或者是两条k线也行
//开多单条件
dd:=cross(m1,m3);
IF dd THEN
begin
sellshort(holding<0,0,limitr,c);
buy(holding=0,1,limitr,c);
END;
//止盈止损条件
ccc:=ref(hhv(vol,40),1);
ll:=ccc*0.8<=vol;
if ll then
BEGIN
sell( holding>0,0,LIMITR,c);
sellshort(holding<0,0,limitr,c);//成交量较大就平仓
end;
//开空单条件
kk:=cross(m3,m1);
if kk THEN
begin
sell(holding>0,0,limitr,c);
buyshort(holding=0,1,limitr,c);
END ;
这里改下就行了。用ref回溯到上一个K,如果上一个K满足当前K就出信号。
if ref(ll,1) then
BEGIN
sell( holding>0,0,LIMITR,c);
sellshort(holding<0,0,limitr,c);//成交量较大就平仓
end;
另外就是实际交易时候你如果是走完K,其实就用ll也行。因为走完K 就是当前K走完了,次根K刚开始时候直接下单。
虽然信号是显示在上一个K,实际下单时机是在当前K开始时候。