求解,語法問題

  •   303 
  • 最後發表   菜鳥韭菜想進步  2025 五月 24
菜鳥韭菜想進步 發文於   2025/05/22

如題: 以下程式碼無法修正這個錯誤

// Indicator: 進階破底拉回訊號

// Version: 2.4 (移除 Alert, 調整手動 Abs 的 If/Else 結構)

// Description: (同前)

 

Inputs:

    LowPeriod(5, "破底K棒判斷期數"),

    DojiBodyRatio(0.1, "十字線實體佔全幅比例上限");

 

Variables:

    // --- Conditions for the K-candle at [1] (the "target K") ---

    IsActualBlackK_Prev(false),

    IsDoji_Prev(false),

    Cond_A_KType_Prev(false),

 

    Cond_B1_VolSeqIncrease_Before_Prev(false),

    Cond_B2_PrevKVolSmallest(false),

    Cond_B_VolumePattern_Prev(false),

 

    IsTargetPattern_PrevK(false),

 

    // --- Conditions for current candle [0] and relationship ---

    IsCurrRedK(false),

    IsCurrVolGreater(false),

    IsPrevKLowest(false),

    IsStrongPullBack(false),

 

    SignalCondition(false);

 

// 使用 CurrentBar 進行K棒數量檢查

If CurrentBar <= 4 then Begin

    Return;

End;

 

// === Step 1: 判斷前一根K棒 K[1] 的型態與量能 ===

IsActualBlackK_Prev = Close[1] < Open[1];

 

Var: Body_Prev(0), Range_Prev(0), O1_C1_Diff(0);

O1_C1_Diff = Open[1] - Close[1];

 

// 手動實現 Abs 功能 - 改寫 If/Else 結構

If O1_C1_Diff < 0 then

Begin

    Body_Prev = -O1_C1_Diff;

End

Else

Begin

    Body_Prev = O1_C1_Diff;

End;

 

Range_Prev = High[1] - Low[1];

 

If Range_Prev > 0 then

    IsDoji_Prev = Body_Prev <= Range_Prev * DojiBodyRatio

else

    IsDoji_Prev = Body_Prev == 0;

 

Cond_A_KType_Prev = IsActualBlackK_Prev or IsDoji_Prev;

 

Cond_B1_VolSeqIncrease_Before_Prev = Volume[4] < Volume[3] and Volume[3] < Volume[2];

Cond_B2_PrevKVolSmallest = Volume[1] < Volume[4];

 

Cond_B_VolumePattern_Prev = Cond_B1_VolSeqIncrease_Before_Prev and Cond_B2_PrevKVolSmallest;

IsTargetPattern_PrevK = Cond_A_KType_Prev and Cond_B_VolumePattern_Prev;

 

// === Step 2: 判斷其他訊號條件 (破底、目前紅K、紅K放量、強勢拉回) ===

IsCurrRedK = Close > Open;

IsCurrVolGreater = Volume > Volume[1];

 

If CurrentBar >= LowPeriod then

    IsPrevKLowest = Low[1] = Lowest(Low, LowPeriod)[1]

else

    IsPrevKLowest = false;

 

IsStrongPullBack = Close > Close[1];

 

// === Step 3: 綜合所有條件形成最終訊號 ===

SignalCondition = IsTargetPattern_PrevK and

                  IsPrevKLowest and

                  IsCurrRedK and

                  IsCurrVolGreater and

                  IsStrongPullBack;

 

If SignalCondition then

Begin

    // 暫時使用最簡單的 Plot1 形式

    Plot1(1, "進階破底拉回");

 

    // Alert() 函數已移除,因為指標腳本不支援

End;

附加文件

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/05/22

IsDoji_Prev = Body_Prev == 0;

改成

IsDoji_Prev = Body_Prev = 0;

菜鳥韭菜想進步 發文於   2025/05/24

感謝許教授,有您真好

發表回覆
Close