同一腳本中多個 MACD 跨頻率數值問題?

  •   43 
  • 最後發表   Choc  2 週前
Choc 發文於   2021/06/06

XS 小幫手你好,想請問在同一腳本中 MACD 跨頻率使用時,取得數值的問題~

腳本大致如下

input: FastLength(12), SlowLength(26), MACDLength(9);
variable: Freq15("15"), Freq30("30");

variable: difValue15(0), macdValue15(0), oscValue15(0);
variable: difValue30(0), macdValue30(0), oscValue30(0);

xfMin_MACD(Freq15, xfMin_weightedclose(Freq15), FastLength, SlowLength, MACDLength, difValue15, macdValue15, oscValue15);
xfMin_MACD(Freq30, xfMin_weightedclose(Freq30), FastLength, SlowLength, MACDLength, difValue30, macdValue30, oscValue30);

Print("MACD 15分和30分 數值..略...");

想在「15分技術圖」中,可以一次取得跨率頻的 15分 和 30分的 MACD 值。
但執行該腳本後,發現 30分的MACD 數值會有出入。

 

簡單說就是和「30分技術圖」中的MACD 數值不一樣。

請問語法有哪裡需要再調整?或是其他問題?

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

Hello Choc,

 

小幫手認為應該是您不同時間頻率對錯。

XQ的設定的顯示時間是頻率開始的時間。

換句話說,如果5分鐘 Bar 的 time 是09:00的話,它代表的是09:00 到 09:05之間的資料。

30分鐘 Bar 的 09:00 則代表 09:00 到 09:30 之間的資料。

 

所以舉例來說,假設您的腳本運作在5分鐘頻率的話:

30分鐘 09:00 應該要跟 5分鐘 09:25 比

09:30 應該要跟 09:55 比

 

小幫手看印出的結果是沒有問題的。

Choc 發文於   2021/06/09

小幫手你好,謝謝你的回覆。

腳本是在

一) 15分鐘頻率執行。

//   分別讀取 15分 和 30分
xfMin_MACD(Freq15, xfMin_weightedclose(Freq15), FastLength, SlowLength, MACDLength, difValue15, macdValue15, oscValue15);
xfMin_MACD(Freq30, xfMin_weightedclose(Freq30), FastLength, SlowLength, MACDLength, difValue30, macdValue30, oscValue30);

// 列印結果
// Date= 2021/06/04 12:45:00 | DIF-15= -2.302545 | MACD-15= -4.199723 |  OSC-15= 1.897178 | DIF-30= -8.694148 | MACD-30= -11.003930 |OSC-30= 2.309781 

 

二) 若是在 30 分鐘頻率,只執行單一段的話

xfMin_MACD(Freq30, xfMin_weightedclose(Freq30), FastLength, SlowLength, MACDLength, difValue30, macdValue30, oscValue30);

// 列印結果
// Date= 2021/06/04 12:45:00 | -10.899153 | -11.169300 | 0.270147

以「30分鐘的技術圖」來看的話,腳本(二)數值才是正確的。

若依小幫手說的,腳本(一)當時 12:45分抓到的跨頻率(30分) ,要跟12:40分比的話,這樣的數值會有所偏差。

 

請問在(一)腳本中的跨頻率(30分),有辦法呈現腳本(二)的數值嗎?

 

 

XQ小幫手 發文於   2021/06/09

Hello Choc,

 

如果您運行在 30 分鐘頻率的話,是沒有 12:45 這個時間點的。

小幫手認為您應該沒有理解小幫手上面的敘述。

如果您執行頻率選擇15分鐘的話,那麼跨30分鐘頻率運算出來的結果應該要是以 13:15 跟 30分鐘頻率上的 13:00 的MACD 作比較。

附圖為在15分鐘頻率上運算的跨30分鐘頻率的MACD值,與30分鐘技術線圖運算出來的MACD的比較(13:15 與 13:00)。

您可以看到兩者若在小數點兩位後四捨五入的話是相同的。

 

類似的概念,可以參考此篇回文

雖然此用戶問的是KD,但本質上一樣是跨頻率運算。

附加文件

Choc 發文於   2021/06/09

小幫手你好,謝謝你的回覆。

如一開始所述,這二個腳本都是在台指期(TITXN06)進行回測,所得出來的數值。


 

