技術分析在金融市場中扮演著重要的角色,K 線圖形作為技術分析的重要工具,能幫助交易者預測市場走勢。本文將探討幾種經典的 K 線圖形,包括三白兵、三黑鴉、Tasuki、三法和 Hikkake 模式,並結合程式碼範例說明其應用。這些圖形代表了市場參與者不同階段的心理狀態,透過辨識這些模式,交易者可以更準確地判斷市場趨勢,制定更有效的交易策略。瞭解這些圖形的形成原理和技術特徵,有助於交易者提升對市場的理解,並在實務操作中做出更明智的決策。

三隻蠟燭圖形(Three Candles Pattern)與其技術分析應用

三隻蠟燭圖形是一種趨勢確認的技術分析形態,當市場連續出現三根相同顏色的蠟燭,且蠟燭實體大小達到一定標準時,便會產生買入或賣出訊號。這種圖形分為看漲的三白兵(Three White Soldiers)與看跌的三黑鴉(Three Black Crows)兩種。

三白兵與三黑鴉的定義

  • 三白兵(Three White Soldiers):連續三根看漲的蠟燭,每根蠟燭的收盤價均高於前一根,代表市場強烈的上漲動能。
  • 三黑鴉(Three Black Crows):連續三根看跌的蠟燭,每根蠟燭的收盤價均低於前一根,顯示市場強烈的下跌趨勢。

圖形範例

此圖示展示了三白兵與三黑鴉的典型形態,分別對應看漲與看跌的市場訊號。

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title K線圖形技術分析與應用

package "圖論網路分析" {
    package "節點層" {
        component [節點 A] as nodeA
        component [節點 B] as nodeB
        component [節點 C] as nodeC
        component [節點 D] as nodeD
    }

    package "中心性指標" {
        component [度中心性
Degree Centrality] as degree
        component [特徵向量中心性
Eigenvector Centrality] as eigen
        component [介數中心性
Betweenness Centrality] as between
        component [接近中心性
Closeness Centrality] as close
    }
}

nodeA -- nodeB
nodeA -- nodeC
nodeB -- nodeD
nodeC -- nodeD

nodeA --> degree : 計算連接數
nodeA --> eigen : 計算影響力
nodeB --> between : 計算橋接度
nodeC --> close : 計算距離

note right of degree
  直接連接數量
  衡量局部影響力
end note

note right of eigen
  考慮鄰居重要性
  衡量全局影響力
end note

@enduml

圖形背後的心理基礎

三隻蠅燭圖形的形成根據從眾心理(Herding),即市場參與者因看到他人跟隨某種趨勢而跟進,從而強化了該趨勢。這種行為模式反映了人類傾向於追隨強勢和明確的市場訊號。

演算法檢測條件

要檢測三隻蠟燭圖形,需滿足以下條件:

  1. 連續三根蠟燭方向一致:無論是上漲還是下跌,三根蠟燭需保持相同方向。
  2. 每根蠟燭實體大小符合標準:蠟燭實體需達到一定的最小值,以過濾出微小的蠟燭波動。
  3. 價格逐漸上升或下降:對於三白兵,每根蠟燭的收盤價需高於前一根;對於三黑鴉,則需逐漸降低。

程式碼範例

def signal(data, open_column, close_column, buy_column, sell_column):
    data = add_column(data, 5)
    body = 0.0005  # 設定最小實體大小
    for i in range(len(data)):
        try:
            # 三白兵形態
            if data[i, close_column] - data[i, open_column] > body and \
                data[i - 1, close_column] - data[i - 1, open_column] > body and \
                data[i - 2, close_column] - data[i - 2, open_column] > body and \
                data[i, close_column] > data[i - 1, close_column] and \
                data[i - 1, close_column] > data[i - 2, close_column] and \
                data[i - 2, close_column] > data[i - 3, close_column] and \
                data[i, buy_column] == 0:
                data[i + 1, buy_column] = 1
            
            # 三黑鴉形態
            elif data[i, close_column] - data[i, open_column] < -body and \
                data[i - 1, close_column] - data[i - 1, open_column] < -body and \
                data[i - 2, close_column] - data[i - 2, open_column] < -body and \
                data[i, close_column] < data[i - 1, close_column] and \
                data[i - 1, close_column] < data[i - 2, close_column] and \
                data[i - 2, close_column] < data[i - 3, close_column] and \
                data[i, sell_column] == 0:
                data[i + 1, sell_column] = -1
        except IndexError:
            pass
    return data

