未符合下單條件時仍會進入if中改變變數的值

  •   119 
  • 最後發表   無情卻慈悲  2025 一月 21
無情卻慈悲 發文於   2024/10/29

你好,我用逐筆洗價,請教下,

var:intrabarpersist condition_buy_firstorder(true);
Print("condition_buy_firstorder " , condition_buy_firstorder );

//多單第1次下單

if position <= 0   and filled <= 0 

and  condition_buy_firstorder = true

and  conditon1

then begin

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

  condition_buy_firstorder = false ;

end;

 

//多單第2次下單

if position <= 0   and filled <= 0 

and  condition_buy_firstorder = false

and  conditon2

then begin

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

end;


以上,我的問題是,多單進場1的條件未符合(當然也未觸發下單),但Print("condition_buy_firstorder " , condition_buy_firstorder )時,condition_buy_firstorder的值為何已被改成是「false」了呢?

百思不解~~~

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

可能是程式在跑歷史K棒時,曾經觸發,變數被變成false,一直被保留下來。你需要在每天開始洗價時還原它回預設的true,才可避免這種問題。

無情卻慈悲 發文於   2024/10/30

我想說用 isfirstcall("Realtime") 來處理,不知是可以解決?

 

無情卻慈悲 發文於   2024/11/04

小幫手,可以協助回答一下嗎?

虎科大許教授 發文於   2024/11/04

if isfirstcall("Realtime") then condition_buy_firstorder = true;

無情卻慈悲 發文於   2024/11/05

謝謝教授

無情卻慈悲 發文於   2024/12/24

還要想請教小幫手,若第1個if條件沒有成立,為何仍會進入if中去改變變數的值?

xs的這樣機制 ,感覺很奇怪!!!

虎科大許教授 發文於   2024/12/24

這要看你的程式碼怎麼寫。XS裡面有些函數是不受流程控制的。

XS小編 發文於   2024/12/26

Hello 無情卻慈悲,

 

小編建議您可以先用 print 將相關數值印出,會比較容易找出原因。

若還是有問題的話,麻煩提供 交易腳本 以及 XQ Log,並告知是如何操作的,發生問題的時間等相關資訊讓相關人員確認。

Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)直接壓縮後提供即可。

您可以直接將檔案上傳,如果檔案過大的話也可以保存到雲端後將連結Mail至客服信箱 XQservice@XQ.com.tw 且務必附上 討論文章連結網址(小編才能盡早處理)。

感謝。

XS小編 發文於   2024/12/27

Hello 無情卻慈悲,

 

您在郵件中作附的腳本並沒有用 isfirstcall("Realtime") 來作控管。

小編這邊測試加上後就不會印出99,而是0 (參考附圖)。

附加文件

無情卻慈悲 發文於   2024/12/28

好的 感謝,我再試試

顯示更多回應 發表回覆
Close