夢中故鄉情

心隨淡雲仙鶴-想到什麽說什麽
正文

ClusterTendency : 指標的聚類分析

(2025-04-14 19:18:20) 下一個

ClusterTendency:一種揭示股票市場模式的通用工具

在股票市場分析領域,存在著大量的技術指標,其中包括但不限於移動平均線、相對強弱指數 (RSI)、布林帶以及移動平均收斂散度 (MACD) 等。與此同時,每位交易者都采用著各異且通常是專有的交易策略。一個普遍存在的現象是,無論是技術指標還是交易策略都具有其固有的不一致性;一項指標的有效性會隨著時間的推移而波動,而交易者的策略也必然會經曆盈利和虧損的周期,從而需要持續的研究和對新方法的探索。本文將探討一種類似的固有變異性和條件性表現。

示例技術指標:

  • 移動平均線 (移動平均線)
  • 相對強弱指數 (相對強弱指數 - RSI)
  • 布林帶 (布林帶)
  • 移動平均收斂散度 (移動平均收斂散度 - MACD)
  • 成交量 (成交量)
  • 斐波那契回撤 (斐波那契回撤)
  • 隨機指標 (隨機指標)
  • 艾略特波浪理論 (艾略特波浪理論)
  • 一目均衡表 (一目均衡表)
  • 平均趨向指數 (平均趨向指數 - ADX)

在充滿活力的股票交易世界中,發現能夠預測價格走勢的模式是獲得優勢的關鍵。ClusterTendency 是一種創新的指標,旨在揭示交易策略的成功或失敗何時聚集在一起,為任何隨時間跟蹤的市場指標提供可操作的見解。ClusterTendency 構建於使用 Microsoft Access 和 Python 的強大數據係統之上,將原始交易結果轉化為強大的決策工具。本文解釋了什麽是 ClusterTendency,它是如何計算的,以及交易者如何將其應用於各種指標以優化策略,使其成為任何交易專業人士的一項突出技能。

什麽是 ClusterTendency?

將交易策略想象成一係列的押注:每筆交易要麽盈利(正回報),要麽虧損(負回報或零回報)。如果盈利連續發生——比如 111111——或者虧損累積為 000000,那麽這些結果就是“聚集”的。ClusterTendency 量化了任何指標表現的這種聚集性,產生一個 0 到 1 之間的值。高分(例如,0.7 或更高)表示強烈的聚集性,這意味著交易傾向於遵循可預測的趨勢,比如一隻股票在一連串看漲信號後飆升。

ClusterTendency 的目的是揭示隱藏的市場節奏,從而增強交易信心。無論你使用的是相對強弱指數(RSI)、布林帶還是自定義信號,隻要你能將其表現追蹤為盈利和虧損的時間序列,ClusterTendency 就能幫助你決定何時積極交易或何時持倉觀望,從而提高策略的精確性。

為什麽 ClusterTendency 很重要?

大多數交易指標告訴你何時行動——比如,當 RSI 跌破 30(超賣)時買入。但它們很少顯示這些信號隨時間的表現如何。盈利是否成群出現,暗示著動量?虧損是否聚集,暗示著反轉?ClusterTendency 回答了這些問題,清晰地揭示了:

  • 一個策略的結果是否形成可交易的連勝或連敗。
  • 在連勝期間何時擴大倉位。
  • 一個信號的表現是否過於隨機而無法信任。

在我的係統中,由 Microsoft Access 數據庫和 Python 腳本驅動,我跟蹤股票和 ETF 在任何生成時間序列的指標上的交易結果。每個信號都會產生一個 posString——一個由 1(盈利)和 0(虧損)組成的序列。ClusterTendency 分析這個字符串來衡量其連貫性,使交易者能夠優先考慮高潛力設置並適應任何市場狀況。

ClusterTendency 是如何計算的?

