راهنمای فارسی — از نصب تا استفادهٔ روزمره

این راهنما فرض می‌کند هیچ چیزی از پروژه نمی‌دانی. قدم‌به‌قدم می‌رویم: نصب، اولین اجرا، کار با پنل توضیح، تمیز نگه‌داشتن چارت، رفتار هر تایم‌فریم، کارایی، و اینکه چطور خودت درستی اعداد را بازبینی کنی.

۱. نصب

دو راه داری: فایل کامپایل‌شدهٔ آماده، یا کامپایل خودت از سورس.

راه الف — فایل آماده (ساده‌تر)

۱) از صفحهٔ Release فایل ICT_Assistant_Canonical_v0_1.ex5 را دانلود کن.
۲) آن را در پوشهٔ MQL5\Indicators\ ترمینالت بگذار.
۳) در پنجرهٔ Navigator راست‌کلیک → Refresh.
۴) اندیکاتور را روی چارت بکش.

راه ب — کامپایل از سورس (کنترل کامل)

۱) بستهٔ سورس را از همان Release بگیر (یا مخزن را clone کن).
۲) فایل .mq5 و پوشهٔ modules/ را با هم در MQL5\Indicators\ بگذار — بدنهٔ کد در همان modules/ است (یک فایل برای هر خانوادهٔ استراتژی) و فایل .mq5 فقط آن‌ها را include می‌کند؛ پس این دو باید کنار هم بمانند وگرنه کامپایل خطا می‌دهد.
۳) در متاتریدر F4 بزن تا MetaEditor باز شود و Compile کن.
۴) باید با ۰ خطا و ۰ هشدار بسازد.

مسیر پوشهٔ دادهٔ ترمینال را چطور پیدا کنم؟

در متاتریدر: File → Open Data Folder. پوشهٔ MQL5\Indicators\ داخل همان است.

پیشنهاد: برای اولین بار روی حساب دمو و روی XAUUSD تایم‌فریم M15 امتحان کن. پیش‌فرض‌های اندیکاتور برای طلا تنظیم شده‌اند.

۲. اولین اجرا — چه چیزی باید ببینی

چه چیزیتوضیح
چارت تمیزبرچسب‌های انگلیسی آبجکت‌ها روی چارت مخفی‌اند و داشبورد خاموش است. این عمدی است.
نوار ریسک برگشتیک نوار تک‌خطی گوشهٔ چارت: نزدیک‌ترین سطح، نوع و وضعیتش، فاصله بر حسب ATR، پیشرفت لگ و امتیاز ریسک برگشت. با InpShowRiskStrip کنترل می‌شود.
نواحی و خطوطنواحی FVG، اردربلاک، عرضه/تقاضا و سطوح نقدینگی بر اساس کلیدهای هر خانواده رسم می‌شوند.
پیام Journalدر تب Journal یک خط می‌نویسد که حالت پنل توضیح فعال است و آفست واقعی بروکر را اعلام می‌کند.

اگر بعد از attach چیزی ندیدی، اول مطمئن شو در تب Experts خطایی نیست و چارت به‌اندازهٔ کافی کندل دارد. تحلیل روی کندل بسته انجام می‌شود، پس ممکن است تا بسته‌شدن کندل جاری چیزی اضافه نشود.

۳. پنل توضیح — قلب این ابزار

این اندیکاتور هم رسم می‌کند و هم یاد می‌دهد. آموزش از همین‌جا می‌آید.

دو حالت باز شدن

ورودی InpExplainOpen:
• EXPLAIN_OPEN_CLICK (پیش‌فرض) — روی آبجکت کلیک می‌کنی، پنل باز می‌شود. موس کاملاً آزاد است و هیچ رویداد حرکتی موس فعال نمی‌شود.
• EXPLAIN_OPEN_HOVER — سبک قدیمی: موس را روی آبجکت ببر.

بستن پنل

