如何只print當日的記錄

  •   260 
  • 最後發表   無情卻慈悲  2023 九月 07
無情卻慈悲 發文於   2022/08/15

我想問一下,

問1:

我想讓print只印出當日的記錄就好,

例如

if close > ma5 then begin

SetPosition(1, MARKET,label:="多單進場1:")

Print(date,time,"多單進場","成本",FilledAvgPrice);

end;

 

每次在print的log檔時,都會包含昨日之前的記錄也print出來,所以有沒有辬法在今日跑單時,就單單僅print今日的記錄呢?

是要用 :

 if date=currentdate來判斷,還是有更佳的寫法呢?

 

問2:

如同問1的語法,已經下單成功已有部位了,但log檔仍會一直印出「多單進場」的記錄,

或許可以加上 if position <=0 and close > ma5 .....來判斷,

但我因需求而不加上position,請問是否有辦法呢?

感謝

 

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

Hello 無情卻慈悲,

 

1.您可以用  if date=currentdate 來當作條件,這樣就可以確保只會印出執行當日的紀錄。

 

2.您可以把position的判斷寫在 print 前面。

舉例來說:

if close > ma5 then begin

    if position <> 1 then Print(date,time,"多單進場","成本",FilledAvgPrice);

    SetPosition(1, MARKET,label:="多單進場1:")

    end;

這樣就會確保在setposition執行時會印出資訊,其他時候不會。 

(只有position <> 1 的時候,SetPosition 才會運作)

RainLU 發文於   2022/08/22

請問小編,如果是只要記錄期貨夜盤的資訊, if date=currentdate這段要怎麼改成夜盤謝謝

XQ小幫手 發文於   2022/08/30

Hello RainLU,

 

您可以加上時間條件,舉例來說:

time > 150000 or time < 050000

這種條件就可以把運算侷限在下午三點到凌晨五點之間。

RainLU 發文於   2023/08/27

Hi 小編

這段time > 150000 or time < 050000 可以據體的詳細說明嗎

 

謝謝

XQ小幫手 發文於   2023/09/07

Hello RainLU,

 

小幫手建議您先閱覽網站上的討論區,裡面有XS語法的基礎和應用可以閱覽。

time > 150000 or time < 050000 就是Bar標示的時間要在15:00以後或是05:00以前。

如果要夜盤開盤第一根也要運算到的話,可以改為 time >= 150000 or time < 050000。

也就會是介於下午3點和清晨5點之間。

發表回覆
Close