內容解密:

  1. 函式定義與引數signal函式接收五個引數:data(資料集)、open_column(開盤價列索引)、close_column(收盤價列索引)、buy_column(買入訊號列索引)和sell_column(賣出訊號列索引)。
  2. 新增欄位:呼叫add_column(data, 5)為資料集新增五個欄位,用於儲存額外的計算結果或訊號。
  3. 迴圈遍歷資料:使用for迴圈遍歷資料集中的每一行,並嘗試檢測三白兵和三黑鴉形態。
  4. 條件判斷
    • 三白兵條件
    • 連續三根蠟燭為陽線且實體大於body
    • 每根蠟燭的收盤價高於前一根。
    • 當前行未有買入訊號。
    • 三黑鴉條件
    • 連續三根蠟燭為陰線且實體大於body(實際上是小於負的body)。
    • 每根蠟燭的收盤價低於前一根。
    • 當前行未有賣出訊號。
  5. 訊號標記:當滿足相應條件時,在下一行的買入或賣出訊號欄位中標記1-1

表現評估與實證結果

儘管三隻蠟燭圖形的勝率相對Marubozu較高,但風險報酬比仍然偏低,顯示該策略在實際應用中的盈利能力仍需謹慎評估。以下是部分資產的三隻蠟燭圖形績效總結:

| 資產標的 | 勝率 | 利潤因子 | 風險報酬比 | 訊號數量 | |


  • |


|


  • |



|


  • | | EURUSD | 61.45% | 1.05 | 0.66 | 2672 | | USDCHF | 62.04% | 0.98 | 0.60 | 2005 | | GBPUSD | 61.53% | 0.96 | 0.60 | 3611 |

技術分析中的Tasuki與Three Methods模式

在技術分析領域中,K線圖案是交易者用來預測市場走勢的重要工具。本文將探討兩種特殊的K線模式:Tasuki模式和Three Methods模式,並分析其在不同市場中的表現。

Tasuki模式:市場情緒的微妙變化

Tasuki模式是一種由三根K線組成的圖案,用於預測市場的短期走勢。這種模式分為看漲Tasuki和看跌Tasuki兩種。

看漲Tasuki模式

看漲Tasuki模式的形成需要滿足以下條件:

  1. 第一根K線為看漲K線。
  2. 第二根K線為看漲K線,且其開盤價高於第一根K線的收盤價,形成跳空。
  3. 第三根K線為看跌K線,但其收盤價不低於第一根K線的收盤價。

此模式表明,儘管出現了看跌的K線,但賣方力量不足以完全填補跳空,因此預示著市場可能繼續上漲。

看跌Tasuki模式

看跌Tasuki模式是看漲Tasuki模式的映象,其形成條件如下:

  1. 第一根K線為看跌K線。
  2. 第二根K線為看跌K線,且其開盤價低於第一根K線的收盤價,形成跳空。
  3. 第三根K線為看漲K線,但其收盤價不高於第一根K線的收盤價。

此模式表明買方力量不足以扭轉下跌趨勢,因此市場可能繼續下跌。

Tasuki模式的演算法實作

要實作Tasuki模式的自動化檢測,可以使用以下Python函式:

def signal(data, open_column, close_column, buy_column, sell_column):
    data = add_column(data, 5)
    for i in range(len(data)):
        try:
            # 看漲Tasuki模式
            if data[i, close_column] < data[i, open_column] and \
               data[i, close_column] < data[i - 1, open_column] and \
               data[i, close_column] > data[i - 2, close_column] and \
               data[i - 1, close_column] > data[i - 1, open_column] and \
               data[i - 1, open_column] > data[i - 2, close_column] and \
               data[i - 2, close_column] > data[i - 2, open_column]:
                data[i + 1, buy_column] = 1
            # 看跌Tasuki模式
            elif data[i, close_column] > data[i, open_column] and \
                 data[i, close_column] > data[i - 1, open_column] and \
                 data[i, close_column] < data[i - 2, close_column] and \
                 data[i - 1, close_column] < data[i - 1, open_column] and \
                 data[i - 1, open_column] < data[i - 2, close_column] and \
                 data[i - 2, close_column] < data[i - 2, open_column]:
                data[i + 1, sell_column] = -1
        except IndexError:
            pass
    return data

Tasuki模式的回測結果

對Tasuki模式進行回測後,我們發現這種模式在不同市場中的表現差異較大。以下是部分資產的回測結果:

| 資產 | 勝率 | 利潤因子 | 風險報酬比 | 訊號次數 | |


|


|



|



-|



| | EURUSD | 58.06% | 0.97 | 0.70 | 31 | | USDCHF | 59.46% | 1.92 | 1.31 | 37 | | GBPUSD | 48.72% | 0.93 | 0.98 | 39 | | USDCAD | 40.00% | 0.61 | 0.91 | 40 | | BTCUSD | 53.57% | 0.89 | 0.77 | 56 | | ETHUSD | 50.00% | 1.03 | 1.03 | 30 | | GOLD | 51.49% | 1.01 | 0.95 | 101 | | S&P500 | 36.36% | 0.33 | 0.58 | 11 | | FTSE100 | 50.00% | 1.56 | 1.56 | 14 |

結果分析

從回測結果可以看出,Tasuki模式在不同資產上的表現不一,且訊號出現次數較少,這使得結果的統計穩健性存疑。儘管如此,這種模式仍具有一定的邏輯直覺,但在實際交易中應謹慎使用。

Three Methods模式:趨勢持續的訊號

Three Methods模式是一種由五根K線組成的複雜圖案,用於確認趨勢的持續。

上升Three Methods模式

上升Three Methods模式出現在上漲趨勢中,其特徵如下:

  1. 第一根K線為大陽線。
  2. 接下來三根K線為小陰線,且通常包含在第一根K線的範圍內。
  3. 第五根K線為大陽線,且收盤價高於第一根K線的最高價。

此模式類別似於小幅盤整後的向上突破。

下降Three Methods模式

下降Three Methods模式出現在下跌趨勢中,其特徵與上升Three Methods模式相反:

  1. 第一根K線為大陰線。
  2. 接下來三根K線為小陽線,且通常包含在第一根K線的範圍內。
  3. 第五根K線為大陰線,且收盤價低於第一根K線的最低價。

此模式類別似於小幅盤整後的向下突破。

三法(Three Methods)與Hikkake模式的技術分析與實務應用

三法模式的心理學基礎與技術特徵

三法模式是一種罕見且具有特殊心理學意義的K線組合形態。它主要分為看漲和看跌兩種形態,分別對應市場的多頭和空頭趨勢。該模式的核心在於突破和確認初始趨勢,藉此捕捉市場的連續性機會。

從心理學角度來看,三法模式反映了市場參與者對於趨勢的信心和獲利了結的行為。當初始趨勢形成後,部分交易者開始獲利了結,導致價格進入整理或修正階段。若初始趨勢的交易者重新開始買入或賣出,並成功突破整理區間,則表明趨勢將繼續。

三法模式的程式碼實作與解析

