請教如何取得跨商品的MACD值

  •   397 
  • 最後發表   菜鳥  2024 九月 25
菜鳥 發文於   2024/09/19

小編你好!

我想要在選股腳本裡取得某類股指數(不是大盤加權)的MACD值

請教如何寫腳本才能取得跨商品的MACD值呢?

謝謝!!

 

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/09/19

這個需要自己寫函數。沒有現成的可用。將系統內建的MACD函數修改,裡面的價格都用跨商品的價格替代即可。

菜鳥 發文於   2024/09/23

請問許教授,我原來腳本如下,還請教授指導!! 感謝!!

array:

ValueArray[148](0),

ratioarray[148](0);

var:x(0);

var:si(0),difValue(0), macdValue(0), oscValue(0);// 商品所在的產業

settotalBar(60);

If symbol="2609.TW" or symbol="2615.TW" or symbol="2603.TW" then si=105;//......依此邏輯延伸數十個類股陣列

valuearray[105]=getsymbolField("I023370.TW", "收盤價");

MACD(valuearray[si], 12, 26, 9, difValue, macdValue, oscValue);

問題是outputfield出來的MACD和內建指標數值不一樣,並且同一類股的個股對應的MACD值也不一樣,不知錯誤在哪?

以下MACD的函數,您說修改價格,是指函數裡的"price" 嗎? ,可否指導小弟價格要怎麼寫呢?(我不知函數的價格和選股腳本的類股價格之間要怎麼連結)

SetBarMode(1);

 

 

Input: Price(numericseries), FastLength(numericsimple), SlowLength(numericsimple), MACDLength(numericsimple);

Input: DifValue(numericref), MACDValue(numericref), OscValue(numericref);

 

DifValue = XAverage(price, FastLength) - XAverage(price, SlowLength);

MACDValue = XAverage(DifValue, MACDLength) ;

OscValue = DifValue - MACDValue;

虎科大許教授 發文於   2024/09/23

MACD函數裡面的Price參數,我們都賦予WeightedClose,它是(H+L+2*C)/4。你這裡要改用getsymbolfield去抓跨商品的這三個價格,且當作參數呼叫MACD函數。

菜鳥 發文於   2024/09/25

太感謝許教授了 !

這個方法解決了我的問題了!!

發表回覆
Close