// =========================================================
// XQ 警示腳本:尾盤試搓異動偵測 (2026 ETF 換股季專用)
// =========================================================
// 用途:在 13:25 ~ 13:29:59 試搓期間,偵測股價相對於 13:24
// 最後成交價的偏離程度。當偏離 >= 1.5% 且試搓量達標時觸發警示。
//
// 適用:XQ 全球贏家 - 策略雷達 (警示腳本)
// 相容:資料讀取筆數 = 1 的鎖定環境
// 版本:v2.0 - 2026/05/13
// =========================================================
SetTotalBar(1);
// --- 變數宣告 ---
variable:
matchPrice(0), // 試搓當下價
preMatchPrice(0), // 13:24 區間最後成交價 (基準價)
priceDiff(0), // 偏離百分比
matchVol(0); // 試搓區間累積成交量
// =========================================================
// 階段一:13:24 區間 — 持續更新基準價
// =========================================================
// 每收到一筆 Tick 就更新 preMatchPrice,
// 到 13:24:59 時,preMatchPrice 會是該分鐘最後一筆成交價,
// 也就是試搓開始前最接近的「正常交易價」。
// =========================================================
if Time >= 1324 and Time < 1325 then begin
preMatchPrice = q_Last;
end;
// =========================================================
// 階段二:13:25 ~ 13:29:59 試搓期間 — 偵測異常偏離
// =========================================================
// 觸發條件:偏離絕對值 >= 1.5% 且 當分 K 棒成交量 >= 10 張
// (避開 13:30:00 的正式收盤撮合,防止瞬間放大誤觸發)
// =========================================================
if Time >= 1325 and Time < 1330 then begin
matchPrice = q_Last;
matchVol = Volume; // 改用 Volume 取代 q_TickVolume,相容性最佳
if preMatchPrice > 0 then begin
priceDiff = (matchPrice - preMatchPrice) / preMatchPrice * 100;
if AbsValue(priceDiff) >= 1.5 and matchVol >= 10 then begin
RetMsg = "【ETF換股預警】量:" + NumToStr(matchVol, 0)
+ "張, 偏離:" + NumToStr(priceDiff, 2) + "%";
Ret = 1;
end;
end;
end;
// =========================================================
// 階段三:時段外重置變數
// =========================================================
// 避免昨日殘留數值污染今天的判斷
// =========================================================
if Time >= 1330 or Time < 1324 then begin
preMatchPrice = 0;
Ret = 0;
end;
請問這樣警示該如何修改才能跳出來,另外,資料讀取筆數被固定為1筆,該如何讓它可以更改
6 評論