以开空单那天的最高价+2做为止损价,然后平空开多。以开多单那天的最低价-2做为止损价,然后平多开空。
请教老师,这怎么编写。
dd1:=valuewhen(开多条件,date);
nn:=barslast(开多条件);
nn1:=barslast(date=dd1);
hh1:=hhv(h,todaybar);
hh2:=hhv(h,nn1+1);
if nn>=nn1 then hh:=hh1;
if nn<nn1 then hh:=hh2;
hh就是开仓那天的最高价
最低价求法一样
老师,我的意思是开空单这天的最高价,不一定是5天的最高。
我写的应该没有能够看成5天的地方吧?
[此贴子已经被作者于2014/9/29 10:52:00编辑过]
例如,5日均线下穿10日均线,开空单,那么就以这天的最高价+2点作为这张空单的止损价,一旦触发止损就平空开多。
不好意思,老师我还不懂,不知道我这样编写,能实现我的想法吗
INPUT:A1(5,1,100,2),A2(10,1,100,2);
MA16:=MA(CLOSE,A1),COLORBLUE;
MA18:=MA(CLOSE,A2),COLORRED;
BB:=CROSS(MA5,MA10);
SS:=CROSS(MA10,MA5);
SELLSHORT(BB,HOLDING<0,HOLDING,MARKET);
BUY(BB,HOLDING=0,1,MARKET); //平空开多
dd1:=valuewhen(ss,date);
nn:=barslast(ss);
nn1:=barslast(date=dd1);
hh1:=llv(h,todaybar);
hh2:=llv(h,nn1-1);
if nn>=nn1 then hh:=hh1;
if nn<nn1 then hh:=hh2; //hh为最低价
sell(cross(hh,c),holding>0,holding,market);
buyshort(cross(hh,c),holding=0,1,market; 止损,平多开空
SELL(SS,HOLDING>0,HOLDING,MARKET);
BUYSHORT(SS,HOLDING=0,1,MARKET); //平多开空
dd1:=valuewhen(ss,date);
nn:=barslast(ss);
nn1:=barslast(date=dd1);
hh1:=hhv(h,todaybar);
hh2:=hhv(h,nn1+1);
if nn>=nn1 then hh:=hh1;
if nn<nn1 then hh:=hh2; //hh为最高价
sellshort(cross(c,hh),holding<0,holding,market);
buy(cross(c,hh),holding=0,1,market); //止损,平空开多
SELLSHORT(BB,HOLDING<0,HOLDING,MARKET);老师,我这一句是不是有错误,
编译提示:market交易系统函数的第三个参数必须为交易控制符。
我不知道怎么改
条件是BB和holding<0
那么要这样写
SELLSHORT(BB and HOLDING<0,HOLDING,MARKET);