
ربات مخصوص سشن نیویورک
در بازار فارکس (Forex) زمانِ معامله به اندازهٔ جهتِ قیمت اهمیت دارد؛ بسیاری از ضررهای تکراری نه از ضعفِ تحلیل، بلکه از ورود در ساعتی میآیند که نقدینگی (Liquidity) کم است، اسپرد (Spread) پهن میشود و حرکتها کاذب (False Breakout) به نظر میرسند. سشن نیویورک (New York Session) یکی از پرحجمترین پنجرههای زمانی معاملهگری است و برای معاملهگران الگوریتمی—بهویژه کسانی که با MQL5 یا MQL4 روی متاتریدر (MetaTrader) کار میکنند—تمرکز روی این بازه میتواند هم بکتست (Backtest) را معنادارتر کند و هم رفتار زندهٔ ربات را از «شکار در تمام ساعتی شبانهروز» به «اجرای قانونمند در زمانِ مناسب» تبدیل کند. ربات مخصوص سشن نیویورک (New York Session Expert Advisor) ابزاری است که فقط در بازهٔ تعریفشدهٔ زمانی اجازهٔ باز کردن، مدیریت یا بستن پوزیشن را میدهد؛ در سایر ساعات یا کاملاً غیرفعال است یا فقط مدیریت ریسک و تریلینگ را انجام میدهد. هدف این مقاله روشن کردن منطق طراحی، اجزای فنی، ریسکها و الگوی معماری ماژولار برای چنین رباتی است—بدون وعدهٔ سود تضمینی، با تأکید بر مدیریت ریسک (Risk Management) و انطباق با واقعیت بازار.
سشن نیویورک در تقویم جهانی فارکس
بازار فارکس بهصورت ۲۴ ساعته و پنج روز هفته فعال است، اما فعالیت واقعی در چهار سشن معاملاتی (Trading Sessions) متمرکز میشود: سیدنی (Sydney)، توکیو (Tokyo)، لندن (London) و نیویورک (New York). سشن نیویورک معمولاً از حدود ساعت ۸:۰۰ صبح به وقت EST/EDT آغاز میشود و تا حدود ۵:۰۰ بعدازظهر همان منطقه ادامه دارد؛ در ایران با توجه به ساعت تابستانی/زمستانی و اختلاف با آمریکا، این بازه اغلب با بخشی از بعدازظهر تا شب همپوشانی دارد و برای معاملهگر مقیم ایران یعنی معامله در ساعاتی که هم حجم بالا است و هم گاهی با اخبار آمریکا همزمان میشود. مهمترین ویژگی این سشن، همپوشانی با سشن لندن (London Session) در ساعات اولیه است؛ دورهای که به همپوشانی لندن–نیویورک (London–New York Overlap) معروف است و اغلب بیشترین حجم معاملات (Trading Volume) و عمق بازار (Market Depth) را در روز ایجاد میکند. در این بازه حرکتهای روند (Trend) و شکست سطح (Breakout) معمولاً قابلاتکاتر از ساعات کمحجم آسیا هستند، اما در عوض اسلیپیج (Slippage) و واکنش به اخبار اقتصادی (Economic News) شدیدتر میشود. ربات مخصوص سشن نیویورک باید این تقویم را نه بهعنوان یک برچسب تزئینی، بلکه بهعنوان فیلتر اصلی منطق معاملاتی درک کند: اگر استراتژی شما روی شکست محدودهٔ آسیایی ساخته شده، اجرای آن در سشن نیویورک معنا دارد؛ اگر استراتژی شما اسکالپ روی جفتهای کمحجم در ساعات آرام است، محدود کردن ربات به نیویورک ممکن است عملکرد را خراب کند. بنابراین «ربات سشن نیویورک» نام محصول نیست، بلکه توصیف فیلتر زمانی (Time Filter) بهعلاوهٔ استراتژیای است که با رفتار این سشن سازگار شده است.
چرا معاملهگران الگوریتمی به سشن نیویورک محدود میشوند
دلایل محدود کردن اکسپرت ادوایزر (Expert Advisor / EA) به نیویورک معمولاً ترکیبی از آماری، عملی و روانشناختی است. از نظر آماری، بسیاری از جفتارزها—بهویژه USD در یک سمت—در ساعات آمریکا بیشترین مشارکت را در کشف قیمت دارند؛ EURUSD، GBPUSD، USDJPY و XAUUSD (طلا) در این دوره اغلب رنج (Range) یا روند مشخصتری نسبت به نیمهشب به وقت نیویورک نشان میدهند، هرچند استثنا همیشه وجود دارد. از نظر عملی، اسپرد و کمیسیون در ساعات پرحجم پایدارتر است و مدلسازی در بکتست به واقعیت نزدیکتر میشود؛ رباتی که شبها روی اسپرد پهن معامله میکند ممکن است در تست تاریخی با اسپرد ثابت سودده به نظر برسد و در زنده نابود شود. از نظر اخبار، انتشار دادههای اشتغال (NFP)، تورم (CPI/PPI)، نرخ بهره (Interest Rate) و سخنرانیهای فدرال رزرو (Fed) عمدتاً در تقویم آمریکا و در ساعات مرتبط با نیویورک رخ میدهد؛ ربات میتواند یا در پنجرهٔ خبری معامله را ممنوع کند، یا فقط استراتژیهای از پیش تعریفشده برای نوسان خبری (News Volatility) را فعال کند. از نظر روانشناختی و عملیاتی، محدودیت زمانی باعث میشود تعداد معاملات کنترل شود، اورتریدینگ (Overtrading) در ساعات کمکیفیت کاهش یابد و لاگها برای تحلیل بعدی خواناتر باشند. برای توسعهدهندهای که روی معماری ماژولار (Modular Architecture) کار میکند، جدا کردن ماژول SessionFilter از ماژول Signal و Execution این مزیت را دارد که همان سیگنال را بتوانید برای سشن آسیا یا لندن با پارامتر دیگر تست کنید بدون بازنویسی کل ربات.
رفتار قیمت و الگوهای رایج در سشن نیویورک
درک رفتار غالب—نه قانون مطلق—به طراحی سیگنال کمک میکند. در ساعات اولیهٔ نیویورک، اغلب ادامه یا بازگشت روندی که در لندن شکل گرفته دیده میشود؛ معاملهگران به سقف/کف آسیا (Asian High/Low)، محدودهٔ لندن (London Range) و سطوح پیوت (Pivot Levels) نگاه میکنند. شکست کاذب (Fakeout) پس از جمعآوری نقدینگی در یک طرف محدوده در همپوشانی لندن–نیویورک شایع است؛ استراتژیهای شکست (Breakout) باید فیلتر تأیید—مثلاً بسته شدن کندل H1/M15 یا حجم نسبی—داشته باشند تا در برابر سیگنالهای پوچ مقاوم باشند. در ساعات میانی نیویورک، گاهی بازار وارد کنسolidation میشود، بهویژه اگر خبر مهمی در همان روز منتشر شده باشد و بازار منتظر رویداد بعدی بماند. نزدیک بسته شدن سشن آمریکا (که با پایان معاملات رسمی بازار سهام و مشتقات مرتبط همزمان است)، حجم ممکن است افت کند و حرکتها نویزی (Choppy) شوند؛ بسیاری از رباتهای حرفهای در ۳۰ تا ۶۰ دقیقهٔ آخر نیویورک ورود جدید را متوقف میکنند. برای طلا و نفت، واکنش به دادههای دلار و احساس ریسک (Risk-On/Risk-Off) در این سشن پررنگتر است. ربات مخصوص سشن نیویورک باید در بهینهسازی (Optimization) مرزبندی کند: آیا edge شما در دو ساعت اول است یا در کل بازه؟ واکفوروارد (Walk-Forward) و تقسیم نمونه به in-sample/out-of-sample از overfitting روی یک ساعت خاص جلوگیری میکند.
اجزای اصلی یک ربات سشنمحور
یک EA کامل سشنمحور معمولاً لایههای زیر را دارد، حتی اگر در یک فایل .mq5 پیاده شده باشند. ماژول زمان (Time Module) ساعت سرور بروکر، GMT offset بروکر و DST را مدیریت میکند؛ اشتباه در آفست سرور شایعترین باگ است و باعث میشود ربات یک ساعت زودتر یا دیرتر فعال شود. بهتر است زمان را به UTC نرمال کنید و سپس سشن نیویورک را در UTC تعریف کنید تا وابسته به برچسب «EST» روی سرور نباشید. ماژول تقویم (Calendar Module) رویدادهای Forex Factory یا Investing.com یا API داخلی را میخواند و پنجرهٔ No-Trade قبل و بعد از خبر را اعمال میکند. ماژول سیگنال (Signal Module) اندیکاتورها یا قیمت خام را پردازش میکند—میانگین متحرک (Moving Average)، RSI، Bollinger Bands، ساختار بازار (Market Structure) یا سفارش گذاری محدود روی پولبک (Pullback Limit). ماژول اجرا (Execution Module) نوع سفارش، حد سود (Take Profit)، حد ضرر (Stop Loss)، تریلینگ استاپ (Trailing Stop) و حداکثر اسلیپیج را اعمال میکند. ماژول ریسک (Risk Module) درصد ریسک از بالانس (Balance) یا اکوییتی (Equity)، سقف ضرر روزانه (Daily Loss Limit)، حداکثر تعداد پوزیشن همزمان و همبستگی (Correlation) بین نمادها را کنترل میکند. ماژول لاگ و گزارش (Logging Module) برای ممیزی بعدی ضروری است: زمان فعالسازی سشن، دلیل رد سیگنال، و شناسهٔ خبر. در MQL5 استفاده از کلاسها (Classes) و اینترفیسهای ساده بین ماژولها همان الگویی است که در پروژههای SaaS یا پلاگین وردپرس برای جداسازی نگرانیها به کار میرود و نگهداری ربات را در بلندمدت ارزانتر میکند.
پیادهسازی فیلتر سشن در MQL5 و نکات فنی
در MetaTrader 5، تابع TimeGMT() یا TimeCurrent() با آفست ثابت بروکر پایهٔ محاسبه است. الگوی رایج: تعریف bool IsNewYorkSession(datetime t) که t را به UTC تبدیل کند، سپس ساعت UTC را با بازهٔ [۱۳:۰۰–۲۲:۰۰] UTC بهعنوان تقریب سشن نیویورک (بسته به DST قابل تنظیم) مقایسه کند؛ یا نگهداری جدول DST سالانه در آرایه. از input parameter برای ساعت شروع/پایان به وقت «نیویورک محلی» استفاده کنید تا کاربر نهایی بدون بازکامپایل تنظیم کند. در OnTick() ابتدا فیلتر سشن را چک کنید؛ اگر خارج از بازه است، return زودهنگام انجام دهید تا CPU و درخواستهای بیهوده به سرور نشود. برای مدیریت پوزیشنهای باز: سیاستها متفاوت است—بستن اجباری در پایان سشن (Session Close)، فقط ممنوعیت ورود جدید، یا انتقال به حد ضرر ساختاری (Break-Even). هر کدام را در بکتست جدا ارزیابی کنید؛ بستن اجباری ممکن است سود شناور را قطع کند اما گپ شبان (Overnight Gap) را حذف کند. از SymbolInfoSessionTrade() برای ساعات معاملهٔ نماد استفاده کنید، اما این ساعات با «سشن نیویورک بهعنوان استراتژی» یکی نیست؛ نماد ممکن است ۲۴ ساعته باز باشد در حالی که شما فقط میخواهید در نیویورک معامله کنید. تستر استراتژی (Strategy Tester) در MT5 با حالت Every tick based on real ticks برای سشنمحور اهمیت دارد؛ مدل ۱ minute OHLC در ساعات پرنوسان خطا دارد. اسپرد متغیر و کمیسیون را در تست فعال کنید. اگر چند نماد دارید، OnTimer() هر دقیقه یک بار برای فیلتر زمانی کافی است و بار تیک را کم میکند.
استراتژیهای متداول برای سشن نیویورک
شکست محدودهٔ لندن (London Breakout NY Continuation) پس از تشکیل رنج لندن، ورود در جهت شکست در ساعات اول نیویورک با حد ضرر پشت محدوده. بازگشت به میانگین (Mean Reversion) در جفتهایی که در آسیا رنج تنگ ساختهاند و در نیویورک به باندهای Bollinger برخورد میکنند—ریسک در روزهای ترنددار بالاست. معاملهٔ روند با فیلتر دلار (USD Trend Filter) مثلاً فقط لانگ EURUSD وقتی DXY ضعیف است و سشن NY فعال است. اسکالپ روی M5/M15 با حد ضرر ثابت (Fixed SL) کوچک و نسبت ریسک به ریوارد (Risk/Reward) حداقل ۱:۱.۵؛ در خبر پرهیز شود. معاملهٔ خبری (News Trading) با اسلیپیج بالا و نیاز به ECN و سرعت اجرا؛ برای ربات خانگی پرریسک است مگر با تأخیر (Delay) و حجم کم. سشنسوئیچینگ (Session Switching) چند EA با فیلترهای مختلف روی یک حساب خطرناک است مگر ماژول مرکزی ریسک اجازهٔ یک پوزیشن per نماد بدهد. برای هر استراتژی، پارامترهای مخصوص NY—مثلاً حداقل اندازهٔ رنج لندن به پیپ—باید جدا از پارامترهای کل روز بهینه شود.
مدیریت ریسک و محدودیتهای واقعی بروکر
ربات سشن نیویورک از خطرات ربات شبانه کمتر نیست؛ گاهی خطرناکتر است چون نوسان و خبر همزمان میشوند. درصد ریسک هر معامله (Risk Per Trade) معمولاً بین ۰.۵ تا ۲ درصد برای حسابهای کوچک پیشنهاد میشود؛ در روزهای NFP بسیاری معاملهگران ریسک را نصف میکنند یا معامله را خاموش میکنند. حداکثر ضرر روزانه (Max Daily Drawdown) در کد enforce شود، نه فقط در سرور ذهنی. لوریج (Leverage) بالا با اسکالپ NY ترکیب بد است. حداقل فاصلهٔ حد ضرر (Stop Level) و فریز سطح (Freeze Level) بروکر را در SymbolInfoInteger چک کنید. پارتیل کلوز (Partial Close) و تریلینگ باید با حداقل لات (Min Lot) و گام لات (Lot Step) سازگار باشد. برای حساب سنتی در برابر ECN (Standard vs ECN Account) اسلیپیج در سشن NY متفاوت است. کپی تریدینگ (Copy Trading) و VPS نزدیک به سرور بروکر برای اسکالپ مفید است؛ VPS در ایران با پروکسی یا سرور خارج رایج است. هیچ بکتستی بدون forward test روی حساب دمو (Demo) یا سنت (Cent Account) کافی نیست، بهویژه وقتی فیلتر زمانی با DST واقعی تداخل دارد.
بکتست، اعتبارسنجی و جلوگیری از بیشبرازش
Overfitting وقتی رخ میدهد که ساعت شروع و پایان سشن با دقت دقیقهای روی دادهٔ گذشته تنظیم شده باشد تا equity منحنی صاف شود. برای کاهش آن: از چند سال داده استفاده کنید، walk-forward با پنجرهٔ rolling، و Monte Carlo روی توالی معاملات. تقسیم داده (Data Split) مثلاً ۷۰٪ train و ۳۰٪ test بر اساس زمان، نه تصادفی. معیارهای کیفیت فراتر از سود خالص: حداکثر افت سرمایه (Max Drawdown)، نسبت شارپ (Sharpe Ratio)، فاکتور سود (Profit Factor)، تعداد معاملات کافی برای معنادار بودن آماری. برای سشن NY تعداد معاملات کمتر از ربات ۲۴ ساعته طبیعی است؛ نمونهٔ آماری کم مشکلساز است. اسپرد ثابت در تست را با اسپرد واقعی مقایسه کنید؛ در NY ممکن است اسپرد کم شود اما در لحظهٔ خبر جهشی است. تأخیر شبکه (Latency) در تستر لحاظ نمیشود؛ برای اسکالپ حتماً زنده تست کنید. گزارش تفکیکی سشن (Session Analytics) بنویسید: سود فقط در ساعات ۱۳–۱۷ UTC در برابر بقیه—اگر edge فقط در دو ساعت است، بازه را همانجا محدود کنید.
همافزایی با تقویم اقتصادی و خاموشی هوشمند
تقویم اقتصادی (Economic Calendar) ستون فقرات ربات NY است. رویدادهای High Impact برای USD: Non-Farm Payrolls، Unemployment Rate، CPI، Core PCE، FOMC، GDP، Retail Sales، ISM PMI. الگوی رایج: MinutesBeforeNews و MinutesAfterNews بهصورت input؛ در این پنجره TRADING_DISABLED. برخی رباتها فیلتر نوسان (Volatility Filter) با ATR دارند: اگر ATR(M15) از آستانه بالاتر رفت، ورود ممنوع—برای روزهای خبر بدون وابستگی به API تقویم. همزمانی با سخنرانی Fed نیاز به لیست دستی یا منبع RSS دارد. در MQL5 خواندن فایل CSV تقویم از پوشه MQL5/Files سادهتر از scrape وب است. هشدار (Alert) و Push Notification به موبایل وقتی سشن فعال شد یا روز پرخبر است به نظارت انسانی کمک میکند. معاملهگر حرفهای گاهی ربات را در هفتهٔ FOMC خاموش میکند؛ ربات باید سوئیچ دستی (Manual Kill Switch) داشته باشد.
معماری ماژولار پیشنهادی برای نگهداری بلندمدت
با توجه به تجربهٔ توسعه در PHP/Python و Flutter، همان اصول در MQL5 جواب میدهد: جداسازی نگرانیها (Separation of Concerns). پکیج پیشنهادی: Core/SessionManager.mqh، Core/RiskManager.mqh، Core/TradeExecutor.mqh، Strategies/NYBreakout.mqh، Strategies/NYMeanRevert.mqh، MainEA.mq5 فقط wiring و inputs. اینترفیس سیگنال مثلاً int GetSignal() برگرداند +۱ خرید، −۱ فروش، ۰ بیطرف. تزریق وابستگی (Dependency Injection) ساده: CRiskManager* risk در سازندهٔ executor. تست واحد (Unit Test) در MQL5 محدود است؛ اسکریپتهای جدا برای تست SessionManager روی آرایهٔ datetimeها مفید است. نسخهگذاری (Versioning) در #property version و changelog در کامنت. پارامترهای input گروهبندیشده: === Session NY ===، === Risk ===، === Strategy ===. برای چند حساب، Magic Number یکتا per استراتژی. این ساختار وقتی بخواهید سشن لندن را اضافه کنید فقط LondonSessionManager و استراتژی جدید اضافه میشود بدون دست زدن به executor.
خطاهای رایج و چکلیست قبل از اجرای زنده
آفست اشتباه سرور بروکر؛ فراموش کردن DST آمریکا و اروپا در هفتههای مختلف؛ معامله در جمعهٔ عصر نزدیک بسته شدن هفتگی بازار؛ باز ماندن پوزیشن آخر هفته با سواپ (Swap) منفی؛ استفاده از تیک اسکالپ روی بروکر Market Maker با ریکوت مکرر؛ حداکثر لات بروکر و مارجین کال (Margin Call) در روز پرنوسان؛ همبستگی باز کردن EURUSD و GBPUSD همجهت با ریسک دوبرابر؛ نبود حد ضرر سخت (Hard SL) و اتکا به قطع اینترنت؛ بکتست با کیفیت پایین و equity مصنوعی؛ بهینهسازی ژنتیک بدون محدودیت منطقی پارامترها. چکلیست: تأیید UTC سشن روی لاگ یک هفته دمو؛ مقایسهٔ زمان فعالسازی با سایت ساعت جهانی؛ تست NFP روی دمو؛ بررسی Journal برای requote و off quotes؛ تنظیم VPS و AutoTrading و DLL در صورت نیاز؛ محدودیت IP بروکر برای ایران را جداگانه در نظر بگیرید—ربات جایگزین دسترسی قانونی به بروکر نیست.
ربات سشن نیویورک در کنار معامله دستی و ابزارهای جانبی
بسیاری از معاملهگران نیمهخودکار (Semi-Automated) کار میکنند: ربات فقط سیگنال میدهد و انسان تأیید میکند، یا ربات مدیریت پوزیشن میکند و ورود دستی است. اندیکاتور سشن (Session Indicator) روی چارت خطوط عمودی شروع/پایان NY را میکشد و به کالیبراسیون EA کمک میکند. داشبورد (Dashboard) با Canvas یا OBJ_LABEL در MT5 وضعیت سشن، ریسک روزانه و خبر بعدی را نشان میدهد. اتصال به تلگرام یا وبهوک برای گزارش معاملات شبیه الگوی SaaS شما در پروژههای وب است—در MQL5 با WebRequest و SSL. ژورنال معاملاتی (Trading Journal) export به CSV برای تحلیل در Python و Pandas ارزش بلندمدت دارد. برای کسی که همزمان روی الگوتریدینگ فارکس و محصولات نرمافزاری کار میکند، مستندسازی ربات مثل مستندسازی API است: ورودی، خروجی، حالتهای خطا، قرارداد سشن.
جمعبندی عملی برای طراحی و استقرار
ربات مخصوص سشن نیویورک ابزار تمرکز است نه جادو: فیلتر زمانی با UTC درست، استراتژی همخوان با نقدینگی و اخبار آمریکا، مدیریت ریسک سختگیرانه، بکتست با تیک واقعی و فوروارد تست طولانی. معماری ماژولار در MQL5 هزینهٔ تغییر استراتژی و اضافه کردن سشن لندن را کم میکند. انتظار واقعبینانه: دورههای افت (Drawdown)، تفاوت دمو و زنده، و نیاز به بهروزرسانی سالانهٔ DST و قوانین بروکر. اگر edge آماری شما در همپوشانی لندن–نیویورک متمرکز است، ربات را همانجا محدود کنید و در ساعات دیگر سکوت کنید—گاهی بهترین معامله، معاملهای است که ربات عمداً انجام نمیدهد.
دیدگاهها (0)