腳本一),是在「15分頻率技術圖」中,運算跨頻率15分和30分MACD (以下是回測的結果)

Date= 2021/06/04 03:45:00 | DIF-15= -4.711676 | MACD-15= -3.943457 | OSC-15= -0.768219 | DIF-30= -8.826208 | MACD-30= -8.536833 | OSC-30= -0.289375  
Date= 2021/06/04 04:00:00 | DIF-15= -5.097584 | MACD-15= -4.174282 | OSC-15= -0.923302 | DIF-30= -9.231100 | MACD-30= -8.675686 | OSC-30= -0.555414  
Date= 2021/06/04 04:15:00 | DIF-15= -5.980018 | MACD-15= -4.535429 | OSC-15= -1.444589 | DIF-30= -9.869277 | MACD-30= -8.803322 | OSC-30= -1.065955  
Date= 2021/06/04 04:30:00 | DIF-15= -6.962209 | MACD-15= -5.020785 | OSC-15= -1.941424 | DIF-30= -10.933000 | MACD-30= -9.229257 | OSC-30= -1.703743  
Date= 2021/06/04 04:45:00 | DIF-15= -8.230739 | MACD-15= -5.662776 | OSC-15= -2.567963 | DIF-30= -11.411633 | MACD-30= -9.324984 | OSC-30= -2.086649  
Date= 2021/06/04 08:45:00 | DIF-15= -12.620832 | MACD-15= -7.054387 | OSC-15= -5.566445 | DIF-30= -16.079727 | MACD-30= -10.675933 | OSC-30= -5.403795  
Date= 2021/06/04 09:00:00 | DIF-15= -13.363830 | MACD-15= -8.316276 | OSC-15= -5.047554 | DIF-30= -17.898551 | MACD-30= -12.120456 | OSC-30= -5.778095  
Date= 2021/06/04 09:15:00 | DIF-15= -12.995936 | MACD-15= -9.252208 | OSC-15= -3.743728 | DIF-30= -16.203395 | MACD-30= -11.781425 | OSC-30= -4.421970  
Date= 2021/06/04 09:30:00 | DIF-15= -12.080965 | MACD-15= -9.817959 | OSC-15= -2.263006 | DIF-30= -15.636998 | MACD-30= -12.552540 | OSC-30= -3.084459 
Date= 2021/06/04 09:45:00 | DIF-15= -10.847516 | MACD-15= -10.023870 | OSC-15= -0.823645 | DIF-30= -15.258081 | MACD-30= -12.476756 | OSC-30= -2.781325 
Date= 2021/06/04 10:00:00 | DIF-15= -8.919913 | MACD-15= -9.803079 | OSC-15= 0.883166 | DIF-30= -13.625620 | MACD-30= -12.706529 | OSC-30= -0.9190910 
Date= 2021/06/04 10:15:00 | DIF-15= -7.028828 | MACD-15= -9.248229 | OSC-15= 2.219400 | DIF-30= -13.226760 | MACD-30= -12.626757 | OSC-30= -0.6000038 
Date= 2021/06/04 10:30:00 | DIF-15= -7.222095 | MACD-15= -8.843002 | OSC-15= 1.620907 | DIF-30= -13.020150 | MACD-30= -12.705435 | OSC-30= -0.3147142 
Date= 2021/06/04 10:45:00 | DIF-15= -7.211440 | MACD-15= -8.516690 | OSC-15= 1.305250 | DIF-30= -13.159751 | MACD-30= -12.733356 | OSC-30= -0.4263953 
Date= 2021/06/04 11:00:00 | DIF-15= -8.157947 | MACD-15= -8.444941 | OSC-15= 0.286994 | DIF-30= -13.475801 | MACD-30= -12.881845 | OSC-30= -0.5939567 
Date= 2021/06/04 11:15:00 | DIF-15= -7.131330 | MACD-15= -8.182219 | OSC-15= 1.050888 | DIF-30= -12.319105 | MACD-30= -12.650506 | OSC-30= 0.331400  
Date= 2021/06/04 11:30:00 | DIF-15= -4.969379 | MACD-15= -7.539651 | OSC-15= 2.570272 | DIF-30= -10.921801 | MACD-30= -12.304765 | OSC-30= 1.382964  
Date= 2021/06/04 11:45:00 | DIF-15= -3.099254 | MACD-15= -6.651572 | OSC-15= 3.552318 | DIF-30= -10.124080 | MACD-30= -12.145220 | OSC-30= 2.021141  
Date= 2021/06/04 12:00:00 | DIF-15= -2.795318 | MACD-15= -5.880321 | OSC-15= 3.085003 | DIF-30= -9.046791 | MACD-30= -11.525535 | OSC-30= 2.478743 
Date= 2021/06/04 12:15:00 | DIF-15= -2.365792 | MACD-15= -5.177415 | OSC-15= 2.811623 | DIF-30= -9.325994 | MACD-30= -11.581375 | OSC-30= 2.255382 
Date= 2021/06/04 12:30:00 | DIF-15= -2.660428 | MACD-15= -4.674018 | OSC-15= 2.013590 | DIF-30= -9.252553 | MACD-30= -11.115611 | OSC-30= 1.863058 
Date= 2021/06/04 12:45:00 | DIF-15= -2.302545 | MACD-15= -4.199723 | OSC-15= 1.897178 | DIF-30= -8.694148 | MACD-30= -11.003930 | OSC-30= 2.309781 
Date= 2021/06/04 13:00:00 | DIF-15= -3.591354 | MACD-15= -4.078049 | OSC-15= 0.486695 | DIF-30= -9.575818 | MACD-30= -10.718307 | OSC-30= 1.142490 
Date= 2021/06/04 13:15:00 | DIF-15= -3.403482 | MACD-15= -3.943136 | OSC-15= 0.539653 | DIF-30= -8.538781 | MACD-30= -10.510900 | OSC-30= 1.972119 
Date= 2021/06/04 13:30:00 | DIF-15= -3.975338 | MACD-15= -3.949576 | OSC-15= -0.025762 | DIF-30= -9.197239 | MACD-30= -10.248168 | OSC-30= 1.050929  

 

