技術分析在金融市場中扮演著重要的角色,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),即市場參與者因看到他人跟隨某種趨勢而跟進,從而強化了該趨勢。這種行為模式反映了人類傾向於追隨強勢和明確的市場訊號。
演算法檢測條件
要檢測三隻蠟燭圖形,需滿足以下條件:
- 連續三根蠟燭方向一致:無論是上漲還是下跌,三根蠟燭需保持相同方向。
- 每根蠟燭實體大小符合標準:蠟燭實體需達到一定的最小值,以過濾出微小的蠟燭波動。
- 價格逐漸上升或下降:對於三白兵,每根蠟燭的收盤價需高於前一根;對於三黑鴉,則需逐漸降低。
程式碼範例
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
內容解密:
- 函式定義與引數:
signal函式接收五個引數:data(資料集)、open_column(開盤價列索引)、close_column(收盤價列索引)、buy_column(買入訊號列索引)和sell_column(賣出訊號列索引)。 - 新增欄位:呼叫
add_column(data, 5)為資料集新增五個欄位,用於儲存額外的計算結果或訊號。 - 迴圈遍歷資料:使用
for迴圈遍歷資料集中的每一行,並嘗試檢測三白兵和三黑鴉形態。 - 條件判斷:
- 三白兵條件:
- 連續三根蠟燭為陽線且實體大於
body。 - 每根蠟燭的收盤價高於前一根。
- 當前行未有買入訊號。
- 三黑鴉條件:
- 連續三根蠟燭為陰線且實體大於
body(實際上是小於負的body)。 - 每根蠟燭的收盤價低於前一根。
- 當前行未有賣出訊號。
- 訊號標記:當滿足相應條件時,在下一行的買入或賣出訊號欄位中標記
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模式的形成需要滿足以下條件:
- 第一根K線為看漲K線。
- 第二根K線為看漲K線,且其開盤價高於第一根K線的收盤價,形成跳空。
- 第三根K線為看跌K線,但其收盤價不低於第一根K線的收盤價。
此模式表明,儘管出現了看跌的K線,但賣方力量不足以完全填補跳空,因此預示著市場可能繼續上漲。
看跌Tasuki模式
看跌Tasuki模式是看漲Tasuki模式的映象,其形成條件如下:
- 第一根K線為看跌K線。
- 第二根K線為看跌K線,且其開盤價低於第一根K線的收盤價,形成跳空。
- 第三根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模式出現在上漲趨勢中,其特徵如下:
- 第一根K線為大陽線。
- 接下來三根K線為小陰線,且通常包含在第一根K線的範圍內。
- 第五根K線為大陽線,且收盤價高於第一根K線的最高價。
此模式類別似於小幅盤整後的向上突破。
下降Three Methods模式
下降Three Methods模式出現在下跌趨勢中,其特徵與上升Three Methods模式相反:
- 第一根K線為大陰線。
- 接下來三根K線為小陽線,且通常包含在第一根K線的範圍內。
- 第五根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
程式碼解析:
- 條件判斷:程式碼中對看漲和看跌三法模式進行了詳細的條件判斷,確保K線組合滿足特定的技術特徵。
- 資料處理:使用
add_column函式為資料新增額外的欄位,以便儲存買入或賣出訊號。 - 例外處理:透過
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:
程式碼解析:
- 條件判斷:程式碼中對看漲和看跌Hikkake模式進行了嚴格的條件判斷,確保捕捉到正確的市場訊號。
- 資料處理:同樣使用
add_Column函式為資料新增額外的欄位,以便儲存買入或賣出訊號。 - 例外處理:透過
try-except結構處理索引錯誤,確保程式的穩定執行。