اپیزود ۳ — ویژگی سازی یادگیری ماشین در فارکس (بازده روزانه ،SMA، RSI، ATR)
Case Study: EURUSD روزانه
مقدمه
در اپیزود ۲ یاد گرفتیم که دادههای خام فارکس (OHLC) را تمیز کنیم. حالا که یک دیتاست سالم از EURUSD روزانه در اختیار داریم، وقت آن رسیده یک قدم جلوتر برویم: ویژگی سازی یا همان Feature Engineering .
ویژگی ها در واقع همان «سرنخها» هستند. اگر بخواهیم یادگیری ماشین را یک دانشآموز فرض کنیم، ویژگیها همان درسهایی هستند که به او میدهیم. هرچه این درسها سادهتر، شفافتر و مرتبطتر باشند، یادگیری بهتر اتفاق میافتد.
در این اپیزود میخواهیم چهار ویژگی پایهای اما بسیار مهم را روی دادهی EURUSD بسازیم:
- بازده روزانه (Return)
- میانگین متحرک ۲۰روزه (SMA20)
- شاخص قدرت نسبی ۱۴روزه (RSI14)
- میانگین محدوده واقعی ۱۴روزه (ATR14)
این ویژگی ها اولین ابزارهای ما برای پیشبینی و درک رفتار بازار خواهند بود.
۱. بازده روزانه (Daily Return)
تعریف ساده بازده روزانه به عنوان ویژگی یادگیری ماشین
بازده روزانه یعنی نسبت تغییر قیمت بستهشدن امروز به دیروز. این سادهترین راه برای فهمیدن این است که امروز بازار نسبت به دیروز چقدر رشد یا افت داشته است.
مثال: اگر دیروز EURUSD روی ۱.۱۰۰۰ بسته شد و امروز روی ۱.۱۰۲۰ بسته شود، فرمول بازده این است:
Return = (Close_today / Close_yesterday) – 1
Return = (1.1020 / 1.1000) – 1 = 0.18%
یعنی امروز یورو نسبت به دیروز حدود ۰٫۱۸٪ قویتر شده است.
چرا مهم است؟
بازده روزانه مثل یک ذرهبین است که تغییرات کوچک قیمت را قابل مقایسه میکند. فرض کن یک روز EURUSD از ۱.۱۰۰۰ به ۱.۱۰۲۰ برسد (۲۰ پیپ رشد) و روز دیگر از ۰.۹۰۰۰ به ۰.۹۰۲۰ برسد (باز هم ۲۰ پیپ رشد). در نگاه اول هر دو تغییر یکی است، اما در واقع بازدهها متفاوتاند:
- در سطح ۱.۱۰ این تغییر حدود ۰٫۱۸٪ است.
- در سطح ۰.۹۰ این تغییر حدود ۰٫۲۲٪ است.
پس بازده به ما اجازه میدهد تغییرات نسبی را بسنجیم، نه فقط تغییرات مطلق.
کاربرد بازده روزانه به عنوان یک ویژگی یادگیری ماشین
- اندازهگیری نوسان (Volatility): اگر بازدهها در یک دوره خیلی بالا و پایین باشند، یعنی بازار پرنوسان است.
- پیشنیاز اندیکاتورها: بسیاری از اندیکاتورها (مثل RSI) بر اساس تغییرات روزانه ساخته میشوند.
- مبنای بازدههای تجمعی: میتوانیم بازدههای روزانه را جمع کنیم تا عملکرد یک هفته یا یک ماه را ببینیم.
مثال واقعی با EURUSD
فرض کن دیتای ۱۰ روز اخیر EURUSD را داری. با محاسبهی بازده روزانه، متوجه میشوی در ۷ روز بازار تقریباً بین +۰٫۱٪ و -۰٫۱٪ در نوسان بوده، اما در سه روز خاص حرکتهای شدیدتر (مثلاً ±۰٫۵٪) رخ داده است. این اطلاعات به مدل ML کمک میکند روزهای عادی را از روزهای پرهیجان تشخیص دهد.
تمرین کوچک
یک فایل اکسل باز کن و ستون Close EURUSD را برای ۳۰ روز کپی کن. در ستون بعدی فرمول بازده روزانه را بنویس. حالا نمودار ستونی (Bar Chart) از بازدهها رسم کن. این نمودار خیلی سریع به تو نشان میدهد کدام روزها غیرعادی بودهاند.
۲. میانگین متحرک ۲۰روزه (SMA20)
تعریف ساده به عنوان یک ویژگی یادگیری ماشین
میانگین متحرک یعنی میانگین گرفتن از چند قیمت آخر برای هموار کردن نمودار. SMA20 یعنی میانگین قیمت بستهشدن ۲۰ روز گذشته.
چرا مهم است؟
- به ما کمک میکند روندهای کوتاهمدت را بهتر ببینیم.
- اگر قیمت بالاتر از SMA20 باشد، معمولاً نشانهی قدرت صعودی است.
- اگر پایینتر باشد، نشانهی فشار نزولی است.
مثال واقعی
فرض کن در ۲۰ روز گذشته قیمت EURUSD بین ۱.۰۹۰۰ تا ۱.۱۰۵۰ در نوسان بوده. اگر SMA20 امروز ۱.۰۹۸۵ باشد و قیمت روز روی ۱.۱۰۲۰ بسته شود، میتوانیم بگوییم بازار کمی بالاتر از روند کوتاهمدت حرکت کرده است. این سرنخی برای مدل ML خواهد بود.
۳. شاخص قدرت نسبی ۱۴روزه (RSI14)
تعریف ساده به عنوان یک ویژگی یادگیری ماشین
RSI یک اندیکاتور نوسانی است که قدرت حرکتهای صعودی و نزولی بازار را با هم مقایسه میکند. مقدار آن همیشه بین ۰ تا ۱۰۰ قرار دارد.
- اگر مقدار بالای ۷۰ باشد ⇒ میگوییم بازار در وضعیت اشباع خرید (Overbought) است؛ یعنی قیمت بیش از حد سریع بالا رفته و احتمال اصلاح وجود دارد.
- اگر مقدار زیر ۳۰ باشد ⇒ بازار در وضعیت اشباع فروش (Oversold) قرار دارد؛ یعنی قیمت بیش از حد افت کرده و احتمال بازگشت به بالا هست.
چرا مهم است؟
- سنجش قدرت روند: RSI نشان میدهد حرکت اخیر بازار چقدر قوی بوده است. اگر RSI نزدیک ۵۰ باشد، یعنی بازار تعادلی دارد؛ اگر خیلی بالا یا پایین باشد، یعنی یک طرف بازار دست بالا را گرفته است.
- تشخیص بازگشتها: معاملهگران اغلب وقتی RSI از محدودههای افراطی (زیر ۳۰ یا بالای ۷۰) برمیگردد، منتظر چرخش قیمت میشوند.
- محبوبیت: RSI یکی از پرکاربردترین اندیکاتورهاست و تقریباً در تمام پلتفرمهای تحلیلی وجود دارد.
چگونه محاسبه میشود؟
محاسبهی RSI کمی پیچیدهتر از SMA است، ولی اگر قدم به قدم برویم ساده است:
- تغییرات قیمت روزانه Gain و Loss را حساب میکنیم.
- میانگین ۱۴ روزهی سودها (Avg Gain) و ضررها (Avg Loss) را میگیریم.
- نسبت این دو را حساب میکنیم: RS = AvgGain / AvgLoss
- فرمول نهایی RSI:
RSI = 100 – (100 / (1 + RS))
این محاسبات معمولاً توسط نرمافزارها انجام میشود، اما دانستن پشت صحنهی آن مفید است.
مثال واقعی با EURUSD
فرض کن در ۱۰ روز گذشته EURUSD بیشتر روزها صعودی بوده است و روزهایی هم که نزول کرده، افت آن کوچک بوده است. در چنین شرایطی، میانگین سودها بزرگتر از میانگین ضررها خواهد بود. نسبت RS زیاد میشود و در نتیجه RSI بالاتر از ۷۰ میرود. این وضعیت به ما میگوید بازار بیش از حد صعودی شده و ممکن است اصلاح داشته باشد.
برعکس، اگر EURUSD بیشتر روزها نزولی بوده و صعودهایش کوچک بوده، RSI به زیر ۳۰ میرود. این یعنی بازار بیش از حد فروخته شده و احتمال بازگشت وجود دارد.
کاربرد عملی
- فیلتراسیون معاملات: بعضی معاملهگران فقط وقتی خرید میکنند که RSI زیر ۳۰ باشد و بازار در حال بازگشت باشد.
- ترکیب با دیگر ابزارها: RSI بهتنهایی کافی نیست. اگر با میانگین متحرک یا سطوح حمایت/مقاومت ترکیب شود، سیگنالهای معتبرتری میدهد.
- بررسی واگراییها (Divergence): اگر قیمت سقف جدید بزند ولی RSI نتواند سقف جدیدی بسازد، این نشانهی ضعف روند است و احتمال برگشت وجود دارد.
۴. میانگین محدوده واقعی ۱۴روزه (ATR14)
تعریف ساده به عنوان یک ویژگی یادگیری ماشین
ATR شاخصی است که میزان نوسان واقعی بازار را نشان میدهد. برخلاف RSI یا SMA، ATR جهت بازار (صعود یا نزول) را مشخص نمیکند، بلکه فقط میگوید قیمت چقدر پرتحرک بوده است.
محاسبهی ATR بر پایهی True Range (TR) است. برای هر روز، TR سه مقدار را بررسی میکند:
- High – Low امروز
- |High امروز – Close دیروز|
- |Low امروز – Close دیروز|
بزرگترین این سه عدد بهعنوان TR آن روز انتخاب میشود. سپس ATR14 میانگین ۱۴ روز اخیر TR است.
چرا مهم است؟
- سنجش نوسان: ATR دقیقترین معیار ساده برای اندازهگیری هیجان بازار است.
- تنظیم حد ضرر: معاملهگران اغلب حد ضرر خود را بر اساس مضربی از ATR تعیین میکنند (مثلاً ۲ × ATR زیر نقطه ورود).
- مدیریت اندازه پوزیشن: وقتی ATR بالا باشد، حجم معامله را کم میکنند تا ریسک کنترل شود.
مثال واقعی با EURUSD
فرض کن EURUSD معمولاً در هر روز حدود ۵۰ پیپ نوسان دارد. اما در هفتهای که گزارش NFP یا تصمیم فدرال رزرو منتشر میشود، ATR14 به ۹۰ پیپ میرسد. این یعنی بازار پرهیجانتر از حالت عادی است و باید احتیاط بیشتری کرد.
کاربرد عملی
- اگر ATR پایین باشد، بازار در حالت آرام و کمحرکت است؛ استراتژیهای رنج (Range Trading) بهتر جواب میدهند.
- اگر ATR بالا باشد، بازار پرنوسان است؛ استراتژیهای شکست (Breakout) مناسبتر هستند.

