三角收斂

  •   553 
  • 最後發表   Ryan103325  2025 二月 23
Ryan103325 發文於   2024/12/29

最近喜歡找三角收斂的股票 但在條件的設定上不管怎麼抓,跑出來的資料都很奇怪,尤其是抓出來最低或最高點的位子,看起來是因為位子抓錯才導致極值也錯,但是不太懂是哪裡出了問題 事了很多方法修正,但好像都沒有解決道問題

抓高低點那邊 我主要是希望在抓完最近的高低點之, 能避免再把同一隻K棒的高低點算進去,所以把上個抓出來的K棒數,當成下個抓K棒高低點的起點,所以用Highestbar(H[HKB1],13),然後低點的部分因為想要讓低點出現在最近的高點之後,所以用lowestbar(LowW(HKB1),5)來抓,可是這樣抓出來的資料都超級奇怪的,然後下面有今天跑出來的結果,就真的怎麼看怎麼怪...,希望有人可以幫忙解惑~

setBarFreq("W");
settotalBar(100);

//抓高低點 

var: HKB1(0), HKB2(0), HKB3(0), HK1(0), HK2(0), HK3(0);

HKB1 = highestbar(HighW(0),5);          HK1 = HighW(HKB1);  //最近的高點
HKB2 = highestbar(HighW(HKB1),13);      HK2 = HighW(HKB2);  //第二個高點
HKB3 = highestbar(HighW(HKB2),34);      HK3 = HighW(HKB3);  //第三個高點

var: LKB1(0), LKB2(0), LKB3(0), LK1(0), LK2(0), LK3(0); 

LKB1 = lowestbar(LowW(HKB1),5);         LK1 = Loww(LKB1);   //最近的低點
LKB2 = lowestbar(LowW(LKB1),13);        LK2 = Loww(LKB2);   //第二個低點
LKB3 = lowestbar(LowW(LKB2),34);        LK3 = Loww(LKB3);   //第三的低點

//抓高點斜率跟低點斜率 

var: HS(0), LS(0) ; 

HS = (HK1 - HK2) / (HKB2 - HKB1); 
LS = (LK1 - LK2) / (LKB2 - LKB1); 

//波幅收斂 

if absValue(HK1-LK1)/LK1 < absValue(HK2-LK2)/LK2{波幅收斂} 
    and (HKB2-HKB1 < HKB3-HKB2 {or lKB[2]-lKB[1] < LKB[3]-LKB[2]}){時間段收斂} 
    and absValue(HK2-LK2)/LK2>0.07
then ret = 1; 

outputField1(HKB1); 
outputField2(HKB2); 
outputField3(HKB3); 
outputField4(HK1); 
outputField5(HK2); 
outputField6(HK3); 
outputField7(LKB1); 
outputField8(lKB2); 
outputField9(lKB3); 
outputField10(lK1); 
outputField11(lK2); 
outputField12(lK3);
outputField13(HS);
outputField14(LS);

排序方式: 標準 | 最新
XS小幫手 發文於   2025/02/21

Ryan103325 您好,

小幫手不確定您指的怪的地方,是在哪個部分

建議您可以先將部分程式碼註解掉,檢查撰寫的邏輯與您預期的一致

若是有確實不一致的部分,可以將比對數據、包含K線日期等等的資料與截圖提供上來

虎科大許教授 發文於   2025/02/21

試著改用SwingHigh、SwingHighBar、SwingLow及SwingLowBar處理看看。

Ryan103325 發文於   2025/02/21

這麼說好了 從跑出來的結果來看 我希望做到的是:

先往前抓最近的第一個高點和第二個高點,抓到之後用最近的高點抓最近的低點,再用第二個高點的k棒數(數列)往回抓第一高點k棒數(期數)之間的最低點,但很多時候,抓出來的數據好像都只是最近的高點抓出來的低點,所以才會覺得很奇怪

這張圖是示意圖,不用swinghigh/low 是因為如果用swinglow抓的話,雖然抓最近的低點(紅色的圓圈)是對的,但如果用來抓下一個兩高點間的低點的話,swinglow就會變成抓綠色的點,但我希望他抓的是橘色的點...,所以才會想要發這個文來詢問

虎科大許教授 發文於   2025/02/22

轉折高低點的決定主要靠左右K棒數,若你要抓第二轉折低點(橘色),而非綠色的部份,只要改成:

value4=swingLow(L,60,10,10,2);

但第一低點左右K棒數要設為4:

value3=swingLow(L,60,4,4,1);

這樣就可抓到紅色及橘色的轉折低點。

Ryan103325 發文於   2025/02/23

懂意思,但是這樣會不會變成只針對這個股票的情況,這樣反而會可能適得其反

虎科大許教授 發文於   2025/02/23

是的,只會針對這檔股票。若要適用所有股票,參數一樣,就難免會發生想抓橘色低點卻抓到綠色低點的問題。

發表回覆
Close