请教一下:
我想在分笔线中找出连续2个上升的然后标志为“买入”,接着找出连续两个下降的标为“卖出”,但是我做出的指标交易却画出两个“买入””卖出“长串,不知错在哪里?
Variable:flagbuy=0;
count_total:datacount,linethick0;
k:=close;
for i=1 to datacount do
Begin
if k[i]>k[i-1] and k[i-1]>k[i-2] and flagbuy=0 then begin
flagbuy:=1;
drawtext(1,k[i],'买入',colorred);
end
if k[i]<k[i-1] and k[i-1]<k[i-2] and flagbuy=1 then begin
flagbuy:=0;
drawtext(1,k[i],'卖出',colorgreen);
end
End;
如图
写复杂了,
连续下降drawtext(close<ref(close,1) and ref(close,1)<ref(c,2),close,'下降')
上升的判断反过来写就好
谢谢。可是您能帮我分析一下我原来的公式哪里出错吗?因为我以后可能也会用类似的结构,很想知道错在哪里。
是不是datacount 有问题?
而且我是想如果有第一个买入信号出现,那么第二个连续的买入信号就不显示出来。同理只显示第一个卖出信号。就是说买入信号和卖出信号是间断出现,不能连续出现。
用来判断买入信号是否第一个,如果之前没买入信号那此次就显示买入,如果之前已经有就不显示。
rinmode:0;
variable:ss[]=0;
variable:flagbuy=0;
count_total:datacount,linethick0;
k:=close;
if k[barpos]>k[barpos-1] and k[barpos-1]>k[barpos-2] and flagbuy=0 then begin
flagbuy:=1;
drawtext(1,k[barpos],'买入',colorred);
end
if k[barpos]<k[barpos-1] and k[barpos-1]<k[barpos-2] and flagbuy=1 then begin
flagbuy:=0;
drawtext(1,k[barpos],'卖出',colorgreen);
end
你这个是序列数组用的错了,要用逐k线计算,然后根据序列数组的特性做计算
http://www.weistock.com/bbs/dispbbs.asp?BoardID=10&ID=30380&skin=0
金字塔怎么用数组参考这个链接,里面有详细说明
非常感谢!请接受我滔滔的敬仰之情。几分钟就搞定我2天的烦恼。
您所给的链接我之前都看过,但是还是不明白我的公式有什么错,即使在逐K模式下我也试过,也是这样一长串。我知道是datacount 的问题,但是想不通它具体错误机制,您能详细解释一下吗?
譬如把你上面的barpos都置换成datacount不是一样吗,因为datacount在每增加一个点(或K线)数值都加1,那么逐K计算每次的K[datacount]也不同呀?