請問 計算MACD問題

  •   473 
  • 最後發表   SAMLIN  2017 一月 14
SAMLIN 發文於   2016/12/04

// MACD 死亡交叉 (dif向下穿越macd)

input: FastLength(12), SlowLength(26), MACDLength(9);

variable: difValue(0), macdValue(0), oscValue(0);

SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 3 + 8);

SetInputName(1, "DIF短期期數");

SetInputName(2, "DIF長期期數");

SetInputName(3, "MACD期數");

MACD(weightedclose(), FastLength, SlowLength, MACDLength, difValue, macdValue, oscValue);

Ret = difValue Crosses Below macdValue;

 

以上是計算MACD的程式與法,想請問一下其中 

SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 3 + 8);

相關參數 6 3 8 是怎麼來的??,我希望計算"一分鐘線和五分鐘縣"的MACD,其中的6 3 8 是否需要調整??

 

 

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2016/12/05

Hi SAMLIN ,

 

您希望計算"一分鐘線和五分鐘線"的MACD,其中的6 3 8 應該是不需要調整的。

 

原因是因為,此段程式碼

SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 3 + 8);

是用來進行資料讀取範圍的設定,相關的詳細說明可以點開超連結網頁,有較詳細的說明,謝謝。

 

所以,此段程式碼是為了在計算MACD的數值前,先將需要的資料期間設定好,在進行計算,

若沒有將需要的資料期間設定完善,則計算出來的MACD數值會不對,

因此,小幫手認為其中的6 3 8 應該是不需要調整的,

 

以上報告,謝謝。

 

hks 發文於   2017/01/12

variable: difvalue(0), macdValue(0), oscValue(0),price(0);

 price = WeightedClose();

difvalue = XAverage(price, 12) - XAverage(price, 26);

macdValue = XAverage(difvalue, 9) ;

oscValue = difvalue - macdValue ;

if  difValue>0 and   oscValue>0 and   macdValue>0 and volume>7000  then

Ret = 1;

OutputField(1, difValue);

今天 2017/1/12 計算dif數值

華航 dif=0.04

宏碁 dif=0.12

但是 xq 圖形上

華航 dif12-26  -0.01

宏碁 dif12-16 -0.02

還有許多其他股 正負都不同

問題在哪啊?

 

 

 

 

XQ小幫手 發文於   2017/01/13

Hi hks:

請問您有設定資料讀取範圍嗎?謝謝。

hks 發文於   2017/01/14

感謝 加上SetTotalBar(300); 就可以ㄌ

  • 按讚來自於
  • b24524658
發表回覆
Close