XS 警示 已符合觸發條件但卻延遲觸發

  •   55 
  • 最後發表   殘破的韭菜  2024 八月 07
殘破的韭菜 發文於   2024/08/01

小幫手您好,我設置了一個外盤單>=12張的警示,代碼附在最下方,
今日6417於10:16:00有一筆12張的外盤單,但是警示卻在10:18:59才觸發(似乎是因為下一筆成交時間在10:18:58 加上1秒的延遲),想請問為何謂發生這種已經觸發條件卻在下一筆成交才跳出來,是這個警示的代碼可能有缺陷造成的嗎,
有什麼辦法能解決,再麻煩撥空回覆,感謝幫忙!

 

______

input: filterMode(1, "篩選方式", inputkind:=dict(["買盤",1], ["賣盤",-1]));

input: filterVolume(12, "大單門檻");

 

var: intrabarpersist readtick_cookie(0);// ReadTicks內部使用, 每次呼叫時請照實傳入

array: tick_array[100, 11](0); // 需要宣告一個2維陣列來儲存Tick資料

var: row_count(0), idx(0);

 

// 讀取Tick資料

row_count = ReadTicks(tick_array, readtick_cookie);

for idx = 1 to row_count begin

  if tick_array[idx, 5] = filterMode and tick_array[idx, 10] >= filterVolume and time>090030 then begin

    ret=1;

  end; 

 

end;

 _________________

 

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

兩個問題:

(1)readtick_cookie代表上次洗價的序號,你的程式沒看到對它有做任何記錄。

(2)你碰到的情況是一筆12張的大單被拆成兩筆,很可能是系統在判斷這筆大單是否已經全部成交,所以需要下一筆TICK確認。可參考以下TickGroup的說明。

https://xshelp.xq.com.tw/XSHelp/?HelpName=%E6%92%AE%E5%90%88%E7%BE%A4%E7%B5%84&group=TA

當第一筆6張成交時,GetField("TickGroup")傳回1,當第二筆6張成交時,傳回2,直到下一個TICK出現,才確認第二筆的6張是3。

殘破的韭菜 發文於   2024/08/01

感謝許教授的回覆,

1. readtick_cookie的部分在第10列有使用到,當初是參考XQ官網介紹提供的代碼 ( https://www.xq.com.tw/learn/xspractice/tickseq/ )

2. 我看上面提供的連結的說明,好像是XQ能夠判斷是否屬於同一筆連續成交序列,再去抓者一筆單的總量,
    我看今日其他曾經出發的警示如今日的3257,11:19:31也有一筆單筆穿價3個tick的15張買單,但警示卻能夠在11:19:31觸發,
如下面附圖,如然發現這樣是不是說明可能不是代碼問題,而是其他軟體或硬體的問體@@

虎科大許教授 發文於   2024/08/01

若這三筆的最後一筆觸發,則顯然最早的例子,觸發的時間點有問題。你若有LOG檔,試著寄給XQ客服看看。

  • 按讚來自於
  • ye43out98
XS小編 發文於   2024/08/07

Hello 殘破的韭菜,

 

就上面提供的資訊來看,小編會推測是策略設定為非逐筆洗價1分鐘頻率,所以要到下一根K棒有成交時,才把上一根K棒結束並洗價運算 (接著觸發)。

建議您可以加上 print 印出相關資訊會比較容易看出原因。

若還是有問題的話麻煩提供 警示策略匯出檔勾選(包含)警示腳本 以及 XQ Log 讓相關人員確認。

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

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

 

感謝 虎科大許教授 的熱心回覆。

發表回覆
Close