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 */}
{dayType === 'red' && (
)}
{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) */}
);
};
export default App;