請教小幫手:假跌破(2B法則)如何撰寫 ?

  •   691 
  • 最後發表   ScottLee  2021 六月 30
ScottLee 發文於   2021/06/25

Hi,小幫手:

如圖。 是一個警示策略。

情境是: 破前低 幅度不能太多  但又迅速站回破前低是指收盤價破20天K棒內的低點, 幅度不能太多:不超過當天的3%, 迅速站回是指之後3天內又高於前低。

可以給個範例嗎 ?   感謝

 

 

 

 

 

附加文件

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/06/28

Hello ScottLee,

 

您可以使用 SwingLow 以及 SwingLowBar 來抓取轉折點,並運用此數值來運算。

附上策略雷達匯出檔供您參考。您可以調整裡面 SwingLow 以及 SwingLowBar 的參數來求出符合您需求的圖形。

附加文件

ScottLee 發文於   2021/06/28

Hi,小幫手:

不好意思,再說明一下我的情境,請看下圖, 我希望出現2B訊號時可以警示。 我根據您給的範例改寫後如下, 但在Print的時候卻Print 不出來"前低日期"和"前低價位", 麻煩幫我看一下Source Code有沒有符合我圖上的情境2B訊號出現時可以警示。

2B

value1 = SwingLow(Low,20,5,5,2);  // 前低價位:20根棒內的低點
value2 = SwingLowBar(low,20,5,5,2); //前低的位置
if value2 > 0 then begin
    value3 = LowestBar(low, value2);  //破前低位置:value3   破前低價位: close[value3]
    condition1 = value3 <= 3; //破前低3天內又迅速站回
    condition2 = low[value3] < value1;  //破前低的最低點小於前低
    condition3 = (value1 * 0.97) <= low[value3] ;  //破前低最低價不超過前低3%
        condition4 = close > value1; // 2B大於前低

    if condition1 and condition2 and condition3 and condition4 then
    ret = 1;
    print("前低日期:",date[value2],"前低:",value1); //前低日期  前低價位
    print("破前低日期:",date[value3],"破前低:",low[value3]);
    print("2B日期:",date,"當天最低價",low);
    print("====================================");
    end;

 

XQ小幫手 發文於   2021/06/30

Hello ScottLee,

 

您可以修改 SwingLow 以及 SwingLowBar 的參數來抓出符合您需求的轉折點。

如何修改參數請參考連結內容

 

依照您上圖給的範例,您可以將腳本修改為為

value1 = SwingLow(Low,25,5,2,2);

value2 = SwingLowBar(low, 25, 5, 2, 2);

 

if value2 > 0 then begin

    value3 = LowestBar(low, value2);

    //print(date, date[value2], value1, low[value3], close);

    condition1 = value3 <= 3; //轉折點後的幾日內最低點位於3日內

    condition2 = low[value3] < value1;  //轉折點後的幾日內最低點小於前轉折點

    condition3 = (open[value3] * 0.97) <= low[value3];  //轉折點後的幾日內最低點大於當日開盤*0.97

    condition4 = close >= value1; //今日收盤大於轉折點

    if condition1 and condition2 and condition3 and condition4 then begin

        ret = 1;

        print("前低日期:",date[value2],"前低:",value1); //前低日期  前低價位

        print("破前低日期:",date[value3],"破前低:",low[value3]);

        print("2B日期:",date,"當天最低價",low);

        print("====================================");

        end;

    end;

這樣即可在 6/15 抓出此點。

發表回覆
Close