有關Swinghigh

  •   58 
  • 最後發表   酥餅  2021 十月 28
酥餅 發文於   2021/10/21

各位前輩晚安

目前的需求是【指標】

希望把每個

轉折峰(左右各兩根k棒高點都要比峰值最高還低)以及

轉折低點(左右各兩根k棒低點都要比低值最低還要高的)的k棒標示一個像sar訊號的點,目前僅看到swinghigh個函數比較接近需求

目前遇到的問題:

程式碼

value1 = SwingHigh(High,300,2,2,1); //找出過去300期內,第1個轉折高點

value2 = SwingHigh(High,300,2,2,2); //找出過去300期內,第2個轉折高點

plot1(value1);

plot2(value2);

但是結果圖面跟我想要的完全天差地遠,究竟是哪裡出錯了?謝謝

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

Hello 酥餅,

 

您可以參考 SwingHigh 函數的說明。

該函數會回傳過去一段時間內轉折高點的值。

所以您每根Bar運算時,若有轉折點的話,都會得到該值,並不是有新的轉折點才會得到值。

小幫手建議您可以嘗試這種寫法:

value1 = SwingHigh(High,300,2,2,1); //找出過去300期內,第1個轉折高點

if value1 <> value1[1] then plot1(value1);   //如果有新的轉折點就畫出來。

這樣就可以在有新的轉折點出現時畫出標示。

附上指標腳本供您參考。

另外需注意,XS的繪圖只能畫在運算的那根Bar,所以您標示的地方會是轉折點往右兩根的位址。

附加文件

酥餅 發文於   2021/10/25

謝謝小幫手的回答~還有幾個疑問

1.為什麼匯入到主圖的疊圖後  只能選擇 "點"跟"線條"?   "線段"卻無法顯示?

2.再來 先撇除我上面提到的每個轉折都要標示,SwingHigh函數的說明提到

      "第五個參數是第幾個高點,依圖表由右往左(時間新到舊),1為最近一次的高點、2為第二近的高點"

     依照上述說明SwingHigh(High,300,2,2,1)不是應該只找出 ,範圍是300跟K棒,且最接近"現在"的一個點而已?為什麼會有那麼多點標示出來?

 

3.因為我想找出最接近現在的三個"高"轉折,且要符合階梯一樣 A峰點>B峰點>C峰點 ,C要最接近現在,而且ABC都要左右各有2根比他低的K棒,所以天真的想說用

valueC = SwingHigh(High,300,2,2,1); //找出過去300期內,第1個轉折高點

valueB = SwingHigh(High,300,2,2,2); //找出過去300期內,第2個轉折高點

valueA= SwingHigh(High,300,2,2,3); //找出過去300期內,第3個轉折高點

似乎也行不通?或是有無甚麼函數可以使用?

嘗試用Highest(H,300);  好像只能找出最高卻不能找到次高以及第三高?(然後要使用甚麼函數來確認峰點左右兩根要低於峰點也是問題@@

以上謝謝~再麻煩小幫手了 

 

 

 

XQ小幫手 發文於   2021/10/28

Hello 酥餅,

 

1.要畫出線段需要有一段連續的值才能夠畫出。只在一點上有值是畫不出來的。

 

2.您的理解是對的,但在沒有出現新的高點以前都會找到同一個值。

舉例來說,假設在 10/26 早上10點的時候出現一個高點16000好了。

那麼只要在還沒出現新高點,且這高點還位於300根Bar的範圍內的話,你找到都會是這個高點。

10/26 早上11點或是中午12點,只要沒有新的高點出現,您都會得到16000這個值。

如果您要的是高點的相對位置,可以參考 SwingHighBar 函數。

 

3.最接近現在的三個"高"轉折,且要符合階梯一樣 A峰點>B峰點>C峰點 這用您提供的腳本是可以找到的。

但您需要注意的是跟上面講的一樣,只要沒有新的高點,且這三個高點還位於搜尋範圍內,那麼您找到都將會是相同的三個高點。

次高或第三高可以使用 NthHighest,其相對位置可以使用 NthHighestBar 取得。

發表回覆
Close