Support Resistance
แนวรับแนวต้าน Support Resistance Price Action Swing High Low Trend Line Fibonacci Retracement Breakout Pullback Zone Confluence Trading Strategy
| ประเภท | วิธีหา | ความแข็งแรง | Timeframe | เหมาะกับ |
|---|---|---|---|---|
| Horizontal S/R | Swing High/Low | สูง | ทุก TF | ทั่วไป |
| Trend Line | Higher Lows / Lower Highs | ปานกลาง | H1+ | Trending |
| Fibonacci | Swing High → Low | สูง (Confluence) | H4+ | Retracement |
| Moving Average | EMA 20/50/200 | ปานกลาง | ทุก TF | Dynamic S/R |
| Round Numbers | 1.1000, 1.2000 | ปานกลาง | ทุก TF | Psychological |
Drawing Support Resistance
# === Support & Resistance Analysis ===
# pip install pandas numpy matplotlib
import numpy as np
from dataclasses import dataclass
# Finding Swing Points
# def find_swing_highs(data, window=5):
# highs = []
# for i in range(window, len(data) - window):
# if data['High'][i] == max(data['High'][i-window:i+window+1]):
# highs.append((i, data['High'][i]))
# return highs
#
# def find_swing_lows(data, window=5):
# lows = []
# for i in range(window, len(data) - window):
# if data['Low'][i] == min(data['Low'][i-window:i+window+1]):
# lows.append((i, data['Low'][i]))
# return lows
# Support/Resistance Zone Clustering
# def cluster_levels(levels, tolerance_pct=0.5):
# """Group nearby price levels into zones"""
# if not levels:
# return []
# sorted_levels = sorted(levels)
# zones = []
# current_zone = [sorted_levels[0]]
# for level in sorted_levels[1:]:
# if (level - current_zone[-1]) / current_zone[-1] * 100 < tolerance_pct:
# current_zone.append(level)
# else:
# zones.append({
# 'low': min(current_zone),
# 'high': max(current_zone),
# 'center': np.mean(current_zone),
# 'touches': len(current_zone),
# })
# current_zone = [level]
# zones.append({
# 'low': min(current_zone),
# 'high': max(current_zone),
# 'center': np.mean(current_zone),
# 'touches': len(current_zone),
# })
# return sorted(zones, key=lambda x: x['touches'], reverse=True)
@dataclass
class SRLevel:
level_type: str
price: float
zone_low: float
zone_high: float
touches: int
timeframe: str
strength: str
levels = [
SRLevel("Resistance", 1.0950, 1.0940, 1.0960, 5, "Daily", "Strong"),
SRLevel("Resistance", 1.0880, 1.0870, 1.0890, 3, "H4", "Medium"),
SRLevel("Support", 1.0800, 1.0790, 1.0810, 4, "Daily", "Strong"),
SRLevel("Support", 1.0750, 1.0740, 1.0760, 2, "H4", "Weak"),
SRLevel("Support", 1.0700, 1.0690, 1.0710, 6, "Weekly", "Very Strong"),
]
print("=== EUR/USD Support & Resistance ===")
for l in levels:
print(f" [{l.level_type}] {l.price:.4f} (Zone: {l.zone_low:.4f}-{l.zone_high:.4f})")
print(f" Touches: {l.touches} | TF: {l.timeframe} | Strength: {l.strength}")
Fibonacci Retracement
# === Fibonacci Retracement Calculator ===
def fibonacci_levels(swing_high, swing_low, direction="up"):
"""Calculate Fibonacci retracement levels"""
diff = swing_high - swing_low
fib_ratios = {
"0%": 0.0,
"23.6%": 0.236,
"38.2%": 0.382,
"50%": 0.500,
"61.8%": 0.618,
"78.6%": 0.786,
"100%": 1.000,
}
levels = {}
for name, ratio in fib_ratios.items():
if direction == "up":
levels[name] = swing_high - (diff * ratio)
else:
levels[name] = swing_low + (diff * ratio)
return levels
# EUR/USD Example
swing_high = 1.0950
swing_low = 1.0700
print("=== Fibonacci Retracement (Uptrend) ===")
print(f" Swing High: {swing_high:.4f}")
print(f" Swing Low: {swing_low:.4f}")
print()
fib = fibonacci_levels(swing_high, swing_low, "up")
for name, price in fib.items():
marker = " ← Golden Ratio" if name == "61.8%" else ""
marker = " ← Key Level" if name == "50%" else marker
print(f" {name:>6}: {price:.4f}{marker}")
# Confluence Check
print("\n=== Confluence Analysis ===")
confluences = [
{"fib": "38.2%", "price": 1.0854, "sr": "H4 Resistance 1.0880", "confluence": "Weak"},
{"fib": "50%", "price": 1.0825, "sr": "Daily Support 1.0800", "confluence": "Medium"},
{"fib": "61.8%", "price": 1.0796, "sr": "Daily Support 1.0800", "confluence": "Strong"},
]
for c in confluences:
print(f" Fib {c['fib']} ({c['price']:.4f}) + {c['sr']}")
print(f" Confluence: {c['confluence']}")
Trading Strategy
# === S/R Trading Strategy ===
@dataclass
class TradeSetup:
setup_type: str
entry: str
stop_loss: str
take_profit: str
risk_reward: float
confirmation: str
win_rate: str
setups = [
TradeSetup(
"Bounce Buy (Support)",
"Buy ที่ Support Zone + Bullish Candle",
"ใต้ Support Zone 10-20 pips",
"Resistance ถัดไป",
2.0,
"Bullish Engulfing / Pin Bar / RSI Oversold",
"55-65%"
),
TradeSetup(
"Bounce Sell (Resistance)",
"Sell ที่ Resistance Zone + Bearish Candle",
"เหนือ Resistance Zone 10-20 pips",
"Support ถัดไป",
2.0,
"Bearish Engulfing / Shooting Star / RSI Overbought",
"55-65%"
),
TradeSetup(
"Breakout Buy",
"Buy เมื่อ Close เหนือ Resistance + Volume",
"ใต้ Resistance เดิม (Now Support)",
"Resistance ถัดไป / Measured Move",
2.5,
"Strong Candle Close + Volume Spike",
"45-55%"
),
TradeSetup(
"Retest Buy",
"Buy เมื่อ Pullback มาทดสอบ Broken Resistance",
"ใต้ Retest Level",
"Previous High / Measured Move",
3.0,
"Rejection Candle at Retest Level",
"60-70%"
),
]
print("=== S/R Trading Setups ===")
for s in setups:
print(f" [{s.setup_type}]")
print(f" Entry: {s.entry}")
print(f" SL: {s.stop_loss}")
print(f" TP: {s.take_profit}")
print(f" R:R: 1:{s.risk_reward} | Confirm: {s.confirmation}")
print(f" Win Rate: {s.win_rate}")
print()
# Common Mistakes
mistakes = [
"วาดเส้นเดียวแทนที่จะเป็น Zone",
"ใช้ Timeframe เล็กเกินไป (M1 M5) แนวไม่แข็ง",
"ไม่รอ Confirmation เข้าทันทีที่ถึงแนว",
"วาง Stop Loss แค่ 1-2 pip ใต้แนว โดนกวาดง่าย",
"ไม่สนใจ Trend ใหญ่ สวนเทรนด์",
"วาดแนวมากเกินไป สับสน",
]
print("Common Mistakes:")
for i, m in enumerate(mistakes, 1):
print(f" {i}. {m}")
เคล็ดลับ
- Zone: ใช้ Zone ไม่ใช่เส้นเดียว ราคาไม่เด้งที่จุดเดียว
- Multi-TF: ดู Timeframe ใหญ่ก่อน แนวจาก Weekly แข็งสุด
- Confluence: Fibonacci + S/R + EMA ตรงกัน = สัญญาณแข็ง
- Confirmation: รอ Candlestick Pattern ยืนยันก่อนเข้า
- Simple: วาดแค่ 3-5 แนวสำคัญ ไม่วาดมากจนสับสน
การนำความรู้ไปประยุกต์ใช้งานจริง
แหล่งเรียนรู้ที่แนะนำ ได้แก่ Official Documentation ที่อัพเดทล่าสุดเสมอ Online Course จาก Coursera Udemy edX ช่อง YouTube คุณภาพทั้งไทยและอังกฤษ และ Community อย่าง Discord Reddit Stack Overflow ที่ช่วยแลกเปลี่ยนประสบการณ์กับนักพัฒนาทั่วโลก
เปรียบเทียบข้อดีและข้อเสีย
จากตารางเปรียบเทียบจะเห็นว่าข้อดีมีมากกว่าข้อเสียอย่างชัดเจน โดยเฉพาะในแง่ของประสิทธิภาพและความสามารถในการ Scale สำหรับข้อเสียส่วนใหญ่สามารถแก้ไขได้ด้วยการเรียนรู้อย่างเป็นระบบและวางแผนทรัพยากรให้เหมาะสม
แนวรับแนวต้านคืออะไร
Support ราคาเด้งขึ้น แรงซื้อ Resistance ราคาเด้งลง แรงขาย Supply Demand Swing High Low Volume Role Reversal ทะลุสลับบทบาท
วาดเส้นแนวรับแนวต้านอย่างไร
Swing High Low เส้นแนวนอน เด้งหลายครั้งแข็งแรง Zone แทนเส้นเดียว Timeframe ใหญ่ก่อน Weekly Daily H4 แข็งกว่า
Fibonacci Retracement ใช้อย่างไร
Swing High Low 23.6% 38.2% 50% 61.8% 78.6% Golden Ratio Confluence ตรงกับ S/R แข็งมาก Trend เท่านั้น ไม่ Sideways
เทรดด้วยแนวรับแนวต้านอย่างไร
Buy Support SL ใต้ TP Resistance Sell Resistance SL เหนือ TP Support Breakout Volume Pullback Retest Confirmation Candlestick
สรุป
แนวรับแนวต้าน Support Resistance Price Action Swing Fibonacci Retracement Confluence Zone Breakout Pullback Retest Trading Strategy Confirmation
