金叉后最高值和死叉后最低值是能求出,但对它们定位弄了二星期都无法实现,因我要在这最高值和最低值上实现四条指标线:
dif:ema(c,12)-ema(c,26),colorccffff,linethick1;
dea:ema(dif,9),color58ff58,linethick1;
macd:2*(dif-dea),colorffff00,linethick0;
A:BARSLAST(金叉后最高值);
高1:sum(amount,A)/sum(v,A)/100);线从最高值开始,不断创新高也不理它;
高2
低1
低2
始终保持四条线,谢谢!

snap206.gif

最新回复
cwy (2008-6-11 20:56:36)
QUOTE:
类似的问题,以前在创幻曾有回复,“定位N周期内的最高值,最低值”。定位参考:
CODE:
dif:ema(c,12)-ema(c,26),colorccffff,linethick1;[ 本帖最后由 cwy 于 2008-6-11 20:59 编辑 ]dea:ema(dif,9),color58ff58,linethick1;
macd:2*(dif-dea),colorffff00,linethick0;
t1:=BARSLAST(cross(dif,dea) or BARPOS=1)+1;
t2:=0*c;
h1:hhv(h,t1);
for i=datacount downto 1 do
if t1[i-1]<t1[i] then
t2[i-1]:=t2[i]+1;
h2:refx(h1,t2);
w:=h2=h;VERTLINE(w);
t3:BARSLAST(w)+1;
戊辰 (2008-6-11 22:15:41)
高1:从MACD金叉后的最高值开始起线(注意!是起点)
高2:前从MACD金叉后的最高值开始起线(注意!是起点)
低1:从MACD死叉后的最低值开始起线(注意!是起点)
低2:前从MACD死叉后的最低值开始起线(注意!是起点)
用这条是能达到的:sum(amount,A)/sum(v,A)/100);
求这四个值,能做到,我的困难是要定位为起始点(是起始点)
[ 本帖最后由 戊辰 于 2008-6-11 22:17 编辑 ]
snap212.gif
cwy (2008-6-11 23:22:43)
QUOTE:
“高1:从MACD金叉后的最高值开始起线(注意!是起点)”你把公式再看看,是否是这样划分?
如果是,以此类推,余下的问题你应该能解决,如有问题,再联系。
[ 本帖最后由 cwy 于 2008-6-11 23:24 编辑 ]
002041.gif
戊辰 (2008-6-12 00:41:02)
戊辰 (2008-6-14 00:32:06)
heqs (2008-6-14 08:16:35)
zhzwdc (2008-6-14 10:31:02)
QUOTE:
引用若干周期后的数据,实战效果有待验证戊辰 (2008-6-14 14:57:49)
准确
[ 本帖最后由 戊辰 于 2008-6-14 22:02 编辑 ]
snap216.gif
戊辰 (2008-6-14 15:00:17)
不准确
[ 本帖最后由 戊辰 于 2008-6-14 22:03 编辑 ]
snap217.gif
ljq (2008-6-14 21:59:25)
cwy (2008-6-14 22:21:31)
QUOTE:
“A:=sum(t3=0,yy);”(想想原因)CODE:
dif:=ema(c,12)-ema(c,26),colorccffff,linethick1;dea:=ema(dif,9),color58ff58,linethick1;
macd:=2*(dif-dea),colorffff00,linethick0;
t1:BARSLAST(cross(dif,dea) or BARPOS=1)+1,linethick0;
sjj:=STKTYPE=1 or STKTYPE=2 or STKTYPE=3 or STKTYPE=5 or STKTYPE=11;
yy:=YEAR;n:=1;
t2:=0*c;
h1:=hhv(h,t1);
for i=datacount downto t1[datacount] do
if t1[i-1]<t1[i] then
t2[i-1]:=t2[i]+1;
h2:=refx(h1,t2);
w:=h2=h;
VERTLINE(w);
t3:=BARSLAST(w);//linethick;
A:=sum(t3=0,0),linethick;
ss1:=A[datacount]-a+1;
a1:=barssince(ss1=n);
aa1:=if(a1>=a1[LBOUND(a1)+1],a1,1);
高1:IF(NOT(sjj),ma(c,aa1),sum(AMOUNT,aa1)/sum(v,aa1)/100);
a2:=barssince(ss1=n+1);
aa2:=if(a2>=a2[LBOUND(a2)+1],a2,1);
高2:IF(NOT(sjj),ma(c,aa2),sum(AMOUNT,aa2)/sum(v,aa2)/100);
戊辰 (2008-6-14 23:27:43)
戊辰 (2008-6-15 09:54:49)
snap218.gif
cwy (2008-6-15 15:18:21)
QUOTE:
1:与“a1[LBOUND(a1)+1]”有关。2:“refx(h1,t2)”这样写比较容易看懂,当然也可在循环中对H2直接赋值。
3:按你所求的值,把代码整理了一下。
CODE:
dif:=ema(c,12)-ema(c,26);[ 本帖最后由 cwy 于 2008-6-15 15:20 编辑 ]dea:=ema(dif,9);
macd:=2*(dif-dea);
t1:=BARSLAST(cross(dif,dea) or BARPOS=1)+1;
sjj:=STKTYPE=1 or STKTYPE=2 or STKTYPE=3 or STKTYPE=5 or STKTYPE=11;
t2:=0*c;
h1:=hhv(h,t1);
for i=datacount downto 1 do
if t1[i-1]<t1[i] then
t2[i-1]:=t2[i]+1;
h2:=refx(h1,t2);
a:=sum(h2=h,0);
ss1:=A[datacount]-a+1;
a1:=barssince(ss1=1)+1;
a2:=barssince(ss1=2)+1;
if sjj=1 then begin
g1:=sum(AMOUNT,a1)/sum(v,a1)/100;
g2:=sum(AMOUNT,a2)/sum(v,a2)/100;
end;
if sjj=0 then begin
g1:=ma(c,a1);
g2:=ma(c,a2);
end;
高1:g1;
高2:g2;
戊辰 (2008-6-15 23:41:38)