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

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [求救]在K線圖上要畫出下降趨勢線,但出現疑惑,敬請指正 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=16792)


由 mhlin999 在 2012-06-24 22:09 發表:

[求救]在K線圖上要畫出下降趨勢線,但出現疑惑,敬請指正

如果今日高點大於前2天的高點,且大於後2天的高點,則今日高點設為高轉折點1

因為要畫下降趨勢線,所以再向左找 較高的 前一個高轉折點2

然後連接高轉折點1及高轉折點2,並向右延伸

目前出現  超過高轉折點2 的多出來的延伸線,

懇請賜教(1)只要向左畫到高轉折點2就好,程式要如何修正

(2)如果下降趨勢線要向右延伸到被收盤突破那天為止,要如何修改

H2:=H>=max(ref(H,1),ref(H,2)) and H>=max(refx(H,1),refx(H,2));
vertline(H2=1),colorwhite,linedot;
H2ck:barslast(H2)+1,linethick0,colorwhite;
H202:ref(H2ck,H2ck)+H2ck,linethick0,colorwhite; //N2向下切線的鄰邊
HH2:ref(H,H202-1),linethick0,colorwhite;
HH1:ref(H,H2ck-1),linethick0,colorwhite;
vertline(H2ck=1 and HH2>HH1),colorwhite;
TL:-(HH2-HH1)/(H202-H2ck),linethick0,colorwhite; //N2向下切線鄰邊和和對邊的比例
//已知新鄰邊 則新對邊=新鄰邊*比例
H0:ref(H,H2ck-1)+(H2ck-1)*TL,linethick0,colorred; //N2向下切線的延伸點
HX: (H202-1)*TL,linethick0,colorred;
Len:SQRT((H202-1)*(H202-1)+HX*HX),linethick0,colorred;
Len0: (H202-1)*SQRT(TL*TL+1),linethick0,colorred; //N2向下切線的當下長度
DRAWSL(H2ck=3 and HH2>HH1,H0,TL,Len0,1);


由 cgjj 在 2012-06-25 22:42 發表:

回覆: [求救]在K線圖上要畫出下降趨勢線,但出現疑惑,敬請指正

引用:
最初由 mhlin999 發表
如果今日高點大於前2天的高點,且大於後2天的高點,則今日高點設為高轉折點1

因為要畫下降趨勢線,所以再向左找 較高的 前一個高轉折點2

然後連接高轉折點1及高轉折點2,並向右延伸

目前出現  超過高轉折點2 的多出來的延伸線,

懇請賜教(1)只要向左畫到高轉折點2就好,程式要如何修正

(2)如果下降趨勢線要向右延伸到被收盤突破那天為止,要如何修改

H2:=H>=max(ref(H,1),ref(H,2)) and H>=max(refx(H,1),refx(H,2));
vertline(H2=1),colorwhite,linedot;
H2ck:barslast(H2)+1,linethick0,colorwhite;
H202:ref(H2ck,H2ck)+H2ck,linethick0,colorwhite; //N2向下切線的鄰邊
HH2:ref(H,H202-1),linethick0,colorwhite;
HH1:ref(H,H2ck-1),linethick0,colorwhite;
vertline(H2ck=1 and HH2>HH1),colorwhite;
TL:-(HH2-HH1)/(H202-H2ck),linethick0,colorwhite; //N2向下切線鄰邊和和對邊的比例
//已知新鄰邊 則新對邊=新鄰邊*比例
H0:ref(H,H2ck-1)+(H2ck-1)*TL,linethick0,colorred; //N2向下切線的延伸點
HX: (H202-1)*TL,linethick0,colorred;
Len:SQRT((H202-1)*(H202-1)+HX*HX),linethick0,colorred;
Len0: (H202-1)*SQRT(TL*TL+1),linethick0,colorred; //N2向下切線的當下長度
DRAWSL(H2ck=3 and HH2>HH1,H0,TL,Len0,1);



只畫最近一次的連接線嗎?
還是前面有此狀況的都要畫?


由 mhlin999 在 2012-06-26 15:37 發表:

前面有此狀況的都要畫
尚請指正! 謝謝!


由 cgjj 在 2012-06-27 10:00 發表:

引用:
最初由 mhlin999 發表
前面有此狀況的都要畫
尚請指正! 謝謝!



原碼:

HH
:=H
HHV2:=HHV(H,2);
CK:=H>=ref(HHV2,1) and H>=refx(HHV2,2);
CKSP:=barslast(CK); StNo:=lbound(CKSP);
DWSP:=C*0//距離
DWSE:=C*0//斜率
for idatacount downto StNo do begin
  i
:=i-CKSP[i]; if i<=StNo then break;
  for 
j=i-1 downto StNo do begin
    j
:=j-CKSP[j];
    if 
