FilledAtBroker語法

  •   911 
  • 最後發表   XQYi  2024 五月 27
XQYi 發文於   2024/05/26

FilledAtBroker=>

1.指的是現有商品的各庫存量?

2 在多個交易略中可以避免"重複"買多或賣多了,控制"所需"的庫存量?

3.如果多個交易策略下,以下程式碼

input: filledUpLimit(10, "最大買進數量");

condition1 = close cross over average(close, 10) and filled <= 0;

if condition1 and (FilledAtBroker + 3) <= filledUpLimit then setposition(3, market);

當A策略訊號觸發後買進3,此時庫存=5+3=8

之後B策略也觸發了,8+3=11=>不執行? 希望能買進2張

希望A+B策略自行判斷調整庫存達到所需最10,程式碼該如何編寫?

 

if currenttime >= 132400 and Position = Filled and FilledAtBroker <> 0 then setposition(-FilledAtBroker, market);

這"-"FilledAtBroker 意思是,

1. 全部清空庫存量

2.與setposition(0,marke)不同?

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

1.FilledAtBroker是該商品在券商帳戶的實際庫存。

2.可以。

3.若B策略也是有if condition1 and (FilledAtBroker + 3) <= filledUpLimit then的條件控制,則再買三張會超過filledUpLimit,因此不會下單(再買3張不是setposition(3, market)而是setposition(FilledAtBroker+3, market))。若符合條件要下單買滿,則改寫成

if condition1 then setposition(minlist(filledUpLimit,FilledAtBroker+3), market);

4.setposition(0,marke)是出清策略的庫存filled。若券商庫存與策略的filled不同,則出清庫存應改成

Sell(FilledAtBroker, market)或是setposition(filled-FilledAtBroker,market)。

XQYi 發文於   2024/05/26

A策略買進後已達庫存8張,B策略只能再買進2張

if condition1 then setposition(minlist(filledUpLimit,FilledAtBroker+3), market);

若以此行來看轉成數字來看,

if condition1 then setposition(minlist(10,8+3), market);

=買進10張 ?

 

-------

 

假設兩策略,庫存有3張,A今天又買進2張,總庫存5張 

if currenttime >= 132400 and Position = Filled and FilledAtBroker <> 0 then setposition(-FilledAtBroker, market);

->

Position = Filled 分別是-> 今日委託 2 成交 2 之後 P=0 F=2 就不可能P=F啊 ?

FilledAtBroker <> 0 ->5

setposition(-FilledAtBroker, market); -> -5 (賣出5張)

//

或是setposition(filled-FilledAtBroker,market)。

->setposition(2-5,market) 等於賣出3張相當於賣原庫存量 ?

 

感覺好複雜.........難懂全面多策略應用!!

 

 

 

 

虎科大許教授 發文於   2024/05/26

setposition(10)不是買進10張,而是讓庫存最後變成10張。你這個觀念若搞懂了,其他的問題就迎刃而解。

XQYi 發文於   2024/05/26

setposition=設定庫存量到達幾張+做多0為平倉-為做空,總是想著想著就被=1表示買進一張的說法干擾,就又想岔了。

Position,Filled這兩個也是一直搞不清,數值隨著狀況變來變去,都搞不清最後會是那個數值才是正確的,尤其是position的變化

虎科大許教授 發文於   2024/05/26

position是預期建立的部位,filled是實際建立的部位。

XQYi 發文於   2024/05/27

好像沒這麼單純定義名詞,使用上並不單一隨著變化有不同稱呼和數值變化,

目標部位、實際部位、帳號部位、策略部位、希望委託、委託、成交......多了去的不同名詞

例如

庫存一張,自動交易中心則顯示目標部位=1(這已經不是預期建立)、實際部位=1(個人認為應為 0 / 1)

若欲賣-> ?

若再欲買-> ?

欲買新股,一開始則顯示目標部位=0、實際部位=0

委買觸發-> 1 / 0 、委買下單後-> 1 / 0 、成交後 -> 1 / 1

買進後當日欲賣-> ?

會是如何變化數值? 程式碼編寫時是否就是參照這個變化而設定?

虎科大許教授 發文於   2024/05/27

假設剛開始是空手,送出買進一張的委託,position是1,亦即預期部位為1,若沒成交,filled是0,若成交,filled是1。不論是否成交,position都是1。若之後送出平倉的賣出委託,則position為0,若沒成交,則filled仍然是1,若成交,則filled為0。不論是否成交,position都是0。

買進後當日欲賣-> ?

委賣觸發前-> 1 / 1 、委賣下單後-> 0 / 1 、成交後 -> 0 / 0

XQYi 發文於   2024/05/27

感謝教授!

發表回覆
Close