Print用法.看了自學文章還是無法理解.請小幫手以下列策略為例加以指教.

  •   156 
  • 最後發表   morris8888  2022 九月 15
morris8888 發文於   2022/08/22

//跨頻計算60KD指標金交

value1 = xfMin_Stochastic("60",9,3,3,value2,value3,value4);

condition1 = value3[1] < value4[1];

condition2 = value3 > value4;

IF condition1 and condition2 then ret=1;

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

Hello morris8888,

 

小幫手推測應該是因為您使用的資料筆數不足

KD是一種需要大量前期值的指標,且您使用跨頻率所以會需要更多。

所需的筆數可以參考內建的選股腳本。

舉例來說,以您的設定會需要 9 * 3 * 12 = 324 筆讀取筆數才能計算出正確的值。

您可以搭配print來檢查計算出來的數字。

 

morris8888 發文於   2022/08/27

謝謝小幫手解惑,

能使用setbackBar (15,"60");來指定使用資料的筆數嗎?

另外 為什麼是用 9 * 3 * 12 = 324 ?

 

  • RSV值計算公式:(收盤價 – 設定周期內最低價) / (設定周期內最高價 – 設定周期內最低價) × 100
  • K值計算公式:(2/3 × 前一根K線K值)+(1/3 × 當日RSV)
  • D值計算公式:D值= (2/3 × 前一根K線D值)+(1/3 × 當日K值)

 

週期9=9小時  9個小時的5分K=9*12(每小時12根5分K)=108筆讀取筆數 不是108筆就足夠了嗎?

XQ小幫手 發文於   2022/09/02

Hello morris8888,

 

setbackBar 設定的是 最大引用範圍, settotalbar 設定的是 資料讀取範圍。

細節您可以參考文章說明。

兩者是不一樣的,一個會運算 (settotalbar) 一個不會運算 (setbackbar)。

這邊的狀況應該要是使用 settotalbar。

 

如果您有看過內建的KD選股腳本的話,裡面的設定是 SetTotalBar(maxlist(Length,6) * 3);。

若 Length 設為 9 的話,那就是 9 * 3。

由於您是跨頻率,所以就會是 9 * 3 * 12。

為什麼是 9 * 3,這是內部人員研究出來需要計算出正確數值的筆數。

morris8888 發文於   2022/09/07

 //跨頻計算60KD指標金交

value1 = xfMin_Stochastic("60",9,3,3,value2,value3,value4);

condition1 = value3[1] < value4[1];

condition2 = value3 > value4;

IF condition1 and condition2 then ret=1;

XQ小幫手 發文於   2022/09/15

Hello morris8888,

 

小幫手不清楚您想要問什麼。

如果是使用在1分鐘頻率的話,settotalbar就會是 9 * 3 * 60。

如果是使用在5分鐘頻率的話,settotalbar就會是 9 * 3 * 12。

如果是使用在10分鐘頻率的話,settotalbar就會是 9 * 3 * 6。

關鍵就是,settotalbar要包含到 9 * 3 根 60分鐘Bar的範圍。

 

另外,您的 value3[1] 和 value4[1] 會是執行頻率 (1分鐘、5分鐘...etc) 的前一根Bar,而不是前一根60分鐘Bar的值。

如果您要取前一根60分鐘頻率的變數值的話,可以使用 xfmin_getvalue 函數。

發表回覆
Close