کلیک بعدی روی همان آبجکت، کلیک روی فضای خالی چارت، یا کلید Esc. یعنی دیدِ چارت هیچ‌وقت برای مدت نامعلوم اشغال نمی‌ماند.

پنل چه چیزی می‌گوید

ماهیت آبجکت · قاعدهٔ دقیقی که آن را ساخت · شرط تأیید · شرط ابطال · و روش بازبینی دستی عدد روی چارت خودت. هر جمله از روی قاعدهٔ کد نوشته شده، نه از روی حدس.

ظاهر پنل

InpShowExplainPanel روشن/خاموش · InpExplainPanelWidth عرض · InpExplainFontSize اندازهٔ قلم · InpExplainFont نام قلم · InpExplainMaxRows سقف تعداد خط.

فارسی چطور درست نمایش داده می‌شود

متاتریدر پشتیبانی بومی راست‌به‌چپ ندارد و متن را چپ‌چین می‌کند. این پروژه یک لایهٔ رندر اختصاصی دارد که خودش ترتیب حروف را می‌چیند، اتصال‌ها را حفظ می‌کند و متن بلند را در چند خط می‌شکند — به‌جای اینکه یک خط طولانی از کادر بیرون بزند.

خروجی نوشتاری

با InpWriteExplainCsv می‌توانی همهٔ توضیح‌ها را در یک فایل CSV داشته باشی — برای مطالعه در بیرون از ترمینال.

۴. چارت تمیز بماند، ولی چیزی از دست نرود

اصل طراحی: «ضروری‌ها روشن، تزئینات خاموش» — و خاموش‌کردن رسم، هرگز کشف را متوقف نمی‌کند.

می‌خواهی…این ورودی
سقف نواحی و سطوح رسم‌شده را کم کنیInpMaxDrawnZones · InpMaxDrawnLevels
سقف آبجکت‌های Frozen را تعیین کنیInpMaxFrozenObjects · InpFrozenHistoryEnabled
عمر آبجکت‌های جاروشده را کوتاه کنیInpSweptKeepBars
انقضای کلی رسم را تنظیم کنیInpExpiryKeepBars · InpDeleteExpiredObjects
سقف رجیستری هر لایه را بدانیInpMaxFVG · InpMaxOB · InpMaxLiquidity · InpMaxSwings · InpMaxPOI
داشبورد کامل را ببینی (اختیاری)InpShowDashboard
مهم: انقضا یعنی حذف، نه تلنبار کردن. آبجکتی که باطل شده از چارت و رجیستری کنار می‌رود. سیاست سقف‌ها FIFO است تا تاریخچه وسط سشن بی‌صدا ناپدید نشود. اگر این رفتار را نمی‌خواهی، InpDeleteExpiredObjects را خاموش کن.

۵. هر تایم‌فریم برای خودش

هر چارت رجیستری، رسم و چرخهٔ عمر مستقل خودش را دارد. اگر اندیکاتور را روی M15 و H1 و H4 بگذاری، هیچ‌کدام آبجکت دیگری را بازنویسی نمی‌کند و شمارش‌ها قاطی نمی‌شوند. تایم‌فریم بالاتر به‌عنوان دادهٔ کانتکست خوانده می‌شود (مثلاً برای Bias روی H4)، ولی هرگز چیزی روی چارت جاری رسم نمی‌کند. تایم‌فریم‌های زنجیره با InpTF_Bias تا InpTF_Confirm2 قابل تنظیم‌اند.

یک قاعدهٔ سخت هم وجود دارد: تایم‌فریم‌های پایین می‌توانند ستاپ را تأیید یا رد کنند، ولی هرگز نمی‌توانند Bias تایم‌فریم بالاتر را برگردانند.

۶. کارایی — چرا سرعت چارت نمی‌افتد

یک‌بار در هر کندل بسته

بار سنگین تحلیل روی هر تیک اجرا نمی‌شود. بین بسته‌شدن کندل‌ها فقط یک مسیر سریع برای رندر باقی می‌ماند.

