MACD函數有誤?

  •   52 
  • 最後發表   MakeMoneyFromStock  2024 三月 13
MakeMoneyFromStock 發文於   2024/02/15

請問小幫手,以下程式結果有誤,不曉得原因?

Input: FastLength(12, "MACD指標-DIF短期期數");

Input: SlowLength(26, "MACD指標-DIF長期期數");

Input: MACDLength(9, "MACD指標-MACD期數");

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

SetTotalBar(200);

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

 

//--- Debug ---//

if symbol= "3376.TW" then begin

Print(file(param_path),"[MACD]");

Print(file(param_path),"CurrentTime: "+datetoString(Date)+" "+timetoString(CurrentTime));

Print(file(param_path),"difValue[1]: "+NumToStr(difValue[1], 2));

Print(file(param_path),"difValue: "+NumToStr(difValue, 2));

Print(file(param_path),"macdValue[1]: "+NumToStr(macdValue[1], 2));

Print(file(param_path),"macdValue: "+NumToStr(macdValue, 2));

Print(file(param_path),"oscValue[1]: "+NumToStr(oscValue[1], 2));

Print(file(param_path),"oscValue: "+NumToStr(oscValue, 2));

end;

 

結果3376新日興 在2023/10/16的 macdValue, macdValue[1] 數值明顯有誤,

[MACD] 

CurrentTime: 2023/10/16 09:00:00 

difValue[1]: -0.15 

difValue: 0.12 

macdValue[1]: -0.03 

macdValue: 0.00 

oscValue[1]: -0.12 

oscValue: 0.12 

[MACD] 

CurrentTime: 2023/10/16 09:01:00 

difValue[1]: -0.15 

difValue: 0.15 

macdValue[1]: -0.03 

macdValue: 0.01 

oscValue[1]: -0.12 

oscValue: 0.14 

[MACD] 

CurrentTime: 2023/10/16 09:02:00 

difValue[1]: -0.15 

difValue: 0.15 

macdValue[1]: -0.03 

macdValue: 0.01 

oscValue[1]: -0.12 

oscValue: 0.15 

//中間略過

[MACD] 

CurrentTime: 2023/10/16 13:22:00 

difValue[1]: -0.15 

difValue: 0.27 

macdValue[1]: -0.03 

macdValue: 0.03 

oscValue[1]: -0.12 

oscValue: 0.24 

[MACD] 

CurrentTime: 2023/10/16 13:23:00 

difValue[1]: -0.15 

difValue: 0.27 

macdValue[1]: -0.03 

macdValue: 0.03 

oscValue[1]: -0.12 

oscValue: 0.24 

[MACD] 

CurrentTime: 2023/10/16 13:24:00 

difValue[1]: -0.15 

difValue: 0.27 

macdValue[1]: -0.03 

macdValue: 0.03 

oscValue[1]: -0.12 

oscValue: 0.24 

[MACD] 

CurrentTime: 2023/10/16 13:29:00 

difValue[1]: -0.15 

difValue: 0.27 

macdValue[1]: -0.03 

macdValue: 0.03 

oscValue[1]: -0.12 

oscValue: 0.24 

 

排序方式: 標準 | 最新
MakeMoneyFromStock 發文於   2024/02/16

我應該找到原因了,我有使用return來中斷為了程式效率,

但發現小幫手以下這個歷史描述,有沒有改善的方法呢?


 

使用return會增加效率沒有錯。

但是使用if else 等流程控制語法亦可以達到類似的效果。

此外,如果您的腳本有含某些函數或是運算式需要取用前期值,有可能會因為return中斷的原因導致運算異常。


 

也想請教一下,哪一些指標或是哪些數值可能會被return所影響的?是否有個清單可查詢參考...

感謝

MakeMoneyFromStock 發文於   2024/03/08

請問小幫手 可以幫忙解答嗎?

似乎太久沒有回覆囉 謝謝

XQ小幫手 發文於   2024/03/13

Hello, MakeMoneyFromStock.

目前沒有清單可以查詢,不過,當您在使用指標或函式的時候,可以利用下列網址查詢,

https://xshelp.xq.com.tw/XSHelp/

或者使用XScript編輯器上查詢,

1710295643237

 

基本上有 xf 或 xfmin 的函數大多會取用前期運算值,

謝謝。

發表回覆
Close