自動交易可以在同根K棒執行刪除委託單+停利單嗎

  •   317 
  • 最後發表   Pierce  2022 十一月 24
Pierce 發文於   2022/07/04

5分K不洗價的腳本,如果0900這根K棒符合條件多單進場5張,然後我想在下根K棒就掛1%的停利委託單以及刪除未成交的買進委託單,可以同時處理嗎?

if condition1 then begin

    value1 = CurrentBar;

    SetPosition(5, AddSpread(Close, -3));

end;

 

if CurrentBar = value1 +1 and position > 0  then begin

    SetPosition(0, FilledAvgPrice*1.01);

end;

1. 假設委託買進5張,只成交3張的話,

上面這個寫法把部位變0,程式會執行刪除2張未成交的買進委託單和執行賣出3張的委託單嗎?

如果不會要如何改寫呢?

 

2. 在都未成交的情況下,上面這個寫法就會直接把5張的未成交的委託單刪除了對吧?,還是說會因為FilledAvgPrice為0而無法執行?

 

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

Hello Pierce,

 

您可以參考 SetPosition 的說明。

在使用setposition時,還沒有成交的委託會被刪除,接著下出所需的部位數量。

1.是的,會刪除2張並下出賣3張的限價單。

2.就小幫手所知,如果商品有漲跌停限制的話,則系統會保證價格不會超過漲跌停。

所以會變成送出跌停價的限價單。

但由於您原本的庫存就是0,所以實際上的動作只會停留在刪除委託單。

Pierce 發文於   2022/07/11

有爬文但似乎沒看到未完全成交情況的刪單範例因此請問,

1. 如果委託買進5張,成交3張,未成交2張,下根k棒要執行刪除2張未成交的委託單,是SetPosition(filled)嗎?

我的理解是買進5張position=5,成交3張是filled=3,所以調整position讓它等於filled來執行刪除2張未成交的委託單。

 

2. 若1.的寫法是對的,那如果委託買進5張,成交5張的話,這時候SetPosition(filled)是不執行任何動作嗎?

 

3. 另外想請問,設定進場總金額上限設定400萬,單支股票進場金額100萬(單筆委託),假如自動交易同一時間符合進場條件有6檔股票,若全部都進場委託就超過400萬了,所以想知道這個情況程式會如何執行呢? 都不執行? 還是照股票代號排序決定4檔? 還是隨機?

 

 

 

musashi 發文於   2022/07/11

position可以視為委託單,例如現在買進5張,所以送出委託單5張SetPosition(5),此時委託單有5張(position=5),但是沒有成交(filled=0),然後下次跑腳本成交2張,就會變成position=3,filled=2。 之後可以用SetPosition(0)來控制position=0

至於交易總金額可以在【自動交易中心】→【安控設定】→【交易安控】→【策略整體】→【每日進場金額上限】設定。

XQ小幫手 發文於   2022/07/15

Hello Pierce,

 

1. 是的,這樣的狀況下就會刪除位成交的2張委託單。

 

2. 是的,這樣的狀況下不會執行任何動作。

不過需注意,若同時有兩個以上的 SetPosition 觸發,只會執行第一個。

 

3. 小幫手不太確定您說的進場總金額上限是指哪個設定,如果是安控裡的每日進場金額的話,那就是先洗價觸發的先執行。

就算都是同一次洗價,運算出來到下單每個商品的時間也是會有些許不同。

 

感謝 musashi 的熱心回覆。

閒人 發文於   2022/11/21

請問小幫手

所謂  「...『同時』有兩個以上的 SetPosition 觸發,只會執行第一個...」

『同時』的定義是什麼?是同一根K嗎?

例如:希望先把未成交單刪除,再重新下買進委託:

...

setposition(filled,close);

setposition(position+1,close);

...

 

這樣就是您所說同時有兩個setposition觸發嗎?上述腳本會執行執行刪除委託單,再委託買進一口的結果嗎

 

XQ小幫手 發文於   2022/11/24

Hello 閒人,

 

同時的意思是 同一次腳本執行,和K棒沒有關係。

 

setposition(filled,close);

setposition(position+1,close);

這樣就是同時有兩個 setposition 觸發,所以只會執行第一個刪除委託單 (如果有未成交委託的話)。

發表回覆
Close