腳本二,是在「30分鐘頻率技術圖」,只執行跨頻率30分MACD(以下是回測結果)

Date= 2021/06/04 03:00:00 | -8.109656 | -7.531448 | -0.578208  
Date= 2021/06/04 03:30:00 | -8.140692 | -7.653297 | -0.487395  
Date= 2021/06/04 04:00:00 | -9.228932 | -7.968424 | -1.260508  
Date= 2021/06/04 04:30:00 | -10.813976 | -8.537534 | -2.276441  
Date= 2021/06/04 08:45:00 | -13.867056 | -9.603439 | -4.263617  
Date= 2021/06/04 09:15:00 | -13.927251 | -10.468201 | -3.459050 
Date= 2021/06/04 09:45:00 | -12.718832 | -10.918327 | -1.800505 
Date= 2021/06/04 10:15:00 | -12.763873 | -11.287437 | -1.476437 
Date= 2021/06/04 10:45:00 | -13.311824 | -11.692314 | -1.619510 
Date= 2021/06/04 11:15:00 | -11.834443 | -11.720740 | -0.113703 
Date= 2021/06/04 11:45:00 | -10.502199 | -11.477032 | 0.974833 
Date= 2021/06/04 12:15:00 | -10.276057 | -11.236837 | 0.960780 
Date= 2021/06/04 12:45:00 | -10.899153 | -11.169300 | 0.270147 
Date= 2021/06/04 13:15:00 | -11.103583 | -11.156157 | 0.052574 

腳本二)的 12:45分,跟圖中的數值一樣。

如圖:30分鐘頻率有12:45分。


 

若跨頻率15分鐘和30分鐘的計算的MACD時間比是  (13:00 和 12:45)

腳本一)的「15分鐘技術圖」回測產生的數值,只有前半部的15分MACD是對的,後半部30分MACD,不論時間往前/往後,數值都有異常。

 

而腳本一)如同一開始發文所說,腳本內一次執行二種跨頻率(15分/30分)的MACD後,出來的數值,只有30分鐘的有異常。

所以想問看看是否有腳本哪裡有誤或是其他?

 

 

XQ小幫手 發文於   2021/06/10

Hello Choc,

 

目前這跨頻率運算只支援台股,不提供期貨的跨頻率運算。

感謝。

發表回覆
Close