Resistance and Support
Support Resistance แนวรับแนวต้าน Demand Supply Market Psychology Bounce Breakout Retest Fibonacci Moving Average Volume
| Method | How to Find | Strength | Best For |
|---|---|---|---|
| Horizontal Level | Price bounced multiple times | High (3+ touches) | All timeframes |
| Fibonacci | 38.2% 50% 61.8% Retracement | High (Golden Ratio) | Trending market |
| Moving Average | EMA 20 50 200 | Medium-High | Dynamic S/R |
| Pivot Points | Calculate from H L C | Medium | Intraday trading |
| Volume Profile | High Volume Node (POC) | High | All timeframes |
| Trendline | Connect swing highs/lows | Medium | Trending market |
วิธีหา Support Resistance
# === Support & Resistance Identification ===
from dataclasses import dataclass
@dataclass
class SRLevel:
method: str
calculation: str
strength_criteria: str
timeframe: str
example: str
levels = [
SRLevel("Horizontal Level",
"หาจุดที่ราคาเด้งซ้ำ 3+ ครั้ง ลากเส้นแนวนอน",
"3+ Touches = Strong, 5+ = Very Strong",
"Daily/Weekly สำคัญกว่า Intraday",
"BTC $60K Support: เด้ง 4 ครั้ง → Very Strong"),
SRLevel("Fibonacci Retracement",
"วัดจาก Swing Low → Swing High (Uptrend) หรือ High → Low (Downtrend)",
"61.8% (Golden) > 50% > 38.2%",
"ใช้ได้ทุก Timeframe ใน Trending Market",
"Stock ขึ้น 100→200, Fib 61.8% = 138.2 เป็น Strong Support"),
SRLevel("EMA (Exponential Moving Average)",
"EMA 20 (Short) EMA 50 (Medium) EMA 200 (Long-term)",
"EMA 200 Daily แข็งสุด, EMA 20 สำหรับ Short-term",
"Daily สำหรับ EMA 200, 4H สำหรับ EMA 20",
"S&P 500 เด้งจาก EMA 200 ใน Bull Market"),
SRLevel("Pivot Points",
"P=(H+L+C)/3, R1=2P-L, S1=2P-H, R2=P+(H-L), S2=P-(H-L)",
"Pivot Point เอง แข็งที่สุด R1/S1 รองลงมา",
"Daily Pivot สำหรับ Intraday",
"Pivot 1850, R1 1870, S1 1830 → Range 1830-1870"),
SRLevel("Volume Profile",
"Point of Control (POC) = ราคาที่มี Volume สูงสุด",
"High Volume Node = Strong, Low Volume = Gap",
"ใช้ได้ทุก Timeframe",
"POC ที่ 1900 Volume 50M shares → Strong S/R"),
]
print("=== S/R Identification Methods ===")
for l in levels:
print(f"\n [{l.method}]")
print(f" Calc: {l.calculation}")
print(f" Strength: {l.strength_criteria}")
print(f" TF: {l.timeframe}")
print(f" Ex: {l.example}")
Trading Strategies
# === Trading Strategies with S/R ===
@dataclass
class Strategy:
name: str
entry: str
stop_loss: str
take_profit: str
confirmation: str
risk_reward: str
strategies = [
Strategy("Bounce (Buy at Support)",
"Buy เมื่อราคาถึง Support + Bullish Candle",
"ใต้ Support Zone 1-2%",
"Resistance ถัดไป หรือ R:R 1:2",
"Hammer, Bullish Engulfing, Morning Star + Volume เพิ่ม",
"1:2 ขึ้นไป"),
Strategy("Bounce (Sell at Resistance)",
"Sell เมื่อราคาถึง Resistance + Bearish Candle",
"เหนือ Resistance Zone 1-2%",
"Support ถัดไป หรือ R:R 1:2",
"Shooting Star, Bearish Engulfing, Evening Star",
"1:2 ขึ้นไป"),
Strategy("Breakout (Long)",
"Buy เมื่อราคาปิดเหนือ Resistance + Volume > Average",
"ใต้ Resistance ที่ทะลุ (ตอนนี้เป็น Support)",
"ระยะทาง = Range ก่อน Breakout",
"Volume > 1.5x Average, Strong Candle Close",
"1:1.5-2"),
Strategy("Retest (Most Reliable)",
"Buy เมื่อราคา Pullback มาทดสอบ Level ที่ทะลุ",
"ใต้ Level ที่ทดสอบ",
"Resistance ถัดไป",
"Bullish Rejection Candle at Retest Level",
"1:2-3 (ดีที่สุด)"),
Strategy("Range Trading",
"Buy Support → Sell Resistance ในตลาด Sideways",
"ใต้ Support / เหนือ Resistance",
"Level ตรงข้าม",
"Oscillator RSI Stochastic Overbought/Oversold",
"1:1.5-2"),
]
print("=== Trading Strategies ===")
for s in strategies:
print(f"\n [{s.name}]")
print(f" Entry: {s.entry}")
print(f" SL: {s.stop_loss}")
print(f" TP: {s.take_profit}")
print(f" Confirm: {s.confirmation}")
print(f" R:R: {s.risk_reward}")
Risk Management
# === Risk Management with S/R ===
@dataclass
class RiskRule:
rule: str
description: str
example: str
common_mistake: str
rules = [
RiskRule("Position Sizing",
"Risk ไม่เกิน 1-2% ของ Account ต่อ Trade",
"Account $10,000 → Max Risk $200/trade",
"เสี่ยงมากเกินไป 5-10% ต่อ Trade"),
RiskRule("Stop Loss Placement",
"ตั้ง SL ใต้/เหนือ S/R Zone ไม่ใช่ที่ Level พอดี",
"Support 100 → SL ที่ 98 (ใต้ Zone 2%)",
"ตั้ง SL ที่ Level พอดี ถูก Stop Hunt"),
RiskRule("Risk:Reward Minimum",
"อย่างน้อย 1:2 ถ้า Win Rate 50% ยังกำไร",
"Risk $200 → TP อย่างน้อย $400",
"เทรด R:R 1:1 หรือแย่กว่า ขาดทุนระยะยาว"),
RiskRule("Confluence Check",
"เข้าเทรดเมื่อ 2-3 เครื่องมือชี้ที่เดียวกัน",
"Horizontal + Fib 61.8% + EMA 200 = Very Strong",
"เทรดจาก S/R Level เดียว ไม่ Confirm"),
RiskRule("Higher TF First",
"ดู Weekly → Daily → 4H → 1H Top-down",
"Weekly Resistance อยู่เหนือ → อย่า Long ใน 1H",
"ดูแค่ Timeframe เล็ก ไม่เห็นภาพใหญ่"),
]
print("=== Risk Rules ===")
for r in rules:
print(f" [{r.rule}] {r.description}")
print(f" Example: {r.example}")
print(f" Mistake: {r.common_mistake}")
เคล็ดลับ
- Zone: S/R เป็น Zone ไม่ใช่เส้นตรง วาดกว้าง 0.5-2%
- Volume: Breakout ต้องมี Volume ยืนยัน ไม่งั้นเป็น Fakeout
- Confluence: 2-3 เครื่องมือชี้ที่เดียวกัน = Strong Level
- Top-down: ดู Timeframe ใหญ่ก่อนเสมอ Weekly → Daily → 4H
- R:R: อย่างน้อย 1:2 ทุก Trade ถ้าไม่ได้ ไม่เทรด
การนำความรู้ไปประยุกต์ใช้งานจริง
แหล่งเรียนรู้ที่แนะนำ ได้แก่ Official Documentation ที่อัพเดทล่าสุดเสมอ Online Course จาก Coursera Udemy edX ช่อง YouTube คุณภาพทั้งไทยและอังกฤษ และ Community อย่าง Discord Reddit Stack Overflow ที่ช่วยแลกเปลี่ยนประสบการณ์กับนักพัฒนาทั่วโลก
Resistance and Support คืออะไร
Support Demand หยุดลง Resistance Supply หยุดขึ้น Market Psychology Bounce Role Reversal ทุกตลาด ทุก Timeframe
หา Support Resistance อย่างไร
Horizontal Level Fibonacci 38.2 50 61.8 EMA 20 50 200 Pivot Points Volume Profile POC Round Number Trendline Swing High Low
เทรดอย่างไร
Bounce Buy Support Sell Resistance Breakout Volume Retest Pullback Range Trading Candlestick Confirm Stop Loss R:R 1:2 Confluence
ข้อควรระวังคืออะไร
False Breakout Volume Zone ไม่ใช่เส้น 3-5 Level Higher TF Stop Loss ทุกครั้ง เทรดตาม Trend Position Sizing 1-2%
สรุป
Support Resistance Horizontal Fibonacci EMA Pivot Volume Bounce Breakout Retest Zone Confluence Top-down R:R 1:2 Risk Management
