有几个点要说明下:
1.先进行位置标记 暂时还不是交易策略,先看信号位置是否合适。
2.目前涨跌幅 都是以收盘价来进行计算的。所以有些K如果按照最高最低价计算是满足买入标记的条件的
但是下面代码体现不了。 这个后期再改。先以收盘价实现这么个框架
3.笑脸是买入位置的提升,向下绿色箭头 是index点,即满足在小于N的周期内跌幅大于等于F%的K的位置。
4.里面使用的全局变量是处理横盘的情况,如果下跌后有一段横盘,这里会记录这些横盘的index点中的最低的那个点 来计算后续的涨幅。
5.提供了2个 参数n是之前讨论的跌幅的区间的限制,默认是100,f的跌幅数值 默认是30 ,即表示30%跌幅
[PEL] 复制代码 input:n(100,1,10000,1),f(30,1,100,1);
//申明:当前K位置 满足在小于等于N周期内下跌至少F% 的K的位置,我们称之为index点。
//使用全局变量location记录下在一段 index点中收盘价最低的index点的K线序列值。
//这个全局变量location的设计是为了处理 下跌后的横盘区间的问题。
VARIABLE:location:=0;
index:=0;//index数值表示距离当前K 跌幅达到F%的周期跨度,index不超过N
ZD:=0;//下跌区间具体跌幅的 绝对值,非百分比幅度
for i=1 to n-1 do
begin
len:=barpos-i;
if len<0 then break;
C1:=c[len];
ZD:=(C1-C);
if ZD/C1>=(f/100) then
begin
index:=i;
break;
end
end
if location=0 and index<>0 then location:=BARPOS;
if (BARPOS-location)>index[location]/2 and location<>0 then location:=0;//每次距离上index点 超过跌幅周期一半的周期后 重置记录。
if c<c[location] and index<>0 then location:=BARPOS;//始终记录C最低的index点的位置。
IF (C-C[LOCATION])>(ZD[LOCATION]/2) AND LOCATION<>0 THEN
BEGIN
DRAWICON(1,H,1);//输出买入点位置 ,笑脸
location:=0 ;
END
DRAWICON(index<>0,h,3);//输出index点位置
效果图:
|