在1分K交易腳本, 怎麼取得 近3天, 加權指數 0900~0914分 第一根15分k 的成交金額?

  •   68 
  • 最後發表   石頭  2026 五月 04
石頭 發文於   2026/04/29

if time=091500  then begin

value90 = GetSymbolField("TSE.TW","成交金額","15");      

value91 = GetSymbolField("TSE.TW","成交金額","15")[1];   

value92 = GetSymbolField("TSE.TW","成交金額","15")[2];

value93 = GetSymbolField("TSE.TW","成交金額","15")[3];

end ;

 

這樣寫是對的嗎?

謝謝

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

這樣寫不對。這個問題既跨頻率又跨商品,處理起來比較複雜。你可能需要跑迴圈處理。

  • 按讚來自於
  • goldberg73
虎科大許教授 發文於   2026/04/29

我打算把這個既跨頻率又跨商品的問題收藏為我的新版書籍範例,先分享給你參考。

If barfreq <> "Min" or barinterval <> 1 then raiseRunTimeError("限用1分鐘");
Input: Length(3, "天數");
SetTotalBar(270 * (Length + 1));
Var: i(0), Count(0);
Array: Arr1[](0), Arr2[](0);
If isLastBar then
    begin
        value1 = 270 * (Length + 1) / 15; //15分K筆數
        for i = 0 to value1-1
            begin
                if GetSymbolField("TSE.TW","日期","15")[i]<>Date and 
                    GetSymbolField("TSE.TW","日期","15")[i] <> GetSymbolField("TSE.TW","日期","15")[i+1] then
                    begin
                        count += 1;
                        Array_SetMaxIndex(Arr1, count);
                        Array_SetMaxIndex(Arr2, count);
                        Arr1[count]=GetSymbolField("TSE.TW","日期","15")[i]*1000000+GetSymbolField("TSE.TW","時間","15")[i];
                        Arr2[count]=GetSymbolField("TSE.TW","成交金額","15")[i];
                        print(Arr1[count],Arr2[count]);
                    end;
            end;        
    end;

  • 按讚來自於
  • goldberg73
石頭 發文於   2026/04/29

原來難度如此之高......

感謝教授無私分享!

虎科大許教授 發文於   2026/04/29

若要在盤中應用,考慮到計算的是歷史數據,只需要計算一次,可用isFirstCall("RealTime")取代isLastBar,這樣會比較有效率。

 

  • 按讚來自於
  • goldberg73
XS小編 發文於   2026/05/04

Hello 石頭,

 

小編補充,如果您的資料讀取筆數夠長 (ex. 包含當天有4日),則可以在每日第一根15分K的時候用陣列來保存所需資料。

舉例來說,如果執行在15分鐘頻率上:

 

Array: NumArray[4](0);

 

if time = 090000 then begin

    for value1 = 4 DownTo 2 begin

       NumArray[value1] = NumArray[value1 - 1];

       end;

    NumArray[1] = GetSymbolField("TSE.TW","成交金額");

    end;

 

這樣 NumArray 的 [1] ~ [4] 就會是 今天 ~ 大前天 的第一根成交金額資訊。

  • 按讚來自於
  • goldberg73
發表回覆
Close