1分3分誇週期問題

  •   12 
  • 最後發表   I100255884  7 小時前
I100255884 發文於   2026/08/20

我有一個1分、3分誇週期的問題,有時候一開盤的時候條件是符合的,不會通知,有時候是盤中符合也不會通知,但只要我在盤中重開雷達策略,就會偵測到然後通知,想請問有哪個部分是我沒注意到導致出現這種狀況?謝謝! 

 

排序方式: 標準 | 最新
I100255884 發文於   2026/08/20

// STS 極短多

//

// 1分:

// DIF 在該根1分K「收盤時」向上

// + KD 的 K 值在該根1分K「收盤時」向上

//

// 3分:

// DIF 向上

// + KD 的 K 值向上

// → 不等3分收K,盤中當下符合即可

//

// 不限制現股當沖

// 不限制處置股

// 可用於期貨等商品

//

// 主頻率:請設定 1分鐘

 

 

input:

    // 1分 MACD

    FastLength1(18),

    SlowLength1(32),

    MACDLength1(12),

 

    // 1分 KD

    RSVLength1(90),

    KLength1(3),

    DLength1(3),

 

    // 3分 MACD

    FastLength3(6),

    SlowLength3(11),

    MACDLength3(8),

 

    // 3分 KD

    RSVLength3(9),

    KLength3(3),

    DLength3(3);

 

 

variable:

 

    // 1分

    dif1(0),

    macd1(0),

    osc1(0),

 

    rsv1(0),

    k1(0),

    d1(0),

 

    cond1DIF(false),

    cond1KD(false),

    cond1(false),

 

 

    // 

    // 3分

    // 

    dif3(0),

    macd3(0),

    osc3(0),

 

    dif3_prev(0),

 

    rsv3(0),

    k3(0),

    d3(0),

 

    k3_prev(0),

 

    cond3DIF(false),

    cond3KD(false),

    cond3(false);

 

 

SetTotalBar(10000);

 

ret = 0;

 

 

// 

// 1分 MACD

// 

 

MACD(

    WeightedClose(),

    FastLength1,

    SlowLength1,

    MACDLength1,

    dif1,

    macd1,

    osc1

);

 

I100255884 發文於   2026/08/20

 

// 

// 1分 KD

// 

 

Stochastic(

    RSVLength1,

    KLength1,

    DLength1,

    rsv1,

    k1,

    d1

);

 

 

// 

// 1分 DIF 收盤向上

//

// [1] = 剛收完的1分K

// [2] = 再前一根1分K

// 

 

cond1DIF =

    dif1[1] > dif1[2];

 

 

// 

// 1分 KD K值收盤向上

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

 

cond1KD =

    k1[1] > k1[2];

 

 

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

// 1分條件

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

 

cond1 =

    cond1DIF

    and cond1KD;

 

 

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

// 3分 MACD

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

 

xfMin_MACD(

    "3",

    xfMin_WeightedClose("3"),

    FastLength3,

    SlowLength3,

    MACDLength3,

    dif3,

    macd3,

    osc3

);

 

 

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

// 3分 KD

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

 

xfMin_Stochastic(

    "3",

    RSVLength3,

    KLength3,

    DLength3,

    rsv3,

    k3,

    d3

);

 

 

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

// 真正上一根完整3分K

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

 

dif3_prev =

    xfMin_GetValue("3", dif3, 1);

 

k3_prev =

    xfMin_GetValue("3", k3, 1);

 

 

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

// 3分 DIF 向上

//

// 目前形成中的3分 DIF

// > 上一根完整3分 DIF

//

// 不等3分收盤

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

 

cond3DIF =

    dif3 > dif3_prev;

 

 

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

// 3分 KD K值向上

//

// 目前形成中的3分 K

// > 上一根完整3分 K

//

// 不等3分收盤

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

 

cond3KD =

    k3 > k3_prev;

 

 

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

// 3分條件

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

 

cond3 =

    cond3DIF

    and cond3KD;

 

 

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

// 最終觸發

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

 

if cond1

and cond3

then

    ret = 1;

虎科大許教授 發文於   2026/08/20

你的變數在每次洗價時都會重新計算,所以不應該出現你說的該警示卻沒警示的情況。我猜測,這可能與你的觸發設定有關。若設定為單根K棒內觸發一次,則可能之前已觸發一次,因此系統安控就會阻擋再次觸發。盤中啟動策略卻有訊號,可能與補K有關。在補K時,交易指令不會被執行(觸發設定在此會被忽略),因此儘管之前曾經觸發,照理說不會再次觸發,但補K之後,還是會觸發訊號。你最好把策略雷達的設定也貼圖上來看看。

I100255884 發文於   2026/08/20

我先貼給教授看

附加文件

I100255884 發文於   2026/08/20

我先貼給教授看

附加文件

I100255884 發文於   2026/08/20

我先貼給教授看

附加文件

虎科大許教授 發文於   2026/08/20

你用K棒內單次觸發。如前所述,這是可能造成問題的原因。另外,你用每5秒鐘自動洗價一次。這也可能造成問題,因為每根K棒收K時,系統會自動再洗價一次,而這次洗價並不會觸發訊號。

我的建議:

(1)用逐筆洗價,不要用自動洗價。

(2)改用交易腳本處理。觸發模式用變數控制。

發表回覆
Close