سقف‌دار بودن همهٔ رجیستری‌ها

هیچ آرایه‌ای بدون سقف رشد نمی‌کند؛ هر لایه سقف خودش را دارد و سیاست حذف مشخص است.

کپی سری‌ها فقط وقتی لازم است

سری‌های قیمت و ATR نه در هر تیک، بلکه فقط در کندل تازهٔ بسته یا بازسازی اولیه کپی می‌شوند.

هندل مشترک فایل‌های شاهد

نوشتن ردیف‌های تشخیصی با هندل باز انجام می‌شود، نه باز/بسته‌کردن فایل در هر کندل.

اگر باز هم کند بود، اول لایه‌های سنگین را خاموش کن و سقف‌های رسم را کم کن؛ اگر مشکل باقی ماند در مخزن Issue باز کن و نماد، تایم‌فریم و تعداد کندل‌های چارت را بنویس.

۷. چه چیزی تشخیص داده می‌شود

نُه مکتب در یک ابزار. هر مورد کلید رسم مستقل دارد.

مکتبمفاهیمی که پیاده شده
ICTBOS · CHoCH/MSS · FVG در پنج نوع · اردربلاک با انواع · Breaker · Mitigation · جارو/Judas · BSL/SSL · سقف و کف برابر · Displacement · AMD · Premium/Discount · OTE · PD-Array/POI · Silver Bullet و هم‌سویی HTF-LTF · IPDA و Quarterly Theory
SMCساختار شکست · FVG با Consequent Encroachment · اردربلاک Extreme و Internal/External · Breaker و Mitigation · شکار نقدینگی · نقدینگی خط روند/رنج/سشن · مدل‌های ورود · Mitigation تودرتو
Market Maker Modelانباشت · دستکاری (Sweep/Judas) · توزیع · PD-Array · اردربلاک (Breaker + Mitigation) · نقدینگی BSL/SSL · FVG (BISI/SIBI) · Smart Money Reversal
وایکافانباشت/صعود/توزیع/نزول · Spring و Upthrust · SOS/SOW · LPS/LPSY · SC/BC · AR/ST · PS/PSY · Test و Absorption · تحلیل تلاش در برابر نتیجه · فازهای A تا E
عرضه و تقاضا (کلاسیک)ناحیهٔ عرضه/تقاضا · RBR · DBD · RBD · DBR · تازه در برابر تست‌شده · Flip Zone · Engulfing در نواحی · امتیاز قدرت ناحیه
تئوری بازار حراج / Market ProfilePOC · Value Area با VAH/VAL · HVN · LVN · تعادل/عدم تعادل · Initial Balance · شمارش TPO · پذیرش/رد · انواع باز شدن · انواع روز
پروفایل حجمPOC · Value Area · HVN/LVN · Naked POC · گره‌های حجمی محلی · شکل پروفایل · پروفایل سشن و دامنهٔ مرئی (به‌صورت تقریب تیک‌ولوم)
RTMنواحی عرضه/تقاضا به سبک RTM · Flip Zones · تله‌های ورود · کندل‌های مومنتوم · فشردگی/انبساط · استخرهای نقدینگی · Engulfing و Rejection · هم‌گرایی چند تایم‌فریم · تحویل قیمت
پرایس‌اکشن ال‌بروکسکندل روند · دوجی و بدنه‌های کوچک · کندل سیگنال و ورود · کندل تأیید · Always-In · رنج دوطرفه · شکست و شکست ناموفق · پول‌بک H1–H4 و L1–L4 · Measured Move · ۲۰ EMA · خط روند و کانال · تله و کندل برگشتی

