非交易日(含周末和國定假日)判斷問題

  •   274 
  • 最後發表   傳聖  2025 一月 21
傳聖 發文於   2023/01/31

請問如果我今天想要在標的進場後十個工作天出場,那正確的出場日期該如何取得呢?

我目前爬文有查到DayOfWeek可以判斷出周六周日來避開,但國定假日似乎沒有找到可以判斷的方法

想請問是否有其他語法可以解決這個問題,感謝!

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

Hello 傳聖,

 

就小幫手來說應該是沒有簡單的作法能夠辦到,需要自行將假日寫入腳本中作判斷。

但如果是反向作法的話可以辦到。

舉例來說,當 getfield("Date", "D")[10] = 進場日期 的時候,那麼當下的 getfield("Date", "D") 就會是進場後的10個工作天。

傳聖 發文於   2023/02/03

好的,感謝您的回覆!

無情卻慈悲 發文於   2025/01/14

如果用這個思維呢?是否可以判斷出來。

//當商品有下單成功數用變數記錄當日的日期

var:positionDate(0);

    positionDate = 20250114 ; //假設記錄到的是這個日期


For i = 1 to 20

Begin

    value1 = DateAdd(positionDate, "D", i);

    value2 = GetBarOffset(value1,090000) ;

    if value2 <>0 then value2+= 1 ;

    if value2 = 10 then Print("這是第10個交易日");

End;

 

虎科大許教授 發文於   2025/01/15

//策略部位設定為延續前次執行,若有進場,日期會被記錄。用FilledEntryDate可抓到該日期。

if isLastBar then

   begin

      value1=getBarOffset(FilledEntryDate);

      if value1>=10 then ret=1;

   end;

XS小編 發文於   2025/01/21

Hello 無情卻慈悲,

 

您的作法一樣是透過反向的方式來判斷是否經過10個工作日。

因為GetBarOffset取未來值時會等於0。

可以使用 getfield("Date", "D")[10] = positionDate 或是參考 虎科大許教授 的作法會相對單純。

發表回覆
Close