尾盤高低點

  •   412 
  • 最後發表   Eddie Rich  2022 一月 18
Eddie Rich 發文於   2021/12/19

XQ大大您好,我想寫找出尾盤5期內的高低點,而且該高點收盤價必須大於5MA,該低點收盤價必須小於5MA,請問該如何修改呢?

目前我只寫出這樣,謝謝XQ大大

 

if  date <> date[1] then begin

    value1 = Highest(high[1],5);
    value2 = lowest(low[1],5);

end;

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

Hello Eddie Rich,

 

您可以使用 highestbarlowestbar 來取得相對位置,然後用該位置上的收盤價來判斷是否有在5期均線上即可。

附上警示腳本供您參考。

附加文件

  • 按讚來自於
  • eddie740704
Eddie Rich 發文於   2021/12/22

首先感謝XQ大大幫忙,剛剛試著把XQ大大撰寫的警示腳本改成10期的指標腳本,但好像還是抓不出尾盤的高低點,還是我有修改錯誤呢?想再麻煩XQ大大幫忙檢視,謝謝XQ大大

 

PS:實驗的例子是12/22 的亞信(3169),依然無法順利抓到12/21尾盤的高低點

input: len(5, "均線期數");
var: avg(0), high_point(0), low_point(0);

avg = average(getfield("Close", "5"), len);

if  date <> date[1] then begin

    value1 = Highestbar(high,10)[1];  //高點相對位置
    value2 = lowestbar(low,10)[1];  //低點相對位置

    if close[value1] > avg[value1] then high_point = high[value1] else high_point = 0;
    if close[value2] < avg[value2] then low_point = low[value2] else low_point = 0;

plot1 (high_point,"尾盤最高點");
plot2 (low_point,"尾盤最低點");
    end;

XQ小幫手 發文於   2021/12/24

Hello Eddie Rich,

 

小幫手修改了一下腳本,主要是在value1跟value2的部分要多加上1,不然判斷相對位置時會以開盤那根Bar來計算。

附上修改後的腳本,小幫手比較過後應該是沒有問題。

附加文件

Eddie Rich 發文於   2021/12/24

感謝XQ小幫手回覆,剛剛試了一下小幫手提供的腳本,依然無法正常抓取到尾盤高低點,一樣用亞信當例子,12/23、12/24就無法正常抓取前一天的尾盤高低點,是否語法上有問題呢? 謝謝小幫手

XQ小幫手 發文於   2021/12/29

Hello Eddie Rich,

 

附圖為 12/27開盤 偵測 12/24 以及 12/24開盤 偵測 12/23 的尾盤高低點。

可以看到 12/27 偵測出來的 12/24 尾盤10根高點為 286,低點因為沒有低於5期平均價所以為0。

12/27 偵測出的 12/23 尾盤10根高點為 282,低點為 280.5,都有分別高於/低於5期平均價。

需注意您是在換日的時候才會作運算(date <> date[1]),所以是要到隔日開盤才會計算出昨日尾盤的資訊。

如果您要在當日最後一根計算,請使用條件當時間等於當日最後一根Bar的時候運算。

附加文件

Eddie Rich 發文於   2021/12/29

XQ小幫手您好,感謝您的回覆,就12/27偵測出來的12/24尾盤10根K裡,13:20跟13:23這兩根的收盤不就低於5MA了嗎? 但偵測的結果為何低點為0? 這點不太了解...

XQ小幫手 發文於   2022/01/04

Hello Eddie Rich,

 

小幫手誤以為您的5MA是要跨5分鐘頻率,所以使用 GetField("Close", "5") 來計算。

您只需要將其改成

avg = average(getfield("Close", "1"), len);

avg = average(close, len);

即可。

Eddie Rich 發文於   2022/01/04

我的確是用5分K來看,但是因為小幫手您6樓的回覆的附圖是用1分K,所以我才用1分K來回應,不曉得小幫手有沒有實際測試過腳本內容? 我嘗試用了您8樓的回應去修改,一樣用12/27的亞信當例子,還是一樣偵測不出來12/24的低點......

XQ小幫手 發文於   2022/01/05

Hello Eddie Rich,

 

會發生這樣的狀況主要是因為 lowest 會找到最近的低點,所以腳本會找到 12/24 132400 那根的低點,但該跟Bar的收盤價為 285.5 大於平均線 285.3,所以不會顯示。

如果要顯示的話,就需要使用for迴圈找尋最後10根Bar中所有跟高低點相同的值,然後比對是否有任何一個符合收盤價大於/小於均線的條件。

附上指標腳本供您參考。

 

附加文件

  • 按讚來自於
  • eddie740704
Eddie Rich 發文於   2022/01/10

XQ大大您好,使用您修改後的腳本後,的確可行,非常感謝XQ大大。

但由於搜索到的尾盤最高點or最低點經常會呈現為0 (因為該 "最" 高點 or "最" 低點的收盤價沒有大於 or 小於5MA的關係),所以我延伸出一個想法,可否在該最高點 or 最低點結果為0時,讓該語法中斷,串接以下的語法進去呢? 也就是說當結果為0時,可以接著去找第二、第三、第四高底點,別讓結果為0,謝謝XQ大大幫忙集思廣益

 

NthHighest(2,high[1],10);  //次高點

Nthlowest(2,low[1],10);  //次低點

NthHighest(3,high[1],10);  //第三高點

Nthlowest(3,low[1],10);  //第三低點

...........以此類推

 

顯示更多回應 發表回覆
Close