ema數值落差

  •   501 
  • 最後發表   無情卻慈悲  2023 六月 19
無情卻慈悲 發文於   2023/06/05

想請教一下,以下ema語法,為何會與xq內建的ema語法有落差呢

// EMA

input:parameter_ema(450,"EMA");

settotalbar(parameter_ema * 6);  //讀取筆數6倍,應是夠?

var : myema(0); 

myema= EMA(Close,parameter_ema); 

 

plot1(myema,"ema450");

 

plot1(myema,"ema450");

 好像是跑 FIMTXN*1.TF 且是5分K才會有這麼大的落差?

 

 

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

 Hello 無情卻慈悲,

 

小幫手這邊測試看起來是相同的。(參考附圖)

需注意大概要經過1千多筆資料後,計算出來的數值才會相同。

如果還是有問題的話,麻煩提供 頁面匯出檔勾選(包含)指標腳本 讓小幫手確認問題原因。

您可以直接將檔案上傳,也可以保存至雲端空間並提供連結Mail至客服信箱 XQservice@XQ.com.tw 且務必附上 討論文章連結網址(小幫手才能盡早處理)。

感謝。

 

附加文件

無情卻慈悲 發文於   2023/06/07

你好,如下圖數值不一,另也附上了匯出頁面的檔案,感謝。

附加文件

XQ小幫手 發文於   2023/06/08

Hello 無情卻慈悲,

 

系統內建的指標會依據畫面K棒的數量及設定的長度做變動。

所以像EMA這種依前期值的指標在設定的長度很大時就容易發生筆數不足的狀況。

建議您使用XS指標才能確保固定計算起點。

 

無情卻慈悲 發文於   2023/06/08

您好,

我用指標給您看主要是測試,但我實際運用是用在自動交易,請問那麼沒有解法了嗎?

有辦法讓自動交易時的EMA可以是與XQ內建的EMA是一樣的值的嗎

無情卻慈悲 發文於   2023/06/09

PS : 我是跑小台期貨

就算我把EMA期數設小了,在5分K中去抓30分K的75ema,得到的值也是有誤。

// EMA

input:parameter_ema(75,"EMA");

settotalbar(parameter_ema * 4); 

var : myema(0); 

var : _close(0) ;

 _close = getField("close", "30");

myema= EMA(_close,parameter_ema); 

plot1(myema,"_Ema");

無情卻慈悲 發文於   2023/06/09

補發問 ,若我自己寫一個450ema公式在自動交易跑1分K中,是否就會正常與XQ內建的ema得到一樣的值呢?

value3 = ( close - average( close,450)[1] )  * (  2 / (450 + 1))+ average( close,450)[1];

 

 

XQ小幫手 發文於   2023/06/12

Hello 無情卻慈悲,

 

有辦法讓自動交易時的EMA可以是與XQ內建的EMA是一樣的值的嗎

=> 如果兩者都從相同的筆數開始計算的話,就可以得到相同的數值。

但實際上很難達成,因為會隨著畫面K棒數量改變。 

(XQ內建的EMA會隨著畫面顯示的K棒數量改變預讀筆數,大約為畫面上的K棒數量加上EMA設定參數的兩倍。)

 

兩者會有不同的原因是開始運算K棒的位置不同所導致,所以您自行撰寫XS語法計算EMA應該也不會和內建EMA相同。

就小幫手所知,設定足夠長度資料預讀筆數運算出的XS腳本得到的數值比較正確。

無情卻慈悲 發文於   2023/06/12

那我做一下整理,

1.在XQ自動交易時針對期貨商品,EMA不就無法拿來當作腳本判斷的方式嗎?

2.在XQ自動交易時針對期貨商品,跨頻率的EMA不就無法拿來當作腳本判斷的方式嗎?

3.EMA這種很常見的指標,在XQ的自動交易中卻無法很自由的使用嗎?

 

無情卻慈悲 發文於   2023/06/12

以下這段您澴沒回我,以下這段也是寫一個指標並在頁面匯入而已,值也不一樣。

 

PS : 我是跑小台期貨

就算我把EMA期數設小了,在5分K中去抓30分K的75ema,得到的值也是有誤。

// EMA

input:parameter_ema(75,"EMA");

settotalbar(parameter_ema * 4); 

var : myema(0); 

var : _close(0) ;

 _close = getField("close", "30");

myema= EMA(_close,parameter_ema); 

 

plot1(myema,"_Ema");

XQ小幫手 發文於   2023/06/13

Hello 無情卻慈悲,

 

1. 小幫手不理解為什麼您覺得不可以?

EMA指標的計算公式導致其指標會隨著起始點不同而有不同的值,但在經過一定長度後兩者間的差距可以忽略。

您可以參考指數移動平均的wiki介紹。

只要經過的筆數夠長,就可以包含到99.9%的權重。

XS腳本因為可以指定計算開始的起點,所以只要指定的夠長就可以算出極為接近的數值。

反而是XQ內建的指標因為系統效能的考量,所以計算的筆數無法包含到 99.9%權重的長度,計算出來的偏差值是大於XS腳本的。

 

2. 要跨頻率計算EMA的話您可以參考 xfMin_EMAxf_EMA 函數。

但需注意此函數只能用在股票或日盤期貨上。

 

3. 可以,只要您的腳本/策略中設定了足夠的資料讀取筆數,就能夠計算出正確的數值。

 

4. 請參考 2. 裡面的回覆,要跨頻率計算可以參考 xfMin_EMA 和 xf_EMA 函數。

但需注意此函數只能用在股票或日盤期貨上。

如果您需要在日夜盤期貨上跨頻率計算EMA的話,要自行另外撰寫函數。

顯示更多回應 發表回覆
Close