關於 總成交次數函數

  •   101 
  • 最後發表   alan651109888  2 週前
alan651109888 發文於   2026/09/01

請問指標腳本使用 TickCnt = GetField("總成交次數") 這個函數 盤中現貨抓到的筆數跟換K棒後回頭看前根的筆數有明顯落差 例如看現貨盤中是1391筆 收盤後此根K棒的成交筆數變成40筆 對照明細表之後 40筆才是正確的 幾乎現貨盤中都有這個情況 個股期貨則是正常沒有此情況 請問這會影響腳本判讀正確性嗎?

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

當你使用GetField抓欄位資料且沒有賦予頻率參數時,系統會根據目前頻率去抓數據。

總成交次數會在每根K棒開始由0計算並累積次數。下一根K棒又從0開始累加。

我測試台積電個股,不論1分鐘或5分鐘,數據都是正確的。

alan651109888 發文於   2026/09/01

收K後收K前我測試很多檔現貨都有這個情況 我是掛在1分K上面  例如我掛在1326台化 用查價視窗盤中看他在跳的筆數 會到幾百筆 等這根K棒收完的時候 他換棒時 這根K的成交筆數就跳回幾十筆 落差會滿大的 

虎科大許教授 發文於   2026/09/01

我這邊查看技術分析圖表,並沒有 你說的情況。也許把你Plot的指令及執行Plot指令的條件貼上來看看。

alan651109888 發文於   2026/09/01

 // 當根筆數:1分K行進中抓取,未指定頻率(依目前頻率)

  TickCnt = GetField("總成交次數");

  FundA_Ratio = (Volume / MaxList(TickCnt, 1)) / MaxList(YDayVolPerTick, 1);

  FundB_Ratio = TickCnt / MaxList(YDayTickPerMin, 1);

 

  // 昨日基準:日頻率(每日算一次鎖整天)

  YDayTickCnt = GetField("總成交次數","D")[1];

 

  // Plot 指令:無條件,每根K直接畫

  Plot30(TickCnt, "30.本K筆數(驗證)");

 

  

 

  ▎ 「Plot30 是無條件顯示,直接畫 GetField("總成交次數")(1分K行進中、未指定頻率)。行進中顯示 127,同根K換棒後回看變 49;另外有的股票(稀疏股)行進中顯示 0,換棒後才出數值。都發生在現貨,期貨沒看過。對照明細

  ▎ 49 才是真實當根筆數。」 在成交頻繁的現貨都有此情況 

虎科大許教授 發文於   2026/09/01

從你貼的程式碼看來,不應該發生你描述的問題。

會不會你的 TickCnt 變數在 Plot 之前有被改變?

請先確認從 TickCnt = GetField("總成交次數"); 到 Plot30(TickCnt, "30.本K筆數(驗證)"); 之間的程式碼沒有改變 TickCnt。

alan651109888 發文於   2026/09/02

指標腳本裡 TickCnt 總共出現 8 次,全部位置:

 

  - 1 次是「領貨」:從欄位讀值放進 TickCnt(唯一一次賦值)

  - 1 次是宣告:剛開頭宣告這個變數存在

  - 6 次是「用貨」:算單筆張數倍數、算筆數倍數、判斷過關、畫 Plot30——全部只是拿來讀,沒有任何一行寫回

很奇怪 就現貨有這個問題 個股期貨沒有

虎科大許教授 發文於   2026/09/03

既然你有用TickCt運算,要留意呼叫函數做運算,TickCnt是否有被當作參數使用;若有,且該函數的參數是傳址參數,則在函數運算中,若有改變參數值,TickCnt數值就會被改變。

alan651109888 發文於   2026/09/03

老師您好 我同一個腳本掛載的自選股裡面 同時有現貨+個股期貨 只有現貨會有這個問題 期貨沒有發生過 如果是腳本問題的話 是不是應該兩種商品都會發生?

 

虎科大許教授 發文於   2026/09/03

照理說,若期貨沒這個問題,現貨也應該不會有這個問題。你可以試著用print指令,在繪製現貨指標時,顯示總成交次數的變化。

發表回覆
Close