۵. چگونه این ویژگیها را در اکسل بسازیم؟
بازده روزانه
- ستون Close را وارد کن.
- فرمول بازده:
- =IFERROR(E2/E1-1,””)
- نتیجه را به درصد فرمت بده تا خوانا باشد.
SMA20
- از روز ۲۱ به بعد فرمول میانگین ۲۰ روز گذشته:
- =AVERAGE(E2:E21)
- این ستون نشان میدهد قیمت نسبت به روند کوتاهمدت در چه وضعیتی است.
RSI14
محاسبهی RSI در اکسل کمی طولانی است:
- ستون Gain = MAX Close امروز – Close دیروز, ۰
- ستون Loss = MAX Close دیروز – Close امروز, ۰
- میانگین ۱۴ روزهی Gain و Loss را محاسبه کن.
- RS = AvgGain / AvgLoss
- RSI = 100 – (100 / (1 + RS))
ATR14
- ستون TR = MAX High-Low, |High-Close قبلی Low-Close قبلی
- میانگین ۱۴ روز اخیر TR ⇒ ATR14
مزیت استفاده در اکسل
- بدون نیاز به کدنویسی، فقط با فرمولهای ساده میتوانیم همهی این ویژگیها را بسازیم.
- همین فایل بعداً به مدل ML داده میشود تا از این ستونها بهعنوان ورودی استفاده کند.
- برای سهولت انجام موارد بالا میتوانید مقادیر این اندیکاتورها را ار پلتفرمهای متاتریدر و یا Trading View بصورت دستی وارد شیت اکسل کنید.
۶. اشتباهات رایج در ویژگی سازی یادگیری ماشین
۱. استفاده از دادههای آینده (Look-ahead Bias)
بزرگترین خطا این است که ویژگی امروز را با استفاده از داده فردا بسازیم. مثلاً اگر برای بازده روز ۱۰ از Close روز ۱۱ استفاده کنیم، در واقع آینده را لو دادهایم. چنین مدلی در گذشته عالی به نظر میرسد، اما در عمل شکست میخورد.
۲. اشتباه گرفتن بازده با تغییر مطلق
بعضیها به جای بازده، تغییر مطلق قیمت را حساب میکنند. اما تغییر ۲۰ پیپ در نرخ ۱.۱۰ معادل ۰٫۱۸٪ است، در حالی که همان ۲۰ پیپ در نرخ ۰.۹۰ معادل ۰٫۲۲٪ خواهد بود. مقایسهی درست فقط با بازده نسبی ممکن است.
۳. تولید بیش از حد ویژگیها
وقتی تازه با اکسل و اندیکاتورها آشنا میشویم، وسوسه میشویم دهها ستون جدید بسازیم (MACD، Bollinger Bands، Stochastic و …). اما اضافه کردن بیرویهی ویژگیها میتواند مدل را سردرگم کند و باعث Overfitting شود. بهتر است ابتدا با چند ویژگی ساده و مطمئن شروع کنیم.
۴. نادیده گرفتن کیفیت داده اولیه
اگر دادهی خام (اپیزود ۲) تمیز نباشد، هر ویژگی که بسازی اشتباه خواهد بود. فرمولهای اکسل خروجی میدهند، اما خروجی آنها فقط به اندازهی ورودیهایشان معتبر است.
نتیجه ملموس امروز
- یاد گرفتیم بازده، SMA، RSI و ATR چه هستند و چرا مهماند.
- یک فایل اکسل آماده داریم که همهی این ویژگی های یادگیری ماشین را محاسبه میکند.
- از این پس، مدل ML ما به جای «خام نگاه کردن به قیمت»، میتواند از این سرنخهای ارزشمند استفاده کند.
تمرین کوچک
- همین ویژگیها را روی دادهی EURUSD سه سال اخیر بساز.
- نمودار RSI14 را بکش و ببین چه وقتها به بالای ۷۰ یا پایین ۳۰ میرود.
- ATR14 را هم ترسیم کن و ببین در چه دورههایی نوسان بیشتر بوده.
منابع
- Investopedia — Technical Indicators: SMA, RSI, ATR
- Babypips — School of Pipsology: Indicators
- Depth Market Pro — آموزش یادگیری ماشین در فارکس (مطالب داخلی)