計算簡單、可擴展,並能無縫集成到數據驅動的交易工作流程中。以下是計算過程:

  1. 記錄交易結果:

    • 選擇一隻股票或 ETF 和一個指標(例如,RSI、MACD 或自定義信號)。
    • 在設定的時間段內(例如,1 天、5 天或 20 天)跟蹤每筆交易的回報。
    • 將盈利標記為 1,虧損標記為 0,構建一個 posString。例如:1111100000111110011110000011000001111100001111100111110000(55 筆交易)。
  2. 識別聚類:

    • 將 posString 分割成由連續的 1 或 0 組成的段。
    • 對於上麵的字符串,聚類包括 11111(五個 1)、00000(五個 0)、11111(五個 1)、00(兩個 0)等等。
    • 每個聚類都有一個類型(1 或 0)和長度。
  3. 計算聚類強度指數 (CSI):

    • 將所有聚類的長度相加(例如,5 + 5 + 5 + 2 + …)。
    • 除以聚類的數量得到平均長度 (CSI)。
    • 較高的 CSI 意味著更長、更連貫的聚類。
  4. 歸一化為 ClusterTendency:

    • 使用公式:ClusterTendency = CSI / (1 + CSI)。
    • 這會將結果從 0(隨機,如 101010)縮放到 1(一個大的聚類,如 11111111)。
    • 示例:CSI 為 4 時,ClusterTendency = 4 / (1 + 4) = 0.8,表示強烈的聚類。

我的 Python 代碼會自動完成這些計算,並將結果存儲在 Access 表格(ReturnPossibilityOverview)中,其中包含勝率(Ratio)和平均回報(Avg)等指標。數據庫確保了數據的完整性,而 Python 則處理計算,從而輕鬆分析跨股票的多個指標。

如何在交易中使用 ClusterTendency

ClusterTendency 是一種多功能工具,可以增強任何具有時間序列數據的指標。以下是如何利用它:

  1. 篩選高潛力策略:

    • 查詢具有高 ClusterTendency (>0.7) 的股票或指標,以尋找連貫的表現。
    • 結合勝率:
      • 高勝率 (>60%) + 高 ClusterTendency:表示動量。示例:RSI 買入信號出現 111111 連勝——是多頭交易的理想選擇。
      • 低勝率 (<40%) + 高 ClusterTendency:暗示看跌趨勢或反轉。示例:布林帶賣出信號出現 000000 連敗——考慮做空。
      • 中性勝率 (~50%) + 高 ClusterTendency:尋找反轉。示例:111111 → 賣出,000000 → 買入。
    • SQL 示例:
    SQL
    SELECT Strategy, Ratio, ClusterTendency, AvgFROM ReturnPossibilityOverviewWHERE ClusterTendency > 0.7
  2. 設定交易信心水平:

    • 低風險交易:
      • 適用於中等 ClusterTendency (0.6–0.7) 或平衡的勝率。
      • 示例:在一次盈利 (1) 後以標準倉位進行交易。
    • 高風險交易:
      • 適用於高 ClusterTendency (>0.7) 且勝率較高的情況。
      • 示例:在連續兩次盈利 (11) 後增加倉位,預期會出現另一個 1。對於低勝率,在連續兩次虧損 (00) 後做空。
    • 示例:RSI 信號出現 111111——在出現 11 後增加倉位。
  3. 優化倉位規模:

    • 高 ClusterTendency → 在連勝期間增加倉位規模(例如,在出現 11 或 00 後)。
    • 低 ClusterTendency → 對於隨機結果,堅持正常倉位規模。
    • 考慮平均回報以平衡風險和回報。
  4. 回測以提高精確度:

    • 分析 posString 以計算概率,例如 P(1 | 11)——在連續兩次盈利後再次盈利的概率。
    • Python 代碼:
    Python
    pos_string = "1111100000111110011110000011000001111100001111100111110000"p_1_after_11 = sum(1 for i in range(len(pos_string)-2) if pos_string[i:i+2] == "11" and pos_string[i+2] == "1") / sum(1 for i in range(len(pos_string)-2) if pos_string[i:i+2] == "11")print(f"連續兩次盈利後再次盈利的概率: {p_1_after_11:.2f}")
    • 將結果存儲在 Access 中以優化策略。
  5. 應用於任何指標:

    • 與 RSI、布林帶、移動平均線或自定義信號一起使用,隻要你有盈利/虧損的曆史記錄。
    • 示例:RSI 超賣 + ClusterTendency > 0.7 → 強烈的買入信號。
[ 打印 ]
評論
目前還沒有任何評論
登錄後才可評論.