import React, { useState, useEffect } from 'react';
import {
TrendingUp,
TrendingDown,
Target,
AlertTriangle,
CheckCircle,
BookOpen,
BarChart2,
Eye,
ArrowRight,
RefreshCw,
ShieldAlert
} from 'lucide-react';
// --- COMPONENTS ---
// 1. Header Section
const Header = () => (
ICT MENTORSHIP
Bài 5: Daily Bias - Định Hướng Giao Dịch
LIVE LEARNING
);
// 2. Interactive Concept Card
const ConceptCard = ({ title, icon: Icon, color, children }) => (
);
// 3. The Visualizer (Simulator)
const ICTVisualizer = () => {
const [scenario, setScenario] = useState('sell'); // 'sell' | 'buy' | 'range'
const [animationStep, setAnimationStep] = useState(0);
// Animation loop simulation
useEffect(() => {
const timer = setInterval(() => {
setAnimationStep((prev) => (prev + 1) % 4);
}, 1500);
return () => clearInterval(timer);
}, []);
// SVG Paths definitions based on scenario
const getPath = () => {
if (scenario === 'sell') {
// Moves up to premium, grabs liquidity, breaks down
return "M 10,250 C 50,200 80,150 100,100 L 150,50 L 200,80 L 250,20 L 300,120 L 350,280";
}
if (scenario === 'buy') {
// Moves down to discount, grabs liquidity, breaks up
return "M 10,50 C 50,100 80,150 100,200 L 150,250 L 200,220 L 250,280 L 300,180 L 350,20";
}
// No Trade / Range
return "M 10,150 C 50,120 100,180 150,150 C 200,120 250,180 300,150 C 350,120 380,150 400,150";
};
return (
Mô Phỏng Price Action
setScenario('sell')}
className={`px-3 py-1 rounded text-xs font-bold transition-colors ${scenario === 'sell' ? 'bg-red-500/20 text-red-400 border border-red-500' : 'bg-slate-800 text-slate-400'}`}
>
SELL BIAS
setScenario('buy')}
className={`px-3 py-1 rounded text-xs font-bold transition-colors ${scenario === 'buy' ? 'bg-emerald-500/20 text-emerald-400 border border-emerald-500' : 'bg-slate-800 text-slate-400'}`}
>
BUY BIAS
setScenario('range')}
className={`px-3 py-1 rounded text-xs font-bold transition-colors ${scenario === 'range' ? 'bg-yellow-500/20 text-yellow-400 border border-yellow-500' : 'bg-slate-800 text-slate-400'}`}
>
NO TRADE
{/* Dealing Range Grid */}
{/* Premium Zone */}
Premium (50-100%)
EQ (Equilibrium)
{/* Discount Zone */}
Discount (0-50%)
{/* Liquidity Markers */}
{scenario === 'sell' && (
<>
>
)}
{scenario === 'buy' && (
<>
>
)}
{/* SVG Chart */}
{/* Dynamic Points based on scenario */}
{scenario === 'sell' && (
<>
Sweep & Rejection
>
)}
{scenario === 'buy' && (
<>
Sweep & Rejection
>
)}
Giải thích kịch bản:
{scenario === 'sell' && "Giá đang ở Premium (Vùng bán). Nó đi lên quét thanh khoản Buy-side (các đỉnh cũ), sau đó sập xuống. -> Bias: SELL."}
{scenario === 'buy' && "Giá đang ở Discount (Vùng mua). Nó đi xuống quét thanh khoản Sell-side (các đáy cũ), sau đó bật lên. -> Bias: BUY."}
{scenario === 'range' && "Giá nằm giữa 50% (Equilibrium), cấu trúc không rõ ràng hoặc đã quét 2 đầu. -> Bias: NO TRADE."}
);
};
// 4. Checklist Component
const DailyChecklist = () => {
const [items, setItems] = useState([
{ id: 1, text: "Giá đang ở vùng nào? (Premium/Discount)", checked: false },
{ id: 2, text: "Thanh khoản (Liquidity) bên nào chưa bị lấy?", checked: false },
{ id: 3, text: "Cấu trúc khung lớn (H4/D1) đang ủng hộ xu hướng nào?", checked: false },
{ id: 4, text: "Kết luận Bias: BUY, SELL hay NO TRADE?", checked: false },
]);
const toggleItem = (id) => {
setItems(items.map(i => i.id === id ? { ...i, checked: !i.checked } : i));
};
const allChecked = items.every(i => i.checked);
return (
Checklist Trước Phiên London
{items.map(item => (
toggleItem(item.id)}
className={`flex items-center gap-4 p-4 rounded-lg border cursor-pointer transition-all duration-200 ${item.checked ? 'bg-emerald-900/20 border-emerald-500/50' : 'bg-slate-800 border-slate-700 hover:bg-slate-700'}`}
>
{item.checked && }
{item.text}
))}
{allChecked && (
✨ Bạn đã hoàn thành quy trình Bias! Hãy kiên nhẫn chờ Setup.
)}
);
};
// --- MAIN APP COMPONENT ---
const ICTDailyBiasLesson = () => {
const [activeTab, setActiveTab] = useState('theory'); // 'theory' | 'practice'
return (
{/* HERO SECTION */}
Daily Bias Chuẩn ICT
Hôm nay bạn là Người Mua (Buyer) , Người Bán (Seller) , hay Khán Giả ?
Trả lời sai câu hỏi này, mọi setup kỹ thuật đều vô nghĩa.
{/* 3 THÀNH PHẦN CHÍNH */}
Xác định Premium (Đắt) và Discount (Rẻ) từ range giá gần nhất.
ICT không bao giờ BUY ở Premium.
ICT không bao giờ SELL ở Discount.
Smart Money luôn săn tìm thanh khoản (Stoploss) ở các đỉnh/đáy cũ.
Buy-side (Đỉnh cũ) vs Sell-side (Đáy cũ)
Bias phải thuận theo dòng chảy lớn.
HH-HL: BUY
LL-LH: SELL
{/* VISUALIZER SECTION */}
Visualizer: Cách Bias Hình Thành
{/* COMMON SCENARIOS */}
{/* Scenario 1 */}
🔴 Kịch bản 1: SELL DAY
Giá nằm trong vùng Premium ({'>'}50%).
Phía trên có Equal Highs (Thanh khoản).
Khung D1 đang giảm hoặc chạm Kháng cự.
{/* Scenario 2 */}
🟢 Kịch bản 2: BUY DAY
Giá nằm trong vùng Discount ({'<'}50%).
Phía dưới có Equal Lows (Thanh khoản).
Khung D1 đang tăng hoặc chạm Hỗ trợ (OB).
{/* Scenario 3 */}
⚪ Kịch bản 3: NO TRADE
"Giá lơ lửng ở giữa range, đã quét cả 2 đầu hoặc tin tức mạnh sắp ra. Ngồi ngoài là một vị thế."
Sai Lầm Chết Người
❌
Thay đổi Bias giữa phiên vì thấy một cây nến M1 chạy mạnh.
❌
Bias là SELL nhưng thấy setup BUY đẹp ở M5 vẫn cố vào (Ngược dòng nước lũ).
{/* HOMEWORK SECTION */}
Bài Tập Bắt Buộc (7 Ngày)
Trong 7 ngày tới, mỗi sáng hãy viết ra một dòng duy nhất vào nhật ký giao dịch của bạn.
"Ngày DD/MM – Bias: BUY/SELL/NO TRADE – Lý do: ..."
Daily Bias là cái "Phép". Không có phép, không được bắn.
© ICT Trading Concepts Visualized
Đừng tin những gì tôi nói, hãy tin vào Backtest của bạn.
);
};
export default ICTDailyBiasLesson;