同一時間反覆下單百筆的問題

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

標題是百筆以上,後來有加了安控限制在20筆,不然本次也是百筆。

LOG與策略我會另寄小幫手。

問題如下,

我跑期貨用EMA進出,有開逐筆洗價,不過程式的寫法是在收完K後的下一根才進場,

例如

if   position <= 0  and filled <= 0    

and close[1] cross Over myema[1] 

then begin

SetPosition( 1, MARKET);

end;

有時候正常,有時候卻會連續在同一時間點反覆進出,是否可以協助查看一下?

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

Hello 無情卻慈悲,

 

小幫手認為是因為您的多方進場條件和空方進場條件同時成立所導致。

多空雙方的進場條件都是類似的 close[1] cross Over myema[1],只是後面的數字有一點差距,所以是會發生同時成立的狀況。

而此時就變成使用 position <= 0  and filled <= 0 和 position >= 0  and filled >= 0 來判別,因此一旦多單進場成交後就馬上就會空單進場,兩者反覆發生。

您可以觀察print出來的訊息,應該都是多單進場與空單進場。

若想要確認的話,可以將 myema[1]、close[1]、myema[2]、close[2] 等相關數據一併印出檢查。

 

另外,您的資料讀取筆數可能會不足,如果您的EMA使用的是相同頻率的話不會有問題,但有跨頻率的話就需要換算兩者頻率的差距。

舉例來說,1分鐘頻率上計算30分鐘頻率的10EMA。

會建議您設定為 settotalbar((10 + 1) * 4 * 30); 筆,因為30分鐘頻率的Bar是由30根1分鐘頻率的Bar所組成。

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

你好,

我先回問一下您上方的回覆 :

我是這樣寫的 :  close[1] cross Over myema[1]
所以理論上不是前一根K的收盤在收K後確認有穿越 myema[1] ,才會觸發,這樣理論上就是一次現象而已不是嗎?因為並不是在當下這根K棒還沒收K的時close會上上下下的穿越,不是嗎?

 

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

Hello 無情卻慈悲,

 

您應該是沒有理解小幫手上面的回覆,這跟當根Bar的數值沒有關係,簡單舉例:

if position >= 0 and filled >= 0 and close[1] cross over myema[1] + 1 then setposition(-1);    

if position <= 0 and filled <= 0 and close[1] cross over myema[1] - 1 then setposition(1);

 

這樣的腳本有可能發生 close[1] cross over myema[1] + 1 以及 close[1] cross over myema[1] - 1 兩者同時符合的狀況,尤其是在台指期這種數值很大的商品時。

若兩者都成立的話,判斷交易條件是否成立就變成是以 position >= 0 and filled >= 0 或是 position <= 0 and filled <= 0 來決定。

故只要其中一邊一成交,另外一邊就會變成符合條件而下單,接下來就是持續循環直到條件不符合為止。

發表回覆
Close