小幫手您好:
我想在一分鐘的策略雷達警示中,加入"加權指數的kd值是否處於交叉向上的狀態"(跨頻率也跨商品)
,請問這部分要怎麼寫比較好?
另外,若加了這項條件後,一分k 線要往前取幾根比較適合,謝謝
麻煩你了
小幫手您好:
我想在一分鐘的策略雷達警示中,加入"加權指數的kd值是否處於交叉向上的狀態"(跨頻率也跨商品)
,請問這部分要怎麼寫比較好?
另外,若加了這項條件後,一分k 線要往前取幾根比較適合,謝謝
麻煩你了
jack121974您好
這個部分需要去修改一下 xf_Stochastic 函式的內容
請將裡面的"開高低收"從原本的
GetField("High", "D") 改成 GetSymbolField("TSE.TW","最高價","D")
來達成跨商品
而是否 交叉向上
可以撰寫一個條件式
value3>value4 也就是k>d就可以判別了
-----
關於資料讀取筆數的問題 如果您用 xf_Stochastic語法
那只要符合您kd 所需要的參數大小的最大值 就可以了
謝謝小幫手的回答!
另外,您提到的“只要符合kd 所需要的參數大小的最大值”, 指的是不是跨頻率函數會自己去抓9天的價格, 所以我的1分鐘k線就不用往回推60x4.5x9天這麼多, 是這樣的意思嗎?
jack121974 您好
是的,您的理解正確,如果使用到跨頻率的語法
像是 xf_ 系列的
我們舉個例子說明比較好理解
value1 = xf_MACD("W",xf_weightedclose("W"),12,26,9,value2,value3,value4);
只要資料讀取筆數 大於26 就可以順利計算 不需要 270x5x26 這麼多筆數
(但我個人還是會習慣稍微取大一點ex 26 我可能取個100 ,
因為其實不會佔太多效能,
且避免我其他程式碼漏看到其實要取得較大的筆數才能計算,而造成之後還要花時間偵錯)
---
補充提醒一下,如果您是使用 getfield(close,5)
這種跨頻率抓資料的話,就必須取得較多的資料讀取筆數數量
小幫手,
如上, 可否提供能算出大盤周KD值的函數給我, 我有試著去改 xf_stochastic, 但對我來說很難(還是新手)
謝謝
Hello JJJJJ,
網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。
如果您是使用在大盤的商品上的話:
value1 = xf_Stochastic("W",9,3,3,value2,value3,value4);
value3 為 K, value4 為 D。
如果您是想要跨商品取用大盤的週KD的話,可以複製 xf_stochastic 然後將裡面取用 HLC 的部分改用 GetSymbolField 替換掉。
舉例來說,以下這段:
maxHigh = highest(GetField("High", "D"),Length);
minLow = lowest(GetField("Low", "D"),Length);
closePeriod = GetField("Close", "D");
修改為:
maxHigh = highest(GetSymbolField("TSE.TW", "High", "D"),Length);
minLow = lowest(GetSymbolField("TSE.TW", "Low", "D"),Length);
closePeriod = GetSymbolField("TSE.TW", "Close", "D");
其他的部分也做相同的修改,簡單來說就是將原本是取 同商品不同頻率的HLC 的部分,改為取 不同商品(TSE.TW)不同頻率的HLC。
這樣計算出來就會是TSE.TW 的 KD。
需注意KD是種需要前期計算值的指標,如果是用週頻率的話會需要經過計算 Length (預設為9) * 3 = 27 週的資料才能夠計算出正確的數值。
5 評論