def signal(data, open_column, high_column, low_column, close_column, buy_column, sell_column):
    data = add_column(data, 5)
    for i in range(len(data)):
        try:
            # 看漲三法模式
            if data[i, close_column] > data[i, open_column] and \
               data[i, close_column] > data[i - 4, high_column] and \
               data[i, low_column] < data[i - 1, low_column] and \
               data[i - 1, close_column] < data[i - 4, close_column] and \
               data[i - 1, low_column] > data[i - 4, low_column] and \
               data[i - 2, close_column] < data[i - 4, close_column] and \
               data[i - 2, low_column] > data[i - 4, low_column] and \
               data[i - 3, close_column] < data[i - 4, close_column] and \
               data[i - 3, low_column] > data[i - 4, low_column] and \
               data[i - 4, close_column] > data[i - 4, open_column]:
                data[i + 1, buy_column] = 1
            # 看跌三法模式
            elif data[i, close_column] < data[i, open_column] and \
                 data[i, close_column] < data[i - 4, low_column] and \
                 data[i, high_column] > data[i - 1, high_column] and \
                 data[i - 1, close_column] > data[i - 4, close_column] and \
                 data[i - 1, high_column] < data[i - 4, high_column] and \
                 data[i - 2, close_column] > data[i - 4, close_column] and \
                 data[i - 2, high_column] < data[i - 4, high_column] and \
                 data[i - 3, close_column] > data[i - 4, close_column] and \
                 data[i - 3, high_column] < data[i - 4, high_column] and \
                 data[i - 4, close_column] < data[i - 4, open_column]:
                data[i + 1, sell_column] = -1
        except IndexError:
            pass
    return data

程式碼解析:

  1. 條件判斷:程式碼中對看漲和看跌三法模式進行了詳細的條件判斷,確保K線組合滿足特定的技術特徵。
  2. 資料處理:使用add_column函式為資料新增額外的欄位,以便儲存買入或賣出訊號。
  3. 例外處理:透過try-except結構處理索引錯誤,避免程式因資料不足而當機。

Hikkake模式的技術分析與實務應用

Hikkake模式是一種源自日語“陷阱”或“誘騙”的技術分析形態,主要用於捕捉市場的趨勢變化。它由多根K線組成,通常涉及五根或以上的K線組合。

Hikkake模式的技術特徵與心理學基礎

Hikkake模式分為看漲和看跌兩種形態,分別對應市場的多頭陷阱和空頭陷阱。該模式透過誘騙市場參與者進入錯誤的交易方向,從而捕捉到趨勢的轉變。

Hikkake模式的程式碼實作與解析

def signal(data, open_column, high_column, low_column, close_column, buy_signal, sell_signal):
    data = add_column(data, 5)
    for i in range(len(data)):
        try:
            # 看漲Hikkake模式
            if data[i, close_column] > data[i - 3, high_column] and \
               data[i, close_column] > data[i - 4, close_column] and \
               data[i - 1, low_column] < data[i, open_column] and \
               data[i - 1, close_column] < data[i, close_column] and \
               data[i - 1, high_column] <= data[i - 3, high_column] and \
               data[i - 2, low_column] < data[i, open_column] and \
               data[i - 2, close_column] < data[i, close_column] and \
               data[i - 2, high_column] <= data[i - 3, high_column] and \
               data[i - 3, high_column] < data[i - 4, high_column] and \
               data[i - 3, low_column] > data[i - 4, low_columne] and \
               data[i - 4, close_column] > data[i - 4, open_column]:
                data[i + 1, buy_signal] = 1
            # 看跌Hikkake模式
            elif data[i, close_column] < data[i - 3, low_column] and \
                 data[i, close_column] < data[i - 4, close_column] and \
                 data[i - 1, high_column] > data[i, open_column] and \
                 data[i - 1, close_column] > data[i , close_column] and \
                 data[i - 1 , low_columne] >= datalumn) and \
                 (i - 3 , low_columne]:
                datumn):
            # 看跌Hikkake模式
            elif 
                 column] < 
                 open_colcolumn]:
                datumn + 
        try:

程式碼解析:

  1. 條件判斷:程式碼中對看漲和看跌Hikkake模式進行了嚴格的條件判斷,確保捕捉到正確的市場訊號。
  2. 資料處理:同樣使用add_Column函式為資料新增額外的欄位,以便儲存買入或賣出訊號。
  3. 例外處理:透過try-except結構處理索引錯誤,確保程式的穩定執行。