Day Trade หุ้น
วิธีเลือกหุ้น Day Trade Volume Volatility Gap Scanner Momentum Technical Analysis Price Action Risk Management Position Sizing Stop Loss
| Criteria | เกณฑ์ขั้นต่ำ | เกณฑ์ดี | เกณฑ์ดีมาก | วิธีตรวจ |
|---|---|---|---|---|
| Volume | > 1.5x avg | > 3x avg | > 5x avg | Volume / SMA(20) |
| ATR % | > 2% | > 3% | > 5% | ATR(14) / Price |
| Gap % | > 1% | > 3% | > 5% | Open vs Prev Close |
| Spread | < 0.5% | < 0.2% | < 0.1% | Ask - Bid / Mid |
| Float | < 100M shares | < 50M | < 20M | Free float data |
| News | มี Catalyst | งบ/M&A | Breaking news | News feed |
Stock Screening
# === Day Trade Stock Screener ===
from dataclasses import dataclass
import numpy as np
@dataclass
class StockCandidate:
symbol: str
price: float
volume: int
avg_volume: int
atr_pct: float
gap_pct: float
spread_pct: float
catalyst: str
score: int
def screen_stocks(candidates):
results = []
for c in candidates:
score = 0
vol_ratio = c.volume / c.avg_volume
if vol_ratio > 5: score += 3
elif vol_ratio > 3: score += 2
elif vol_ratio > 1.5: score += 1
if c.atr_pct > 5: score += 3
elif c.atr_pct > 3: score += 2
elif c.atr_pct > 2: score += 1
if abs(c.gap_pct) > 5: score += 3
elif abs(c.gap_pct) > 3: score += 2
elif abs(c.gap_pct) > 1: score += 1
if c.spread_pct < 0.1: score += 2
elif c.spread_pct < 0.2: score += 1
if c.catalyst: score += 2
c.score = score
results.append(c)
return sorted(results, key=lambda x: x.score, reverse=True)
candidates = [
StockCandidate("AAA", 25.50, 15000000, 3000000, 4.2, 5.5, 0.08, "Q3 earnings beat", 0),
StockCandidate("BBB", 120.00, 8000000, 2000000, 3.1, 2.8, 0.05, "New product launch", 0),
StockCandidate("CCC", 8.50, 50000000, 10000000, 8.5, -7.2, 0.12, "CEO resignation", 0),
StockCandidate("DDD", 45.00, 5000000, 4000000, 1.8, 0.5, 0.04, "", 0),
StockCandidate("EEE", 180.00, 3000000, 500000, 5.2, 4.1, 0.03, "FDA approval", 0),
]
screened = screen_stocks(candidates)
print("=== Day Trade Candidates (Ranked) ===")
for s in screened:
vol_ratio = s.volume / s.avg_volume
print(f" [{s.symbol}] Score: {s.score}/14 | Price: {s.price}")
print(f" Vol: {vol_ratio:.1f}x avg | ATR: {s.atr_pct}% | Gap: {s.gap_pct:+.1f}%")
print(f" Spread: {s.spread_pct}% | Catalyst: {s.catalyst or 'None'}")
Entry Strategy
# === Day Trade Entry Strategies ===
@dataclass
class EntryStrategy:
name: str
setup: str
entry: str
stop_loss: str
target: str
win_rate: str
risk_reward: str
strategies = [
EntryStrategy("Opening Range Breakout", "First 15 min range (ORB)",
"Break above/below ORB high/low with volume",
"Opposite side of ORB", "1.5-2x ORB range",
"45-55%", "1:2"),
EntryStrategy("Gap and Go", "Gap up > 3% with volume",
"Break above pre-market high",
"Below gap fill level", "Equal to gap size",
"50-60%", "1:1.5"),
EntryStrategy("VWAP Bounce", "Price pulls back to VWAP in uptrend",
"Bullish candle at VWAP + volume",
"Below VWAP", "Previous high or 2x risk",
"55-65%", "1:2"),
EntryStrategy("Red to Green", "Stock opens red, reverses to green",
"Break above previous close with volume",
"Below session low", "Morning high",
"50-55%", "1:2"),
EntryStrategy("Momentum Scalp", "Strong momentum + volume surge",
"Pull back 1-2 candles in 1-min chart",
"Below pullback low", "New high of move",
"45-50%", "1:1.5"),
]
print("=== Entry Strategies ===")
for s in strategies:
print(f" [{s.name}]")
print(f" Setup: {s.setup}")
print(f" Entry: {s.entry}")
print(f" SL: {s.stop_loss} | TP: {s.target}")
print(f" Win: {s.win_rate} | R:R: {s.risk_reward}")
Risk Management
# === Position Sizing and Risk ===
def position_size(account, risk_pct, entry, stop_loss):
risk_amount = account * (risk_pct / 100)
risk_per_share = abs(entry - stop_loss)
if risk_per_share == 0:
return 0
shares = int(risk_amount / risk_per_share)
position_value = shares * entry
return shares, position_value, risk_amount
# Example calculations
account = 100000 # 100,000 THB
risk_pct = 1.0 # 1% risk
trades = [
("AAA", 25.50, 24.80),
("BBB", 120.00, 118.00),
("CCC", 8.50, 8.00),
("EEE", 180.00, 176.00),
]
print("=== Position Sizing (Account: 100,000 THB, Risk: 1%) ===")
for symbol, entry, sl in trades:
shares, value, risk = position_size(account, risk_pct, entry, sl)
pct_of_account = (value / account) * 100
print(f" [{symbol}] Entry: {entry} | SL: {sl}")
print(f" Shares: {shares} | Value: {value:,.0f} THB ({pct_of_account:.0f}% of account)")
print(f" Risk: {risk:,.0f} THB | Risk/Share: {abs(entry-sl):.2f}")
# Daily Rules
rules = {
"Max Risk/Trade": "1% of account (1,000 THB for 100K account)",
"Max Daily Loss": "3% of account (3,000 THB) — stop trading",
"Max Open Positions": "3-5 positions at a time",
"Max Position Size": "25% of account per position",
"Revenge Trade": "ห้าม — หยุด 30 นาทีหลังเสีย",
"News Time": "ไม่เทรด 5 นาทีก่อน/หลังข่าวสำคัญ",
"First 5 min": "ดูเฉยๆ ไม่เทรด ให้ตลาดเซ็ตตัวก่อน",
"Last 30 min": "ปิด Position ทั้งหมดก่อนตลาดปิด",
}
print(f"\n\nDaily Trading Rules:")
for k, v in rules.items():
print(f" [{k}]: {v}")
เคล็ดลับ
- Volume: Volume คือ King ของ Day Trade ไม่มี Volume ไม่เทรด
- Scan: สแกนหุ้นก่อนตลาดเปิดทุกวัน เตรียม Watchlist 5-10 ตัว
- Risk: ไม่เกิน 1% ต่อ Trade ตั้ง Stop Loss ก่อน Entry ทุกครั้ง
- Journal: จดบันทึกทุก Trade วิเคราะห์ทุกสัปดาห์
- Discipline: ทำตามแผน ไม่เทรดอารมณ์ หยุดเมื่อถึง Max Loss
ข้อควรรู้สำหรับนักลงทุนไทย ปี 2026
การลงทุนในสินทรัพย์ดิจิทัลและตลาดการเงินต้องเข้าใจความเสี่ยง สิ่งสำคัญที่สุดคือ การจัดการความเสี่ยง ไม่ลงทุนมากกว่าที่พร้อมจะเสีย กระจายพอร์ตลงทุนในสินทรัพย์หลายประเภท ตั้ง Stop Loss ทุกครั้ง และไม่ใช้ Leverage สูงเกินไป
ในประเทศไทย กลต กำหนดกรอบกฎหมายชัดเจนสำหรับ Digital Assets ผู้ให้บริการต้องได้รับใบอนุญาต นักลงทุนต้องทำ KYC และเสียภาษี 15% จากกำไร แนะนำให้ใช้แพลตฟอร์มที่ได้รับอนุญาตจาก กลต เท่านั้น เช่น Bitkub Satang Pro หรือ Zipmex
สำหรับ Forex ต้องเลือก Broker ที่มี Regulation จากหน่วยงานที่น่าเชื่อถือ เช่น FCA, ASIC, CySEC เริ่มต้นด้วย Demo Account ก่อน เรียนรู้ Technical Analysis และ Fundamental Analysis ให้เข้าใจ และมีแผนการเทรดที่ชัดเจน ไม่เทรดตามอารมณ์
เปรียบเทียบข้อดีและข้อเสีย
จากตารางเปรียบเทียบจะเห็นว่าข้อดีมีมากกว่าข้อเสียอย่างชัดเจน โดยเฉพาะในแง่ของประสิทธิภาพและความสามารถในการ Scale สำหรับข้อเสียส่วนใหญ่สามารถแก้ไขได้ด้วยการเรียนรู้อย่างเป็นระบบและวางแผนทรัพยากรให้เหมาะสม
Day Trade คืออะไร
ซื้อขายภายในวัน ไม่ถือข้ามคืน Volume สูง Spread แคบ Volatility Chart 1 5 15 นาที Technical Analysis Stop Loss Risk 1% Discipline
เลือกหุ้นอย่างไร
Volume 1.5x avg ATR 2% Gap News Catalyst Support Resistance Sector Momentum Spread แคบ Float ต่ำ ผันผวนมาก Scanner TradingView
ใช้ Scanner อะไร
TradingView Screener ฟรี Volume Gap Finviz Pre-market Trade Ideas Real-time Jitta หุ้นไทย Settrade Streaming Alert Volume Spike Break Level
Risk Management ทำอย่างไร
1% ต่อ Trade Stop Loss ก่อน Entry Position Sizing ATR Max Daily Loss 3% หยุด 3-5 ตัว Revenge Trade ห้าม Journal วิเคราะห์ทุกสัปดาห์
สรุป
วิธีเลือกหุ้น Day Trade Volume Volatility Gap Scanner Momentum Entry Strategy ORB VWAP Risk Management Position Sizing Stop Loss Journal Discipline
