1,h高点,l低点,如2楼所说需要一个,明确的时间范围,例如开盘后的最高最低价
n1:hhvbars(h,todaybar),LINETHICK0;
ll:llv(l,n1);
n2:LLVBARS(ll,n1),LINETHICK0;
h1:hhv(h,n2),LINETHICK0;
kk:h1-c>=10 and holding=0;
if kk THEN
buyshort(1,1,market);
l1:llv(l,enterbars+1);
n3:llvbars(l1,enterbars+1);
h3:hhv(h,n3),LINETHICK0;
pk:h3-c>=20 and holding<0;
if pk then
sellshort(1,holding,market);
又稍微改了下,这个应该更符合描述吧。
VARIABLE:m:=0;
n1:=HHVBARS(h,TODAYBAR);
l1:=llv(l,n1);
n2:=llvbars(l,n1);
h1:=hhv(h,n2);
n3:=barslast(h1);
l2:=llv(l,n3);
if h1-l1>=10*mindiff then m:=1;
if m=1 and l2<l1 and holding=0 THEN
begin
buyshort(1,1,market);
m:=0;
end
l3:=llv(l,enterbars+1);
n4:=barslast(l3);
h2:=hhv(h,n4);
if h2-l3>=20*mindiff and holding<0 then
sellshort(1,1,market);
又稍微改了下,这个应该更符合描述吧。 VARIABLE:m:=0; 红色语句似乎有点问题,直接导致下一句数值引用错误 不知道老师红色部分想表达什么? |
哦哦,后面没有用到,可以删掉。
(low上升10跳 再降到比low低时开空)下面代码是按这样的理解写的。
这个写法不会有满足开空条件。您在详细描述下您的开空条件。
VARIABLE:m:=0;
n1:=HHVBARS(h,TODAYBAR);
l1:=llv(l,n1);
n2:=llvbars(l,n1);
h1:=hhv(h,n2);
if h1-l1>=10*mindiff then m:=1;
if m=1 and l<l1 and holding=0 THEN
begin
buyshort(1,1,market);
m:=0;
end
l2:=llv(l,enterbars+1);
n3:=barslast(l2);
h2:=hhv(h,n3);
if h2-l2>=20*mindiff and holding<0 then
sellshort(1,1,market);