HH[j]>HH[ithen begin
      DWSP
[i]:=i-jDWSE[i]:=(HH[i]-HH[j])/DWSP[i] ;break
    
end;
  
end;
end;
VERTLINE(CKlinedot;
DRAWSL(CK and DWSP>0,HH,DWSE,DWSP,1)



Re: (2)如果下降趨勢線要向右延伸到被收盤突破那天為止,要如何修改
這個暫不處理, 因為可能會線再疊線, 導致難以核對結果
您核對Ok後, 若仍要做, 請再提出


由 mhlin999 在 2012-06-27 14:08 發表:

感謝版主幫忙!


由 pcbass 在 2015-12-13 22:46 發表:

版主您好,

我想延續前面這位網友的問題。如何修改版主提供的範例,來達到下列的條件。

(1) 劃出兩點連線時,能否劃出向右的射線?
我有試著改變DRAWSL的最後一個參數為3,結果卻只顯示出第二點向右的射線(無限延伸),而兩點之間的連線卻不見了

(2) 能否指定只劃出某一段時間內的趨勢線?
舉例1. 20150214~20151208
舉例2. 移動鍵盤左右鍵改變主圖的時間座標位置,只畫出座標右側的時間區域內的趨勢線

(3) 畫面中可能會出現很多條下降趨勢線,能否指定一條趨勢線或是最後一條趨勢線為基準,作為選股條件
舉例: 當最新更新的日期的收盤價大於最後一條壓力線

如有不夠詳細或思考不周的地方,請見諒!
謝謝!

__________________
新手上路,請多指教!


由 cgjj 在 2015-12-14 10:15 發表:

引用:
最初由 pcbass 發表
版主您好,

我想延續前面這位網友的問題。如何修改版主提供的範例,來達到下列的條件。

(1) 劃出兩點連線時,能否劃出向右的射線?
我有試著改變DRAWSL的最後一個參數為3,結果卻只顯示出第二點向右的射線(無限延伸),而兩點之間的連線卻不見了



因為基點是在後面的點,要達到兩點連線,又要向後延伸畫線 需要畫兩次,範例如下:
DRAWSL(CK and DWSP>0,HH,DWSE,DWSP,1) coloryellow;
DRAWSL(CK and DWSP>0,HH,DWSE,DWSP,3) coloryellow;


由 cgjj 在 2015-12-14 10:20 發表:

引用:
最初由 pcbass 發表

(2) 能否指定只劃出某一段時間內的趨勢線?
舉例1. 20150214~20151208
舉例2. 移動鍵盤左右鍵改變主圖的時間座標位置,只畫出座標右側的時間區域內的趨勢線



目前畫的
都是基點位於畫面中的,基點不在畫面中的就不會畫(以基點為準)


由 pcbass 在 2015-12-14 10:31 發表:

版主您好,

不好意思,我不太理解"基點"的定義。
基點是不是指在主圖畫面中,最左側所標示或顯示的時間日期 ?
基點是否是隨著主圖的時間縮放而隨之更動?而不是隨著十字游標?

__________________
新手上路,請多指教!


由 cgjj 在 2015-12-14 10:38 發表:

引用:
最初由 pcbass 發表
(3) 畫面中可能會出現很多條下降趨勢線,能否指定一條趨勢線或是最後一條趨勢線為基準,作為選股條件
舉例: 當最新更新的日期的收盤價大於最後一條壓力線



以最後一條趨勢線為基準,作為選股條件
當最新更新的日期的收盤價大於最後一條壓力線

範例如下:(選股專用)

原碼:
HH:=H; HHV2:=HHV(H,2); CK:=H>=ref(HHV2,1) and H>=refx(HHV2,2); CKSP:=barslast(CK); StNo:=lbound(CKSP); i:=datacount-CKSP[datacount]; for j=i-1 downto StNo do begin j:=j-CKSP[j]; if HH[j]>HH[i] then break; end; MM:=LINEVALUE(barpos=j,H,barpos=i,H,0,0); //趨勢線 C>MM;


由 pcbass 在 2015-12-14 14:58 發表:

版主您好,

謝謝您花時間答覆這些問題。
關於您提到的"基點",能不能解釋它的意思與定義?
謝謝!

__________________
新手上路,請多指教!


由 cgjj 在 2015-12-14 15:10 發表:

引用:
最初由 pcbass 發表
版主您好,

謝謝您花時間答覆這些問題。
關於您提到的"基點",能不能解釋它的意思與定義?
謝謝!



簡單的說,就是計算的根基 (基準點)


由 pcbass 在 2015-12-14 15:39 發表:

版主您好,

謝謝您的解釋。
所以基點似乎是在指標公式中的運算的基準點,與主圖所顯示的時間範圍並不一定有關係。

另外想請教,在您提供的範例中,datacount這個參數好像是以目前主圖所顯示的最後日期為起始點。我使用了"訓練模式"來更改主圖中最後的時間日期,畫線公式就會隨之變化。
我的問題是,能否直接修改公式內的起算基點為過去的某個時間日期? 或者是更進一步的起算時間日期和結算時間日期都能指定。



謝謝!

__________________
新手上路,請多指教!


由 cgjj 在 2015-12-14 16:19 發表:

引用:
最初由 pcbass 發表
版主您好,

謝謝您的解釋。
所以基點似乎是在指標公式中的運算的基準點,與主圖所顯示的時間範圍並不一定有關係。



不是的,這樣講您可能清楚一點

基準點就是首樓說的高轉折點1
決定好高轉折點1,才能往前找高轉折點2
也才能畫出高轉折點2和高轉折點1之連線和延伸線


由 cgjj 在 2015-12-14 16:29 發表:

引用:
最初由 pcbass 發表
另外想請教,在您提供的範例中,datacount這個參數好像是以目前主圖所顯示的最後日期為起始點。我使用了"訓練模式"來更改主圖中最後的時間日期,畫線公式就會隨之變化。
我的問題是,能否直接修改公式內的起算基點為過去的某個時間日期? 或者是更進一步的起算時間日期和結算時間日期都能指定。

謝謝!



畫線的這個公式
是符合條件的都會畫出
系統會自行判斷,當基點不在畫面時就不繪。
訓練模式是改變資料的長度而已
對畫線來說沒有引起改變
資料多,基點多,自然被畫的線比較多


由 pcbass 在 2015-12-14 17:09 發表:

版主您好,

1. 謝謝您的說明,我了解基點的意思了

2. 我提出修改畫線公式的時間範圍,簡單的目的是
(1) 當今日收盤價高於畫線公式中次高的點時,但是仍低於最高的點時,今日收盤價在畫線公式中就會取代了昨日以前的次高點,而與先前的最高點形成了新的連線。
但是在主圖畫線之後的畫面視覺呈現結果,就沒辦法表示出今日收盤價突破昨日之前所畫出的最新下降趨勢線。
我想像中的做法:
(a) 將尋找出高點的公式的時間,減少一天,不要把今日收盤價的狀況列入,也許在主圖畫面中,就可以看到今日K線突破"今天之前的最後一根趨勢線"
(b) 另一個做法比較沒那麼漂亮,就是畫出今天產生的新趨勢線,並且保留前一條趨勢線。也許在搜尋高點時,要多保留一組高點或次高點。可能是...
最高點<----->次高點
最高點<----->次次高點


(2)第二個目的是想"只畫出"歷史中某個時間區段的趨勢線。

謝謝!

__________________
新手上路,請多指教!


由 cgjj 在 2015-12-15 10:44 發表:

引用:
最初由 pcbass 發表
版主您好,

1. 謝謝您的說明,我了解基點的意思了

2. 我提出修改畫線公式的時間範圍,簡單的目的是
(1) 當今日收盤價高於畫線公式中次高的點時,但是仍低於最高的點時,今日收盤價在畫線公式中就會取代了昨日以前的次高點,而與先前的最高點形成了新的連線。
但是在主圖畫線之後的畫面視覺呈現結果,就沒辦法表示出今日收盤價突破昨日之前所畫出的最新下降趨勢線。
我想像中的做法:
(a) 將尋找出高點的公式的時間,減少一天,不要把今日收盤價的狀況列入,也許在主圖畫面中,就可以看到今日K線突破"今天之前的最後一根趨勢線"
(b) 另一個做法比較沒那麼漂亮,就是畫出今天產生的新趨勢線,並且保留前一條趨勢線。也許在搜尋高點時,要多保留一組高點或次高點。可能是...
最高點<----->次高點
最高點<----->次次高點


(2)第二個目的是想"只畫出"歷史中某個時間區段的趨勢線。

謝謝!



Re: 修改畫線公式的時間範圍
其實只需要將時間範圍外的轉折點,讓其不成立就可以控制了...

CK:=H>=ref(HHV2,1) and H>=refx(HHV2,2);
其中的 CK 就是轉折點

例如:
CK:=H>=ref(HHV2,1) and H>=refx(HHV2,2) and date<1151101;


由 pcbass 在 2015-12-15 13:50 發表:

版主您好,

非常感謝您提供的範例說明,讓我對奇狐的程式編寫有了更進一步的了解。

__________________
新手上路,請多指教!


由 cgjj 在 2015-12-15 15:32 發表:

引用:
最初由 pcbass 發表
版主您好,

非常感謝您提供的範例說明,讓我對奇狐的程式編寫有了更進一步的了解。



不客氣


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


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

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