XQ大大您好,我想寫找出尾盤5期內的高低點,而且該高點收盤價必須大於5MA,該低點收盤價必須小於5MA,請問該如何修改呢?
目前我只寫出這樣,謝謝XQ大大
if date <> date[1] then begin
value1 = Highest(high[1],5);
value2 = lowest(low[1],5);
end;
XQ大大您好,我想寫找出尾盤5期內的高低點,而且該高點收盤價必須大於5MA,該低點收盤價必須小於5MA,請問該如何修改呢?
目前我只寫出這樣,謝謝XQ大大
if date <> date[1] then begin
value1 = Highest(high[1],5);
value2 = lowest(low[1],5);
end;
首先感謝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小幫手回覆,剛剛試了一下小幫手提供的腳本,依然無法正常抓取到尾盤高低點,一樣用亞信當例子,12/23、12/24就無法正常抓取前一天的尾盤高低點,是否語法上有問題呢? 謝謝小幫手
XQ小幫手您好,感謝您的回覆,就12/27偵測出來的12/24尾盤10根K裡,13:20跟13:23這兩根的收盤不就低於5MA了嗎? 但偵測的結果為何低點為0? 這點不太了解...

Hello Eddie Rich,
小幫手誤以為您的5MA是要跨5分鐘頻率,所以使用 GetField("Close", "5") 來計算。
您只需要將其改成
avg = average(getfield("Close", "1"), len);
或
avg = average(close, len);
即可。
我的確是用5分K來看,但是因為小幫手您6樓的回覆的附圖是用1分K,所以我才用1分K來回應,不曉得小幫手有沒有實際測試過腳本內容? 我嘗試用了您8樓的回應去修改,一樣用12/27的亞信當例子,還是一樣偵測不出來12/24的低點......

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); //第三低點
...........以此類推
13 評論