import React, { useState, useEffect } from 'react';
import {
Shield,
Target,
TrendingUp,
AlertTriangle,
CheckSquare,
Calculator,
BookOpen,
Lock,
ArrowRight,
TrendingDown,
Activity,
XCircle,
CheckCircle2
} from 'lucide-react';
// --- Colors & Theme Constants ---
const THEME = {
bg: 'bg-slate-950',
card: 'bg-slate-900',
text: 'text-slate-300',
heading: 'text-white',
accent: 'text-emerald-400',
danger: 'text-rose-400',
border: 'border-slate-800',
highlight: 'bg-slate-800'
};
// --- Components ---
// 1. Interactive RR Simulator
const RRSimulator = () => {
const [winRate, setWinRate] = useState(35);
const [rrRatio, setRrRatio] = useState(3);
const totalTrades = 10;
const wins = Math.round((winRate / 100) * totalTrades);
const losses = totalTrades - wins;
const netResult = (wins * rrRatio) - (losses * 1);
return (
Mô phỏng Sức mạnh Toán học
0 ? 'text-emerald-400' : 'text-rose-500'}`}>
{netResult > 0 ? '+' : ''}{netResult.toFixed(1)}R
Lợi nhuận ròng (Net Profit)
{netResult > 0
? "Bạn có LÃI dù thua nhiều hơn thắng!"
: "Bạn đang LỖ. Hãy tăng RR hoặc Winrate."}
);
};
// 2. SVG Visualizer for Setup
const SetupVisualizer = () => {
return (
Mô hình Buy Setup chuẩn ICT
{/* Grid */}
{/* Liquidity High */}
Liquidity / TP (Đỉnh cũ)
{/* Order Block Zone */}
Bullish OB
{/* Price Action Path */}
{/* Entry Point */}
Entry tại OB
{/* Stop Loss Line */}
SL dưới OB
SL Dưới OB ("Vùng Bảo Vệ")
Entry Chạm mép OB/FVG
TP Tại Thanh khoản (Liquidity)
);
};
// 3. Checklist Component
const Checklist = () => {
const items = [
"SL đã nằm sau vùng OB/FVG chưa?",
"TP có phải là vùng Liquidity (Đỉnh/Đáy cũ) không?",
"Tỷ lệ RR có đạt ≥ 1:3 không?",
"Rủi ro lệnh này có ≤ 1-2% tài khoản không?",
"Nếu lệnh này thua, tâm lý mình có bình thản không?"
];
const [checkedState, setCheckedState] = useState(new Array(items.length).fill(false));
const handleOnChange = (position) => {
const updated = checkedState.map((item, index) => index === position ? !item : item);
setCheckedState(updated);
};
const allChecked = checkedState.every(Boolean);
return (
Checklist Trước Khi Vào Lệnh
{items.map((item, index) => (
handleOnChange(index)}
>
{checkedState[index] && }
{item}
))}
{allChecked && (
✅ Đủ điều kiện! Bạn có thể cân nhắc vào lệnh.
)}
);
};
// --- Main Application ---
export default function ICTLesson7App() {
const [activeTab, setActiveTab] = useState('mindset');
const content = {
mindset: {
title: "1. Tư Duy & Sự Thật",
icon: ,
component: (
Sự thật khó chấp nhận
❌ Trader giỏi không phải là người ít thua.
✅ Trader giỏi là người thua nhỏ – thắng lớn .
Mục tiêu ICT
Thua không đau (Quản lý vốn)
Thắng đúng chỗ (Thanh khoản)
Không cần Winrate cao
Quy tắc vàng
Nhiệm vụ của trader không phải là THẮNG. Nhiệm vụ là SỐNG SÓT đủ lâu để lợi thế phát huy.
)
},
sltp: {
title: "2. SL & TP Logic",
icon: ,
component: (
Stop Loss (Cắt lỗ)
Quy tắc sống còn: SL phải đặt ở nơi mà nếu giá chạm vào → Ý tưởng ICT SAI.
Vị trí: Phía SAU vùng Smart Money (Sau OB / FVG).
👉 Sai là sai nhanh. Đúng là chạy rất xa.
Take Profit (Chốt lời)
Luôn nhắm tới Thanh khoản (Liquidity): Đỉnh cũ, đáy cũ, Equal Highs/Lows.
Chia nhỏ TP: TP1 (30-50%) để giảm áp lực, TP2 tại Liquidity chính, TP3 thả trôi (Runner).
)
},
math: {
title: "3. Bài toán Risk:Reward",
icon: ,
component: (
Trái tim của hệ thống
ICT không sống bằng cảm xúc, ICT sống bằng toán học. Hãy xem tại sao Winrate 35% vẫn giúp bạn giàu có.
Quy tắc RR
RR tối thiểu phải là 1:3 . Nếu setup cho RR 1:1 hoặc 1:2, hãy bỏ qua. "No trade is a position."
)
},
management: {
title: "4. Quản lý Vốn & Lỗi sai",
icon: ,
component: (
{/* Rules */}
Luật Bất Khả Xâm Phạm
Risk mỗi lệnh
1% - 2% MAX
Risk người mới
0.5% - 1%
Số lệnh / ngày
1 - 2 lệnh
{/* Mistakes */}
5 Lỗi "Cháy TK" Phổ Biến
Tăng lot sau lệnh thắng (tự tin thái quá).
Gấp lệnh (Martingale) để gỡ lỗ.
Dời SL ra xa khi giá chạy sai.
Chốt non (TP sớm) vì sợ mất lãi.
Không ghi nhật ký giao dịch.
Quản lý lệnh đang chạy (Active Trade)
ĐƯỢC dời SL (Về Entry):
Chỉ khi giá đã đạt TP1 hoặc tạo cấu trúc tăng/giảm mới rõ ràng.
KHÔNG dời SL:
Khi giá mới chạy được chút ít. Dời sớm = Bóp chết Trade.
)
},
practice: {
title: "5. Thực hành",
icon: ,
component: (
Trước khi vào bất kỳ lệnh nào, hãy hít thở sâu và đi qua checklist này. Nếu có 1 câu trả lời "Không", hãy tắt máy.
Bài tập 7 Ngày Kỷ Luật
Mỗi ngày tìm 1 setup (Quá khứ hoặc Realtime). Ghi lại Entry, SL, TP, RR. Không cần vào lệnh thật.
Tải mẫu Nhật ký Trading
)
}
};
return (
{/* Header */}
ICT MENTORSHIP | BÀI 7
RISK MANAGEMENT MODULE
{/* Main Content */}
{/* Intro Hero */}
STOP LOSS · TAKE PROFIT · RISK MANAGEMENT
Biến ICT từ một "setup đẹp" thành một "hệ thống kiếm sống".
{/* Navigation Tabs */}
{Object.keys(content).map((key) => (
setActiveTab(key)}
className={`flex items-center px-4 py-2 rounded-full text-sm font-medium transition-all duration-300
${activeTab === key
? 'bg-emerald-600 text-white shadow-lg shadow-emerald-900/50'
: 'bg-slate-900 text-slate-400 hover:bg-slate-800 hover:text-white border border-slate-800'
}`}
>
{content[key].icon}
{content[key].title}
))}
{/* Dynamic Content Area */}
{content[activeTab].component}
{/* Footer */}
);
}