自動交易功能 實單無觸發下單 但回測會有下單數據

  •   345 
  • 最後發表   James Chen  2024 八月 19
James Chen 發文於   2024/07/27

小弟練習寫了一篇交易腳本

想做自動交易的測試

但執行策略後 發現即使符合條件 也不會下單

而使用回測 卻又有下單記錄

想請問是我的腳本哪部分有問題呢?

腳本如下:

// 進場放空

if

ema(Close,5) < ema(Close,5)[1]

and

ema(Close,10) < ema(Close,10)[1]

and

ema(Close,20) < ema(Close,20)[1]

and

ema(Close,40) < ema(Close,40)[1]

and

ema(Close,5) < ema(Close,10)

and

ema(Close,10) < ema(Close,20)

and

ema(Close,20) < ema(Close,40)

 

then

setposition(-2);

 

// 回補

if

close > ema(Close,5)

and

close > ema(Close,10)

and

close > ema(Close,20)

 

then

setposition(0);

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

這應該與資料讀取筆數有關。由於你只準備了90筆,因此計算的EMA與你在技術分析圖表的EMA數值不一樣。

James Chen 發文於   2024/07/28

感謝回答,那我再請問一下: 我的腳本中,EMA只需要讀取到40筆的資料,所以不是資料讀取筆數大於40就好嗎?  還是資料讀取筆數越大越好呢?(在電腦能負荷的狀況下)  

虎科大許教授 發文於   2024/07/28

EMA是比較麻煩的指標,它會將第一筆的價格到目前為止的價格計算指數平均,最近的價格權重會比較大。若要回測的結果與實際交易一樣,兩者準備的資料筆數要相同才行。實戰準備的筆數可能要相當多,才會與回測的結果相同。準備資料筆數它只會影響開始即時洗價之前的運算時間,盤中不會影響,因為計算EMA的前值是每期都計算好的。

XQ小幫手 發文於   2024/08/19

Hello, James Chen.

EMA這個函式需要約長度的四倍準備資料(根據經驗),故您腳本中使用到最長的EMA 是 40,資料讀取比數應為160左右會取得正確EMA40,或於程式中加上SetTotalBar(160);

有鑑於許多函式需要不同的準備資料,我們目前正在著手整理相關資訊,後續會有資料準備長度相關文章,屆時,大家可以參考該篇文章。

謝謝。

 

同時也感謝許教授熱情回覆。

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