import React, { useState, useEffect, useRef } from 'react'; import { Shield, TrendingUp, AlertTriangle, XCircle, Activity, CheckCircle, BookOpen, Target, Brain, Lock, MousePointer, Clock } from 'lucide-react'; // --- Components --- const Section = ({ title, children, icon: Icon, className = "" }) => (
{Icon && }

{title}

{children}
); const Badge = ({ type, children }) => { const colors = { green: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20", yellow: "bg-yellow-500/10 text-yellow-400 border-yellow-500/20", red: "bg-rose-500/10 text-rose-400 border-rose-500/20", blue: "bg-blue-500/10 text-blue-400 border-blue-500/20", }; return ( {children} ); }; // --- Chart Visualizer Component --- const ChartSimulator = () => { const [dayType, setDayType] = useState('green'); const [animate, setAnimate] = useState(false); useEffect(() => { setAnimate(true); const timer = setTimeout(() => setAnimate(false), 1000); return () => clearTimeout(timer); }, [dayType]); const chartConfig = { green: { title: "NGÀY CÓ SETUP (GREEN DAY)", desc: "Daily Bias rõ ràng + Quét thanh khoản + MSS + FVG.", action: "ACTION: Trade tập trung, tự tin.", path: "M 10,80 L 30,20 L 50,50 L 90,10", // Impulse, Retrace, Expansion points: [ { x: 30, y: 20, label: "Sweep", color: "text-rose-400" }, { x: 50, y: 50, label: "Entry (FVG)", color: "text-emerald-400" }, { x: 90, y: 10, label: "TP", color: "text-blue-400" } ], color: "stroke-emerald-500" }, yellow: { title: "NGÀY MƠ HỒ (YELLOW DAY)", desc: "Giá chạy lắt nhắt, Bias không rõ, range nhỏ.", action: "ACTION: NGHỈ. Đừng cố tìm lệnh.", path: "M 10,50 L 20,60 L 30,40 L 40,55 L 50,45 L 60,55 L 70,40 L 80,50 L 90,45", // Choppy points: [ { x: 50, y: 45, label: "Nhiễu", color: "text-yellow-400" } ], color: "stroke-yellow-500" }, red: { title: "NGÀY KHÔNG TRADE (RED DAY)", desc: "Tin mạnh (CPI, NFP), Range quá chặt hoặc đã quét 2 đầu.", action: "ACTION: Tắt máy. Bảo toàn vốn.", path: "M 10,50 L 90,50", // Flat or crazy spike usually visualized as flat for 'no entry' or vertical points: [ { x: 50, y: 50, label: "NO ENTRY", color: "text-rose-500" } ], color: "stroke-rose-500" } }; const currentConfig = chartConfig[dayType]; return (
{/* SVG Chart */} {/* Grid lines */} {/* Main Price Line */} {/* Points of Interest */} {currentConfig.points.map((p, i) => ( {p.label} ))} {dayType === 'red' && (
Stay Out
)}

{currentConfig.title}

{currentConfig.desc}

{currentConfig.action}
); }; // --- Checkbox Item --- const ChecklistItem = ({ text }) => { const [checked, setChecked] = useState(false); return (
setChecked(!checked)} className={`flex items-start gap-3 p-3 rounded-lg cursor-pointer transition-all duration-200 border ${ checked ? 'bg-emerald-900/20 border-emerald-500/50' : 'bg-gray-800/50 border-gray-700 hover:border-gray-500' }`} >
{checked && }
{text}
); }; // --- Main App Component --- const App = () => { const [activeTab, setActiveTab] = useState(0); // Background Grid CSS const gridStyle = { backgroundImage: `radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.05) 1px, transparent 0)`, backgroundSize: '24px 24px' }; return (
{/* Header */}
8

ICT TRADING | Bài 8: Tâm Lý & Kỷ Luật

GIAI ĐOẠN 1: HIỂU BẢN CHẤT
{/* Main Content */}
{/* Hero Section */}

KIẾN THỨC CÓ THỂ HỌC NHANH
KỶ LUẬT THÌ KHÔNG

Bài quyết định bạn có đi tiếp được với ICT hay không. Biết khi nào KHÔNG ĐƯỢC TRADE quan trọng hơn biết cách vào lệnh.

{/* Section 1: Sự thật khó nuốt */}
Tại sao bạn thua?
  • ❌ Không phải vì thiếu kiến thức.
  • ❌ Vì KHÔNG LÀM ĐÚNG điều đã biết.
ICT Trader
  • 📌 Không thua vì sai setup.
  • 📌 Thua khi phá vỡ kỷ luật.
{/* Section 2: Visualizer 3 Loại ngày */}

Để sống sót, bạn phải nhận diện được thị trường đang ở trạng thái nào. Hãy bấm vào các nút bên dưới để xem mô phỏng.

Lưu ý: 90% lệnh thua lỗ ("ngu ngốc") thường xảy ra vào Ngày Mơ Hồ.

{/* Section 3: FOMO */}
{/* Abstract Visualization of FOMO */}

Tâm lý FOMO

Thấy giá chạy mạnh → Sợ lỡ tàu
Nghĩ "Chắc nó đi luôn"

Tư duy ICT

{`if (price_retrace == false) {`}

{`return "KHÔNG DÀNH CHO BẠN";`}

{`}`}

{`enter_trade(OTE_FVG);`}

ICT chỉ vào lệnh khi giá QUAY LẠI (Retracement).

{/* Section 4 & 5: Quy tắc & Tư duy */}
01

1 Bias/Ngày

Bias SELL thì không BUY. Đổi view giữa ngày là cảm xúc.

02

Max 2 Lệnh

Thua 1 dừng, thua 2 tắt máy. Tuyệt đối không gỡ.

03

Không Rảnh

Không trade vì chán, vì muốn giết thời gian.

Tại sao dám bỏ kèo?

Cơ hội vô hạn - Vốn hữu hạn.
Không có kèo = Không mất tiền.

0 Loss Better than loss
{/* Section 6: Kỹ năng "Không Trade" */}

Bạn có chịu nổi 3-5 ngày không bấm nút?

Trader ICT chuyên nghiệp ngồi nhìn chart hàng giờ. Nếu không có setup đúng sách giáo khoa, họ đóng máy và không cảm thấy khó chịu.

Kiên nhẫn Quan sát Kỷ luật
{/* Section 7 & 8: Nhật ký & Bài tập */}

Nhật ký tâm lý (3 dòng)

1. Hôm nay tôi có tuân thủ Bias không?

2. Tôi vào lệnh vì Setup hay vì Cảm xúc?

3. Nếu thua - Tôi có làm đúng hệ thống không?

Checklist hoàn thành Giai đoạn 1

{/* Footer Quote */}

Kết thúc giai đoạn 1

"Trader thua hỏi: Tại sao tôi thua?
Trader ICT hỏi: Tôi có làm đúng hệ thống không?"
© ICT Trading Methodology Lesson 8: Psychology
{/* Floating Action Button (Optional Context) */}
Market is always right
); }; export default App;