《驾驭交易》中文版,第261页,(TTM Bricks)砌砖交易-让市场叠罗汉。 我根据书上说的,编制了这个指标。用在金字塔软件上,其他软件请自己修改。 下面的指标为主图指标,序列计算 Code: VARIABLE:a=0,hh=0,n=0;//变量申明 H1:=CLOSE; L1:=CLOSE; O1:=cLOSE; C1:=cLOSE; UPorDOWN:=CLOSE; //=1上涨 =0下跌 FOR j=1 TO DATACOUNT DO BEGIN if j=1 then //第一天特殊处理 begin if close[1]>=open[1] then //上涨 begin O1[1]:=o[1]; L1[1]:=o[1]; H1[1]:=c[1]; C1[1]:=c[1]; UPorDOWN[1]:=1; end; else begin O1[1]:=o[1]; H1[1]:=o[1]; L1[1]:=c[1]; C1[1]:=c[1]; UPorDOWN[1]:=0; end; CONTINUE FOR; end; //暂时把今天的数值 设置为昨天的数值 O1[j]:=O1[j-1]; H1[j]:=H1[j-1]; L1[j]:=L1[j-1]; C1[j]:=C1[j-1]; UPorDOWN[j]:=UPorDOWN[j-1]; //昨天是上涨 if UPorDOWN[j-1]=1 then begin //第一种情况,上涨:今天的收盘价超过前一个柱子的最高价 if Close[j] > H1[j-1] then begin //提升柱子的数值 O1[j]:=H1[j-1]; L1[j]:=H1[j-1]; H1[j]:=close[j]; C1[j]:=close[j]; UPorDOWN[j]:=1; //表示上涨 end; //第二种情况,下跌:今天的收盘价,下跌超过 前三条柱子的最低价 if Close[j] < L1[j-1] then //低过前天的最低价,才开始计算 begin //找到前三个柱子的最低价 a:=j-1; //前天 hh:=L1[a]; //前天最低价 n:=1; //柱子计数 a:=a-1; while a>0 do begin if UPorDOWN[a]=0 then BREAK WHILE; //这一天为下跌,退出 if H1[a] <> H1[a+1] then //不是一个柱子 begin n:=n+1; //找到了一根,计数器加1 hh:=L1[a]; end; if n=3 then BREAK WHILE; //已经找到了三根柱子 a:=a-1; end; //比第三个柱子,还低 if Close[j]<hh then begin //下降柱子的数值 O1[j]:=L1[j-1]; H1[j]:=L1[j-1]; L1[j]:=close[j]; C1[j]:=close[j]; UPorDOWN[j]:=0; //表示跌了 end; end; end; //昨天是上涨,结束 //昨天是下跌 if UPorDOWN[j-1]=0 then begin //第一种情况,下跌:今天的收盘价超过前一个柱子的最低价 if Close[j] < L1[j-1] then begin //下降柱子的数值 O1[j]:=L1[j-1]; H1[j]:=L1[j-1]; L1[j]:=close[j]; C1[j]:=close[j]; UPorDOWN[j]:=0; //表示下跌 end; //第二种情况,上涨:今天的收盘价,上涨超过 前三条柱子的最高价 if Close[j] > H1[j-1] then //高过前天最高价,才计算 begin //找到前三个柱子的最低价 a:=j-1; //前天 hh:=H1[a]; //前天最低价 n:=1; //柱子计数器 a:=a-1; while a>0 do begin if UPorDOWN[a]=1 then BREAK WHILE; //这一天为上涨,退出 if H1[a] <> H1[a+1] then //不是一个柱子 begin n:=n+1; //找到了一根,计数器加1 hh:=H1[a]; end; if n=3 then BREAK WHILE; //已经找到了三根柱子 a:=a-1; end; //比第三个柱子的最高价,还高 if Close[j] > hh then begin //提升柱子的数值 O1[j]:=H1[j-1]; L1[j]:=H1[j-1]; H1[j]:=close[j]; C1[j]:=close[j]; UPorDOWN[j]:=1; //表示上涨 end; end; end; end; KLINE(O1,H1,L1,C1,0);