求救! 如何確定可以當天買,當天賣?

  •   360 
  • 最後發表   Albert3919  2025 四月 03
Albert3919 發文於   2025/04/03

我想寫一個當沖策略,希望可以當天的9:10進場,並在當天的13:20出場完成當沖,但是我回測了之後發現還是有些股票沒辦法做到當天買賣,而是隔了幾天才賣,需要加入什麼條件才能確保能夠當天買賣?  以下是我的程式碼,還有我回測後的截圖

// 設定可調整的參數

input: Entry_Time(091000, "進場時間(HHMMSS)"); // 9:10整

input: Exit_Time(132000, "出場時間(HHMMSS)"); // 13:20

 

// 變數宣告

var: intrabarpersist HasEntered(false); // 記錄是否已經進場

var: intrabarpersist Entry_Date(00000000); // 記錄進場日期

var: intrabarpersist HasExited(false); // 記錄是否已經出場

 

// 設定總Bar數

settotalbar(5);

 

// 交易邏輯

 

if Position = 0 and not HasEntered and (CurrentTime >= Entry_Time and CurrentTime < Entry_Time + 100) then begin // 在9:10到9:11之間

       SetPosition(-1, Market); // 以市價賣出做空

       HasEntered = true; // 標記已進場 

end;

 

if Position < 0 and CurrentTime >= Exit_Time then begin

SetPosition(0, Market); // 以市價買進回補

 

end;

附加文件

排序方式: 標準 | 最新
Albert3919 發文於   2025/04/03
XQYi 發文於   2025/04/03

GetSymbolInfo("買賣現沖")=True    //可買賣現沖

GetSymbolInfo("先買現沖")=True //可先買現沖

虎科大許教授 發文於   2025/04/03

有沒有可能,132000-132500,該商品沒有交易發生?

虎科大許教授 發文於   2025/04/03

Albert3919的問題是賣出之後,沒有在尾盤執行回補的指令,這個問題應該與判斷是否可買賣現沖無關。我猜測最可能的原因是商品的流動性。由於Albert3919設定132000之後將空單回補,若132500試撮開始之前的那五分鐘裡面,該商品沒有交易發生,則程式不會執行,自然就無法送出回補的委託。建議,將出場時間改成130000或更早的時間,也許問題就解決了。

發表回覆
Close