Quay lại danh sách bài viết

Các Mô Hình Nến Phổ Biến

30 tháng 11, 2025
admin
Các Mô Hình Nến Phổ Biến
# Các Mô Hình Nến Phổ Biến Trong bài viết này, chúng ta sẽ tìm hiểu về các mô hình nến phổ biến được sử dụng trong phân tích kỹ thuật. ![Mô hình nến phổ biến](/img/blog/candlestick_patterns.svg) ## Mô Hình Đơn ### 1. Doji ```python class DojiPattern: def __init__(self, body_threshold=0.1): self.body_threshold = body_threshold def identify(self, df): # Tính toán thân nến body = abs(df['close'] - df['open']) total_range = df['high'] - df['low'] # Xác định Doji doji = (body / total_range) < self.body_threshold return doji ``` ### 2. Hammer ```python class HammerPattern: def __init__(self, body_threshold=0.3, shadow_threshold=2.0): self.body_threshold = body_threshold self.shadow_threshold = shadow_threshold def identify(self, df): # Tính toán các thành phần body = abs(df['close'] - df['open']) upper_shadow = df['high'] - df[['open', 'close']].max(axis=1) lower_shadow = df[['open', 'close']].min(axis=1) - df['low'] total_range = df['high'] - df['low'] # Xác định Hammer hammer = ( (body / total_range) < self.body_threshold & (lower_shadow / body) > self.shadow_threshold & (upper_shadow / body) < 0.1 ) return hammer ``` ## Mô Hình Đôi ### 1. Engulfing Pattern ```python class EngulfingPattern: def identify(self, df): # Xác định mô hình Engulfing bullish_engulfing = ( (df['close'].shift(1) < df['open'].shift(1)) & # Nến trước là nến giảm (df['close'] > df['open']) & # Nến hiện tại là nến tăng (df['open'] < df['close'].shift(1)) & # Mở cửa thấp hơn đóng cửa nến trước (df['close'] > df['open'].shift(1)) # Đóng cửa cao hơn mở cửa nến trước ) bearish_engulfing = ( (df['close'].shift(1) > df['open'].shift(1)) & # Nến trước là nến tăng (df['close'] < df['open']) & # Nến hiện tại là nến giảm (df['open'] > df['close'].shift(1)) & # Mở cửa cao hơn đóng cửa nến trước (df['close'] < df['open'].shift(1)) # Đóng cửa thấp hơn mở cửa nến trước ) return pd.DataFrame({ 'Bullish_Engulfing': bullish_engulfing, 'Bearish_Engulfing': bearish_engulfing }) ``` ### 2. Harami Pattern ```python class HaramiPattern: def identify(self, df): # Xác định mô hình Harami bullish_harami = ( (df['close'].shift(1) < df['open'].shift(1)) & # Nến trước là nến giảm (df['close'] > df['open']) & # Nến hiện tại là nến tăng (df['open'] > df['close'].shift(1)) & # Mở cửa cao hơn đóng cửa nến trước (df['close'] < df['open'].shift(1)) # Đóng cửa thấp hơn mở cửa nến trước ) bearish_harami = ( (df['close'].shift(1) > df['open'].shift(1)) & # Nến trước là nến tăng (df['close'] < df['open']) & # Nến hiện tại là nến giảm (df['open'] < df['close'].shift(1)) & # Mở cửa thấp hơn đóng cửa nến trước (df['close'] > df['open'].shift(1)) # Đóng cửa cao hơn mở cửa nến trước ) return pd.DataFrame({ 'Bullish_Harami': bullish_harami, 'Bearish_Harami': bearish_harami }) ``` ## Mô Hình Ba ### 1. Morning Star ```python class MorningStarPattern: def identify(self, df): # Xác định mô hình Morning Star morning_star = ( (df['close'].shift(2) < df['open'].shift(2)) & # Nến đầu tiên là nến giảm (abs(df['close'].shift(1) - df['open'].shift(1)) < 0.1 * (df['high'].shift(1) - df['low'].shift(1))) & # Nến thứ hai là Doji (df['close'] > df['open']) & # Nến thứ ba là nến tăng (df['close'] > (df['open'].shift(2) + df['close'].shift(2)) / 2) # Đóng cửa nến thứ ba vượt qua điểm giữa nến đầu tiên ) return morning_star ``` ### 2. Evening Star ```python class EveningStarPattern: def identify(self, df): # Xác định mô hình Evening Star evening_star = ( (df['close'].shift(2) > df['open'].shift(2)) & # Nến đầu tiên là nến tăng (abs(df['close'].shift(1) - df['open'].shift(1)) < 0.1 * (df['high'].shift(1) - df['low'].shift(1))) & # Nến thứ hai là Doji (df['close'] < df['open']) & # Nến thứ ba là nến giảm (df['close'] < (df['open'].shift(2) + df['close'].shift(2)) / 2) # Đóng cửa nến thứ ba dưới điểm giữa nến đầu tiên ) return evening_star ``` ## Mô Hình Phức Tạp ### 1. Head and Shoulders ```python class HeadAndShouldersPattern: def __init__(self, window=20, threshold=0.02): self.window = window self.threshold = threshold def identify(self, df): # Tìm các đỉnh peaks = df['high'].rolling(window=self.window, center=True).max() # Xác định mô hình Head and Shoulders left_shoulder = peaks.shift(2) head = peaks.shift(1) right_shoulder = peaks # Kiểm tra điều kiện pattern = ( (abs(left_shoulder - right_shoulder) / left_shoulder < self.threshold) & # Hai vai cân đối (head > left_shoulder) & # Đỉnh đầu cao hơn vai (head > right_shoulder) # Đỉnh đầu cao hơn vai ) return pattern ``` ### 2. Double Top/Bottom ```python class DoubleTopBottomPattern: def __init__(self, window=20, threshold=0.02): self.window = window self.threshold = threshold def identify(self, df): # Tìm các đỉnh và đáy peaks = df['high'].rolling(window=self.window, center=True).max() troughs = df['low'].rolling(window=self.window, center=True).min() # Xác định mô hình Double Top double_top = ( (abs(peaks.shift(1) - peaks) / peaks.shift(1) < self.threshold) & # Hai đỉnh gần bằng nhau (df['close'] < peaks.shift(1)) # Giá đóng cửa dưới đỉnh ) # Xác định mô hình Double Bottom double_bottom = ( (abs(troughs.shift(1) - troughs) / troughs.shift(1) < self.threshold) & # Hai đáy gần bằng nhau (df['close'] > troughs.shift(1)) # Giá đóng cửa trên đáy ) return pd.DataFrame({ 'Double_Top': double_top, 'Double_Bottom': double_bottom }) ``` ## Best Practices 1. Kết hợp với các chỉ báo kỹ thuật 2. Xác nhận tín hiệu với khối lượng 3. Đặt mức cắt lỗ phù hợp 4. Xem xét bối cảnh thị trường 5. Tránh giao dịch quá nhiều mô hình ## Kết luận Các mô hình nến là công cụ quan trọng trong phân tích kỹ thuật. Tuy nhiên, cần kết hợp chúng với các phương pháp phân tích khác và quản lý rủi ro tốt để đạt hiệu quả trong giao dịch.
technical-analysis
candlestick-patterns
trading
Chia sẻ:

Bài viết liên quan

Chiến lược giao dịch theo xu hướng

Chiến lược giao dịch theo xu hướng ![Chiến lược giao dịch theo xu hướng](/img/blog/trading_strategies.svg) Giới thiệu Giao dịch theo xu hướn...

Phân Tích Rủi Ro và Lợi Nhuận Danh Mục Đầu Tư (Portfolio)

Phân Tích Rủi Ro và Lợi Nhuận Danh Mục Đầu Tư (Portfolio) <div className="search-container"> <input type="text" placeholder="Tìm kiếm ...

Tâm lý thị trường trong giao dịch

Tâm lý thị trường trong giao dịch ![Chiến lược giao dịch dựa trên phân tích tâm lý thị trường](/img/blog/market_psychology.svg) Giới thiệu về t...