"最近6週上漲次數" 的寫法???

  •   29 
  • 最後發表   Gladmarvin  2025 九月 17
Gladmarvin 發文於   2025/09/17

Dear 大大

為何以下2 個 寫法,得到的都是錯的答案

// ====================【 計算"最近6週上漲次數"的寫法 A】====================

var: _weekly_close(0);      //宣告一個變數來儲存週收盤價序列

var: _is_up_week(false);    //宣告一個變數來儲存每週是否上漲的判斷結果

 

// 1. 取得每週的收盤價 (使用還原權值)

_weekly_close = GetField("收盤價", "W", Adjusted:=true);

 

// 2. 定義「上漲週」的條件:本週收盤價 >= 上週收盤價

_is_up_week = _weekly_close >= _weekly_close[1];

 

// 3. 從「上週」(_is_up_week[1]) 開始回推,計算過去6週內,條件為True的次數

value1 = trueCount(_is_up_week[1], 6); 

// =======================================================================

 

// ====================【 計算"最近6週上漲次數"的寫法 B】====================

 

value2 = trueCount(GetField("漲跌幅","W",Adjusted:=true) >= 0, 6);

 

// =======================================================================

 

if symbol=4506.tw

then

ren=1;

OutputField10(value1, "valueA");

 

OutputField11(value2, "valueB");

 

虎科大許教授 發文於   2025/09/17

(1)不能用TrueCount函數。應該改用CountIf函數。

(2)選股腳本應使用還原週頻率。

setBarFreq("AW");
if isLastBar and symbol="4506.TW" then
    begin
        value1=countIf(GetField("漲跌幅")>=0, 6);       
        ret=1;
        OutputField1(value1, "上漲週數");
    end;

 

 

發表回覆
Close