۸. چطور خودت بفهمی محاسبه درست است

  1. پنل توضیح. هر آبجکت روش بازبینی دستی عددش را می‌گوید: کدام کندل‌ها، کدام مرز، و چه شرطی.
  2. ابزارهای اعتبارسنجی. در پوشهٔ tools/ بیست ابزار PowerShell است که قاعده‌ها را قفل می‌کنند. با powershell -File tools/Validate-Phase37.ps1 می‌توانی هرکدام را جدا اجرا کنی.
  3. آزمون رفتاری روی کندل ساختگی. اندیکاتور یک هارنس داخلی دارد (ورودی InpRunBehaviorSelfTest) که ۲۵ سناریو با پاسخ معلوم را روی همان توابع واقعی تشخیص اجرا می‌کند و گزارش را در ICT_Assistant_Canonical_SelfTest.csv می‌نویسد. ابزار Validate-Phase37.ps1 آن گزارش را می‌خواند و اعداد را با یک بازمحاسبهٔ مستقل مقایسه می‌کند.
  4. اثبات اینکه بازآرایی کد منطق را عوض نکرده. منبع اصلی یک فایل ۱۱٬۰۶۸ خطی بود؛ حالا یک فایل .mq5 است که ۳۰ ماژول در modules/ را include می‌کند. با powershell -File tools/Verify-ModuleSplit.ps1 ثابت می‌شود این ۳۰ برش دقیقاً به همان SHA256 فایل قبلی بازمی‌گردند — بایت‌به‌بایت، نه تقریبی.
در آن آزمون، یک سناریو عمداً انتظار غلط دارد. اگر آن ردیف شکست نخورد، یعنی مقایسه کور است و بقیهٔ PASSها بی‌ارزش‌اند. این «دندان» عمدی است تا سبز بودن گزارش به‌تنهایی معنا نداشته باشد.

۹. واژه‌نامهٔ کوتاه

واژهیعنی چه
FVG — Fair Value Gapگپ سه‌کندلی که یک سمت بازار سریع حرکت کرده و ناکارآمدی جا گذاشته است.
BISI / SIBIنام‌گذاری ICT برای FVG صعودی / نزولی.
CE — Consequent Encroachmentمیانهٔ گپ؛ «خط تصمیم». لمس میانه با لمس لبه فرق دارد.
OB — Order Blockآخرین کندل مخالف پیش از یک حرکت قوی؛ ناحیهٔ ورود سفارش‌گذار بزرگ.
BOSشکست ساختار در جهت روند موجود.
CHoCH / MSSتغییر کاراکتر بازار؛ اولین نشانهٔ چرخش ساختار.
Displacementکندل پرقدرت با بدنهٔ بزرگ که ناکارآمدی می‌سازد.
Sweep / Judasفتیله فراتر از یک سطح نقدینگی با بستهٔ برگشتی داخل. اگر بسته بیرون بیفتد، شکست است نه جارو.
BSL / SSLنقدینگی سمت خرید (بالای سقف‌ها) / سمت فروش (زیر کف‌ها).
PDH / PDL / PWH / PWLسقف و کف روز قبل / هفتهٔ قبل.
EQH / EQLسقف‌ها یا کف‌های برابر — هدف نقدینگی.
Premium / Discountبالای ۵۰٪ دامنه گران (Premium)، پایین آن ارزان (Discount).
OTEناحیهٔ ورود بهینه، حدوداً ۰٫۶۲ تا ۰٫۷۹ اصلاح، با پنجرهٔ طلایی ۰٫۷۰۵.
POI / PD-Arrayنقطهٔ مورد علاقه؛ رجیستری نواحی قابل معامله با امتیاز کیفیت.
DOLسطح هدف تحویل قیمت؛ جایی که بازار احتمالاً به آن می‌رود.
IPDAسطوح مرجع بلندمدت (سقف/کف ۲۰، ۴۰، ۶۰ روزه).
AMD / Power of Threeانباشت، دستکاری، توزیع — قالب سه‌مرحله‌ای حرکت.
POC / VA / HVN / LVNپرترافیک‌ترین قیمت پروفایل / ناحیهٔ ارزش / گرهٔ حجم بالا / گرهٔ حجم پایین.
Always-Inوضعیت ال‌بروکس: بازار در ذهن معامله‌گر «همیشه خریدار» است یا «همیشه فروشنده».
No-repaintسیگنال بعد از منتشر شدن عوض نمی‌شود؛ تحلیل فقط روی کندل بسته.

