技術分析在金融市場中扮演著重要的角色,K 線圖更是其中不可或缺的工具。本文將探討三種 K 線反轉形態:Inside Up/Down、Tower 和 Doppelgänger,並提供 Python 程式碼實作,以協助讀者更好地理解這些形態的應用。這些形態的判斷邏輯是根據特定 K 線組合的價格變化和相對位置,透過觀察這些形態,交易者可以更準確地預測市場走勢,並制定相應的交易策略。程式碼實作部分則提供了具體的演算法,方便讀者將這些技術指標應用於實際交易中。
現代反轉K線形態分析
在金融市場技術分析中,K線形態扮演著預測價格走勢的重要角色。本章節將探討兩種特殊的K線反轉形態:Inside Up/Down形態和Tower形態,並進一步介紹一種創新的Doppelgänger形態。
Inside Up/Down 形態詳解
Inside Up/Down是一種典型的反轉K線形態,用於預測市場趨勢的轉折。該形態由三根K線組成,第一根為大陰線或大陽線,第二根K線完全包含在第一根K線的實體內,最後一根K線為大陽線或大陰線,且收盤價超越第一根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 - 2, close_column] < data[i - 2, open_column] and \
abs(data[i - 2, open_column] - data[i - 2, close_column]) > body and \
data[i - 1, close_column] < data[i - 2, open_column] and \
data[i - 1, open_column] > data[i - 2, close_column] and \
data[i - 1, close_column] > data[i - 1, open_column] and \
data[i, close_column] > data[i - 2, open_column] and \
data[i, close_column] > data[i, open_column] and \
abs(data[i, open_column] - data[i, close_column]) > body:
data[i + 1, buy_column] = 1
# 空頭形態判斷
elif data[i - 2, close_column] > data[i - 2, open_column] and \
abs(data[i - 2, close_column] - data[i - 2, open_column]) > body and \
data[i - 1, close_column] > data[i - 2, open_column] and \
data[i - 1, open_column] < data[i - 2, close_column] and \
data[i - 1, close_column] < data[i - 1, open_column] and \
data[i, close_column] < data[i - 2, open_column] and \
data[i, close_column] < data[i, open_column] and \
abs(data[i, open_column] - data[i, close_column]) > body:
data[i + 1, sell_column] = -1
except IndexError:
pass
return data
程式碼解析
- 資料初始化:首先為資料集新增必要的欄位。
- 多頭與空頭判斷:透過迴圈遍歷歷史資料,根據特定的K線形態條件判斷是否為多頭或空頭訊號。
- 條件檢查:程式碼中包含了嚴格的條件檢查,例如第一根K線的實體大小、第二根K線是否被包含在第一根K線內,以及第三根K線的確認條件。
- 訊號標記:當滿足特定條件時,在對應的欄位中標記買入或賣出訊號。
內容解密
Inside Up/Down形態的關鍵在於第二根K線被包含在第一根K線內,這表明市場出現了暫時的平衡。第三根K線的突破方向決定了市場的下一步走勢。程式碼透過嚴格的條件檢查來捕捉這一現象,並據此產生交易訊號。
Tower 形態分析
Tower形態是一種由五根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:
# 多頭Tower Bottom形態
if data[i, close_column] > data[i, open_column] and \
data[i, close_column] - data[i, open_column] > body and \
data[i - 2, low_column] < data[i - 1, low_column] and \
data[i - 2, low_column] < data[i - 3, low_column] and \
data[i - 4, close_column] < data[i - 4, open_column] and \
data[i - 4, open_column] - data[i - 4, close_column] > body:
data[i + 1, buy_column] = 1
# 空頭Tower Top形態
elif data[i, close_column] < data[i, open_column] and \
data[i, open_column] - data[i, close_column] > body and \
data[i - 2, high_column] > data[i - 1, high_column] and \
data[i - 2, high_column] > data[i - 3, high_column] and \
data[i - 4, close_column] > data[i - 4, open_column] and \
data[i - 4, close_column] - data[i - 4, open_column] > body:
data[i + 1, sell_column] = -1
except IndexError:
pass
return data
程式碼解析
Tower形態的程式碼實作重點在於捕捉特定的五根K線序列,包括初始趨勢K線、中間的三根小實體K線,以及最後的確認K線。這些條件共同構成了Tower形態,用於預測趨勢的反轉。
Doppelgänger 形態介紹
Doppelgänger是一種創新的三根K線反轉形態,其特點是第二根和第三根K線具有相似的數值(高點、低點、開盤價和收盤價)。這種形態可用於確認中期的價格反轉。
雙重幻影(Doppelgänger)與封鎖(Blockade)技術分析模式
在技術分析領域中,雙重幻影(Doppelgänger)與封鎖(Blockade)是兩種重要的K線圖模式,用於預測市場走勢的反轉。本文將探討這兩種模式的定義、原理及應用。
雙重幻影(Doppelgänger)模式
雙重幻影是一種罕見的K線圖模式,由三根K線組成。當前兩根K線具有相似的高點和低點,且前一根K線的收盤價與開盤價具有特定的關係時,便形成了雙重幻影模式。
形成條件
- 看漲雙重幻影:當前K線與前一K線具有相同的高點和低點,且兩期前的K線為看跌(收盤價低於開盤價)。下一K線若突破前高,則確認看漲訊號。
- 看跌雙重幻影:當前K線與前一K線具有相同的高點和低點,且兩期前的K線為看漲(收盤價高於開盤價)。下一K線若跌破前低,則確認看跌訊號。
程式碼實作
def signal(data, open_column, high_column, low_column, close_column, buy_column, sell_column):
data = add_column(data, 5)
data = rounding(data, 4) # 針對FX資料,四位小數;其他資產可調整
for i in range(len(data)):
try:
# 看漲模式
if data[i - 2, close_column] < data[i - 2, open_column] and \
data[i, high_column] == data[i - 1, high_column] and \
data[i, low_column] == data[i - 1, low_column]:
data[i + 1, buy_column] = 1
# 看跌模式
elif data[i - 2, close_column] > data[i - 2, open_column] and \
data[i, high_column] == data[i - 1, high_column] and \
data[i, low_column] == data[i - 1, low_column]:
data[i + 1, sell_column] = -1
except IndexError:
pass
return data
內容解密:
data = add_column(data, 5):為資料新增五列新的欄位,用於儲存訊號和其他計算結果。data = rounding(data, 4):將資料四捨五入到小數點後四位,以滿足FX資料的精確度需求。if和elif陳述式檢查是否滿足雙重幻影的形成條件,並在下一行資料中標記買入或賣出訊號。
圖表示例
此圖示展示了GBPUSD貨幣對的雙重幻影訊號
- 稀少的訊號出現是由於嚴格的模式條件。
- 訊號的有效性需要進一步透過其他技術指標確認。
封鎖(Blockade)模式
封鎖模式是一種由四根K線組成的技術分析模式,用於識別市場在支撐或阻力位附近可能出現的反轉。
形成條件
- 看漲封鎖:第一根K線為看跌,隨後三根K線的最低價不低於第一根K線的最低價但低於其收盤價。第四根K線須為看漲且收盤價高於第一根K線的最高價。
- 看跌封鎖:第一根K線為看漲,隨後三根K線的最高價不高於第一根K線的最高價但高於其收盤價。第四根K線須為看跌且收盤價低於第一根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 - 3, close_column] < data[i - 3, open_column] and \
data[i - 2, low_column] >= data[i - 3, low_column] and data[i - 2, low_column] <= data[i - 3, close_column] and \
data[i - 1, low_column] >= data[i - 3, low_column] and data[i - 1, low_column] <= data[i - 3, close_column] and \
data[i, low_column] >= data[i - 3, low_column] and data[i, low_column] <= data[i - 3, close_column] and \
data[i, close_column] > data[i, open_column] and data[i, close_column] > data[i - 3, high_column]:
data[i + 1, buy_column] = 1
# 看跌模式
elif data[i - 3, close_column] > data[i - 3, open_column] and \
data[i - 2, high_column] <= data[i - 3, high_column] and data[i - 2, high_column] >= data[i - 3, close_column] and \
data[i - 1, high_column] <= data[i - 3, high_column] and data[i - 1, high_column] >= data[i - 3, close_column] and \
data[i, high_column] <= data[i - 3, high_column] and data[i, high_column] >= data[i - 3, close_column] and \
data[i, close_column] < data[i, open_column] and data[i, close_column] < data[i - 3, low_column]:
data[i + 1, sell_column] = -1
except IndexError:
pass
return data
圖表示例
此圖示展示了GBPUSD貨幣對的封鎖訊號圖表,突顯了該模式的稀少性和對多重條件的依賴。