奇狐社區論壇
在這個頁面顯示本主題全部的 7 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 請教高低點迴圈 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=15912)


由 founders008 在 2011-08-01 11:38 發表:

請教高低點回圈

以十根K棒取得最低价,以此最低價為起點嚮后取十根的最高價,再以此最高價為起點嚮后十根取最低點,..............,

不包括當根高低

請教如何寫


由 cgjj 在 2011-08-01 13:47 發表:

回覆: 請教高低點回圈

引用:
最初由 founders008 發表
以十根K棒取得最低价,以此最低價為起點嚮后取十根的最高價,再以此最高價為起點嚮后十根取最低點,..............,

不包括當根高低

請教如何寫



若十根內有兩根同是最高價(價相等), 您要如何處理呢? 反之亦同


由 founders008 在 2011-08-01 13:53 發表:

回覆: 回覆: 請教高低點回圈

引用:
最初由 cgjj 發表
若十根內有兩根同是最高價(價相等), 您要如何處理呢? 反之亦同


感謝版大,以條件先成立算


由 cgjj 在 2011-08-02 09:12 發表:

回覆: 回覆: 回覆: 請教高低點回圈

引用:
最初由 founders008 發表
感謝版大,以條件先成立算


原碼:

PDIR
:=0PosHL:=1;
HH:=HLL:=LKCount:=1;
MM:C*0 linethick;
for 
i=2 to datacount do begin
  
if PDIR=0 then begin
    
if LL[i]<LL[PosHLthen PosHL:=i;
  
end else begin
    
if HH[i]>HH[PosHLthen PosHL:=i;
  
end;
  
KCount:=KCount+1;
  if 
KCount=10 then begin
    
if PDIR=0 then MM[PosHL]:=LL[PosHL];
    if 
PDIR=1 then MM[PosHL]:=HH[PosHL];
    
PDIR:=Not(PDIR); KCount:=1
    
PosHL:=PosHL+1i:=PosHL+1;
  
end;
end;
POLYLINE(MM<>0,MM)


由 founders008 在 2011-08-02 11:44 發表:

回覆: 回覆: 回覆: 回覆: 請教高低點回圈

引用:
最初由 cgjj 發表
原碼:

PDIR
:=0PosHL:=1;
HH:=HLL:=LKCount:=1;
MM:C*0 linethick;
for 
i=2 to datacount do begin
  
if PDIR=0 then begin
    
if LL[i]<LL[PosHLthen PosHL:=i;
  
end else begin
    
if HH[i]>HH[PosHLthen PosHL:=i;
  
end;
  
KCount:=KCount+1;
  if 
KCount=10 then begin
    
if PDIR=0 then MM[PosHL]:=LL[PosHL];
    if 
PDIR=1 then MM[PosHL]:=HH[PosHL];
    
PDIR:=Not(PDIR); KCount:=1
    
PosHL:=PosHL+1i:=PosHL+1;
  
end;
end;
POLYLINE(MM<>0,MM)





神啊!!!
版大實在太厲害,感恩

但發現有時差一根,這句
if KCount=10 then begin

改為

if KCount=n-1 then begin

不知對否,請版大指教


由 cgjj 在 2011-08-02 13:35 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 請教高低點回圈

引用:
最初由 founders008 發表
神啊!!!
版大實在太厲害,感恩

但發現有時差一根,這句
if KCount=10 then begin

改為

if KCount=n-1 then begin

不知對否,請版大指教



不客氣

不對

要將這句
PosHL:=PosHL+1; i:=PosHL+1;

修正為
PosHL:=PosHL+1; i:=PosHL;


由 founders008 在 2011-08-02 15:51 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 請教高低點回圈

引用:
最初由 cgjj 發表
不客氣

不對

要將這句
PosHL:=PosHL+1; i:=PosHL+1;

修正為
PosHL:=PosHL+1; i:=PosHL;



再次感謝版大指教


全部時間均為台灣時間, 現在時間為11:14
在這個頁面顯示本主題全部的 7 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.