۱۰. عیب‌یابی

اندیکاتور روی چارت نیست

پس از گذاشتن فایل، از Navigator → Indicators → Refresh بزن. اگر هنوز نیست، بررسی کن فایل در MQL5\Indicators\ باشد (نه پوشهٔ دیگر) و در Journal خطای کامپایل نباشد.

روی چارت هیچ چیزی رسم نشده

سه دلیل محتمل: (۱) کندل کافی روی چارت نیست — تایم‌فریم‌های کوچک تاریخچه را کم بخوانند؛ کمی اسکرول کن یا تاریخچه را دانلود کن. (۲) لایهٔ مربوطه خاموش است. (۳) تحلیل فقط روی کندل بسته اجرا می‌شود و هنوز کندل بستهٔ مناسبی برای آن الگو وجود نداشته است.

پنل توضیح باز نمی‌شود

در حالت پیش‌فرض باید روی آبجکت کلیک کنی (نه صرفاً عبور موس). اگر روی حالت HOVER باشی (InpExplainOpen=EXPLAIN_OPEN_HOVER)، موس را باید دقیقاً روی خود خط یا مرز ناحیه ببری و در ورودی InpExplainHoverTolPx تلورانس را کمی بیشتر کنی.

متن پنل بریده یا نامرتب است

عرض و اندازهٔ قلم را با InpExplainPanelWidth، InpExplainFontSize و InpExplainMaxRows تنظیم کن. اندازهٔ قلم را عوض کن و اندیکاتور را دوباره attach کن (تغییر قلم در rebuild بعدی اعمال می‌شود).

چارت شلوغ است

سقف‌های رسم (InpMaxDrawnZones، InpMaxDrawnLevels) را کم کن، عمر آبجکت‌های جاروشده (InpSweptKeepBars) را کوتاه کن، یا لایه‌های تزئینی را خاموش کن. کشف با خاموش‌کردن رسم متوقف نمی‌شود.

چارت کند شده

اول تعداد آبجکت‌ها را با سقف‌ها کم کن، بعد لایه‌های سنگین‌تر (رسم HTF، خطوط روند، پروفایل) را خاموش کن. اگر روی M1 کار می‌کنی، تعداد کندل اسکن تاریخچه را کم کن.

پس از کامپایل مجدد، تغییرات را نمی‌بینم

اندیکاتور را از چارت Remove کن، در Navigator راست‌کلیک → Refresh، و دوباره روی چارت بکش. متاتریدر نسخهٔ قدیمی را در حافظه نگه می‌دارد.

اعداد را قبول ندارم؛ چطور گزارش بدهم؟

در مخزن Issue باز کن و بنویس: نماد، تایم‌فریم، زمان کندل، اسم آبجکت، انتظار تو و آنچه دیدی. اگر پنل توضیح متنش را نشان می‌دهد، همان را هم کپی کن. با این اطلاعات می‌توان قاعده را به‌صورت دقیق بررسی کرد.

۱۱. محدودیت‌ها و سلب مسئولیت

فاصلهٔ استاپبافر ثابت است، ATR‑آگاه نیست و SYMBOL_TRADE_STOPS_LEVEL را در نظر نمی‌گیرد.
معیارهای حجمیتیک‌ولوم است، نه حجم واقعی معامله‌شده. دادهٔ اردرفلو/فوتپرینت/دلتای واقعی از فید نیتیو متاتریدر در فارکس در دسترس نیست.
امتیاز ریسک برگشتمجموع وزن‌دار شواهد است، نه احتمال کالیبره‌شده.
ربات نیستسفارش نمی‌گذارد، مدیریت نمی‌کند و توصیهٔ مالی نیست.