iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0

前幾篇談到了價量和指標,這篇來談談型態學

股票中的型態理論是一種用於技術分析的方法,它基於市場價格的圖形和模式來預測股票價格的未來走勢。型態理論假設市場參與者的行為在股票價格的圖表中留下痕跡,並且這些痕跡可以用來預測未來價格的走勢。以下是型態理論的一些關鍵概念和常見圖案:

其實型態是很主觀的,要怎麼客觀地去產生型態識別是很有挑戰性的

  1. 型態理論的基本概念
  • 市場心理學:型態理論基於市場參與者的心理和情感。它假設投資者的情緒波動會反映在價格圖表中,從而形成不同的型態。
  • 歷史重複性:型態理論認為市場中的某些型態和模式在歷史上出現過,並且可能會再次出現。這種觀點強調歷史價格行為的重要性。
  1. 常見的股票型態
  • 頭肩頂和頭肩底:這是兩個常見的反轉型態。頭肩頂通常出現在股票價格頂部,預示著價格可能下跌。頭肩底出現在底部,預示著價格可能上漲。
  • 高檔和低檔:高檔和低檔是區域型態,它們代表股票價格在一個區域內波動,通常在趨勢反轉之前出現。
  • 三角形:三角形型態包括對稱三角形、上升三角形和下降三角形。這些型態通常代表價格壓力正在累積,可能會導致突破。
  • 銳角和續跌:這是趨勢型態,銳角表示價格急劇上升,續跌表示價格急劇下降。這些型態可能表明市場趨勢強烈。
  1. 型態理論的應用
  • 交易決策:許多交易者使用型態理論來識別潛在的買賣機會。例如,當出現頭肩底型態時,一些交易者可能考慮買入。
  • 停損和停利:型態理論也可以用於設定停損和停利水平。根據不同的型態和模式,交易者可以決定在什麼價位上設定停損和止盈訂單。

常見的型態

頭肩頂和頭肩底 (Head and Shoulders):
頭肩頂:包括一個高峰(頭部)之間的兩個低谷(肩部)。通常預示著價格可能下跌。
頭肩底:包括一個低谷(頭部)之間的兩個高峰(肩部)。通常預示著價格可能上漲。

# 設定檢測頭肩底的參數
left_shoulder_depth = 20  # 左肩部最低價格的前期數據窗口大小
right_shoulder_depth = 20  # 右肩部最低價格的後期數據窗口大小

# 檢測頭肩底型態
def detect_head_and_shoulders(data):
    for i in range(1, len(data) - 1):
        if (
            data['Low'][i] < data['Low'][i - left_shoulder_depth]
            and data['Low'][i] < data['Low'][i + right_shoulder_depth]
            and data['High'][i] > data['High'][i - left_shoulder_depth:i + right_shoulder_depth].max()
        ):
            return i  # 返回頭肩底型態的右肩部位置
    return None  # 沒有檢測到頭肩底型態

# 檢測頭肩底型態
shoulder_position = detect_head_and_shoulders(data)

雙頂和雙底 (Double Top and Double Bottom):
雙頂:包括兩個相似的價格高點,中間有一個較低的低谷。預示著價格可能下跌。
雙底:包括兩個相似的價格低點,中間有一個較高的高峰。預示著價格可能上漲。

# 設定檢測W底的參數
lookback_window = 20  # 查找W底的回顧窗口大小
depth_threshold = 0.03  # W底的深度閾值(價格變化百分比)

# 函數:檢測W底型態
def detect_w_bottom(data, lookback_window, depth_threshold):
    for i in range(lookback_window, len(data) - lookback_window):
        left_low = data['Low'][i - lookback_window:i].min()
        middle_low = data['Low'][i - lookback_window // 2:i + lookback_window // 2].min()
        right_low = data['Low'][i:i + lookback_window].min()

        # 檢測W底的深度是否滿足閾值
        if (
            middle_low < left_low * (1 - depth_threshold)
            and middle_low < right_low * (1 - depth_threshold)
            and data['Low'][i] == middle_low
        ):
            return i  # 返回W底的底部位置
    return None  # 沒有檢測到W底

# 檢測W底型態
w_bottom_position = detect_w_bottom(data, lookback_window, depth_threshold)

三重頂和三重底 (Triple Top and Triple Bottom):
三重頂:包括三個相似的價格高點,中間有兩個較低的低谷。預示著價格可能下跌。
三重底:包括三個相似的價格低點,中間有兩個較高的高峰。預示著價格可能上漲。

上升三角形和下降三角形 (Ascending Triangle and Descending Triangle):
上升三角形:由一條水平的上界和一個上升的支撐線組成。預示著價格可能突破上界上漲。
下降三角形:由一條水平的下界和一個下降的壓力線組成。預示著價格可能突破下界下跌。

# 設定檢測上升三角旗的參數
window_size = 40  # 查找上升三角旗的窗口大小

# 函數:檢測上升三角旗型態
def detect_ascending_triangle_flag(data, window_size):
    for i in range(window_size, len(data) - window_size):
        upper_bound = data['High'][i - window_size:i].max()
        lower_bound = data['Low'][i - window_size:i].min()
        current_high = data['High'][i]

        # 檢測是否有相對水平的上界和下界,並且目前的高點在上界附近
        if (
            abs(upper_bound - lower_bound) < 0.03 * upper_bound  # 上下界相對水平
            and current_high > (upper_bound - 0.2 * (upper_bound - lower_bound))  # 目前的高點在上界附近
        ):
            return i  # 返回上升三角旗的位置
    return None  # 沒有檢測到上升三角旗

# 檢測上升三角旗型態
ascending_triangle_flag_position = detect_ascending_triangle_flag(data, window_size)

上一篇
投資策略規劃:MACD指標
下一篇
交易模型建立
系列文
嘗試使用Python與Open Data 打造自動化投資30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言