اپیزود ۲ — داده در فارکس چیست و چرا باید تمیز باشد؟
(Case Study: EURUSD) روزانه
مقدمه
اگر بخواهیم یادگیری ماشین را به یک آشپز حرفهای تشبیه کنیم، داده مثل مواد اولیه غذاست. حتی بهترین سرآشپز دنیا نمیتواند با مواد خراب یا ناقص غذای خوبی درست کند. در فارکس هم همین قانون برقرار است: هیچ مدل یادگیری ماشین، حتی پیشرفتهترین آنها، روی دادهی کثیف نتیجهی درست نمیدهد.
وقتی از داده در فارکس صحبت میکنیم، منظورمان همان کندلهای قیمتی است: باز شدن (Open)، بسته شدن (Close)، بیشترین (High) و کمترین (Low) در یک بازهی زمانی خاص. برای مثال در EURUSD روزانه، هر کندل نشاندهندهی تغییرات یک روز کامل است.
اما واقعیت این است که دادهها در فارکس همیشه تمیز و بینقص نیستند. گاهی تاریخها تکراریاند، گاهی کندلها ناقصاند، بعضی وقتها اختلاف تایمزون مشکل ایجاد میکند، و حتی ممکن است قیمتهای غیرمنطقی در دیتاست دیده شود. در این اپیزود یاد میگیریم «دادهی تمیز» یعنی چه، چرا اهمیت دارد، و چطور میتوانیم دیتای روزانهی EURUSD در چند سال اخیر را آماده کنیم.
۱. داده در فارکس دقیقاً چیست؟
دادهی خام معمولاً در قالب یک فایل CSV یا اکسل به دست ما میرسد. برای هر کندل (هر روز)، ستونهای زیر وجود دارد:
- Date: تاریخ کندل (مثلاً ۲۰۲۵-۰۸-۲۱)
- Open: قیمت باز شدن روز
- High: بالاترین قیمت ثبتشده در آن روز
- Low: پایینترین قیمت ثبتشده
- Close: قیمت بسته شدن روز
- Volume (اختیاری): در فارکس معمولاً حجم واقعی در دسترس نیست، بلکه چیزی به نام Tick Volume ثبت میشود (تعداد تغییرات قیمت در طول روز).
برای مثال، اگر دادهی روزانهی EURUSD را برای ۵ سال اخیر داشته باشیم، حدود ۱۲۵۰ تا ۱۳۰۰ ردیف داده خواهیم داشت (۵ روز کاری × ۵۲ هفته × ۵ سال).
۲. چرا تمیز بودن داده اینقدر مهم است؟
بیایید یک مثال بزنیم. فرض کن در دیتای EURUSD دو روز تعطیلی بازار جا افتاده و بهجایش فقط یک کندل ثبت شده. حالا اگر میانگین متحرک ۲۰ روزه (SMA20) را حساب کنی، نتیجه بهطور کامل اشتباه خواهد شد. یا فرض کن کندلی داری که مقدار High آن از Close پایینتر است (که غیرممکن است). اگر چنین رکوردی را به مدل یادگیری ماشین بدهی، مدل الگوهای غلط یاد میگیرد.
پس: دادهی تمیز یعنی دادهای که با منطق بازار سازگار است و خطای آشکار ندارد.
۳. مشکلات رایج در دادههای خام EURUSD
چند نمونه از ایرادهایی که ممکن است ببینیم:
- تاریخهای تکراری: بعضی روزها دوبار ثبت شدهاند.
- کندلهای ناقص: یکی از ستونها (مثلاً High یا Close) مقدار ندارد.
- تفاوت تایمزون: بعضی منابع داده از UTC استفاده میکنند، بعضی از New York Close. اگر قاطی شوند، نتایج ناهماهنگ میشود.
- کندل یکشنبه (Sunday Candle): بعضی بروکرها برای یکشنبه یک کندل کوتاه میگذارند (چند ساعت بازار باز است)، بعضیها نه.
- قیمتهای غیرمنطقی: مثلاً High کمتر از Open یا Close باشد.

۴. مراحل تمیزکاری داده در فارکس(Data Cleaning Pipeline)
گام اول: مرتبسازی تاریخها
دادهها در فارکس باید از قدیمی به جدید مرتب شود. اگر تاریخها جابهجا باشند، هر اندیکاتور یا مدل ML به هم میریزد.
گام دوم: یکنواختسازی تایمزون
باید انتخاب کنیم که داده بر اساس چه تایمزونی باشد (مثلاً UTC یا New York Close). ترکیب چند تایمزون مثل اندازهگیری قد یک نفر با دو متر مختلف است؛ نتیجه غیرقابل اعتماد میشود.
گام سوم: حذف یا علامتگذاری دادههای تکراری و ناقص
- اگر تاریخ تکراری است → یکی حذف شود.
- اگر کندل ناقص است (مثلاً Close ندارد) → یا حذف میکنیم یا مقدار را از منبع دیگری جایگزین میکنیم.
گام چهارم: بررسی منطق OHLC
یک فرمول ساده داریم که همیشه باید برقرار باشد:
Low ≤ min(Open,Close) ≤ max(Open,Close) ≤ High
اگر این شرط برقرار نباشد، یعنی آن کندل مشکل دارد.
گام پنجم: بررسی تقویم
· دادهی روزانه باید شامل روزهای دوشنبه تا جمعه باشد.
· اگر روزی جا افتاده باشد، یا باید آن را پر کنیم (با Close روز قبل) یا حذف کنیم. مهم این است که آن را علامتگذاری کنیم تا بدانیم تغییر دادهای اتفاق افتاده است.
گام ششم: خروجی نهایی
فایل نهایی باید اسم شفاف داشته باشد. مثلاً:
EURUSD_Daily_UTC_2020-2025_clean.csv
۵. تمرین عملی (پاکسازی داده در فارکس با اکسل یا گوگل شیتس)
۱. دادهی خام EURUSD را از یک منبع دانلود کن.
۲. ستون تاریخ را به فرمت YYYY-MM-DD تبدیل کن.
۳. یک ستون اضافه کن و فرمول زیر را بنویس:
AND(D2<=MIN(B2,E2), C2>=MAX(B2,E2))=
فرض:(B=Open, C=High, D=Low, E=Close)
۴. ردیفهایی که نتیجهی False گرفتند را پیدا کن؛ اینها همان دادههای خراباند.
۵. تعداد روزهای Missing یا تکراری را بشمار.
این کار ساده باعث میشود قبل از هر مدلسازی، مطمئن شوی که دادهات سالم است.
۶. اشتباهات رایج در کار با دادههای فارکس
۱. ترکیب دادهی دو تایمزون مختلف بدون هماهنگسازی
یکی از رایجترین خطاها این است که بخشی از داده را از یک منبع UTC و بخشی دیگر را از منبعی با New York Close دانلود میکنیم. در ظاهر تفاوت زیادی دیده نمیشود، اما اگر دقیق شویم، متوجه میشویم بسته شدن روز در این دو تایمزون متفاوت است. نتیجه؟ میانگین متحرک، اندیکاتورها و حتی سیگنالها کاملاً جابهجا میشوند.
برای مثال، ممکن است در دیتای UTC یک کندل صعودی باشد، اما همان روز در دیتای نیویورک نزولی ثبت شده باشد! این تفاوت میتواند کل مدل یادگیری ماشین را گمراه کند. همیشه باید پیش از شروع کار، یک تایمزون مشخص انتخاب کنیم و همهی دادهها را به آن تبدیل کنیم.
۲. نادیده گرفتن کندلهای یکشنبه
بعضی بروکرها برای یکشنبه (که بازار فقط چند ساعت باز است) یک کندل کوتاه ثبت میکنند، بعضیها هم این روز را حذف میکنند. اگر ما بدون توجه به این موضوع از دو منبع داده مختلف استفاده کنیم، ممکن است تعداد کندلها متفاوت باشد.
نتیجهی این اختلاف چیست؟
· اندیکاتورهای مبتنی بر دورهی ثابت (مثلاً ۲۰ روزه) نتیجههای مختلفی نشان میدهند.
· مدل ML هنگام آموزش، با دادههایی مواجه میشود که طول و تعدادشان برابر نیست.
به همین دلیل باید همیشه مشخص کنیم آیا میخواهیم کندل یکشنبه را نگه داریم یا حذف کنیم، و این انتخاب در کل پروژه یکسان باشد.
۳. اعتماد کورکورانه به دادهی خام و صرفنظر کردن از تمیزکاری
خیلی از معاملهگران تازهکار فکر میکنند دادهای که از بروکر یا سایتهای مشهور دانلود میشود، حتماً بینقص است. اما تجربه نشان داده حتی در منابع بزرگ هم خطا وجود دارد:
· بعضی روزها قیمتهای غیرمنطقی وارد میشوند (مثلاً Low بیشتر از Open باشد).
· بعضی رکوردها ناقصاند (فقط Open و Close دارند، اما High و Low خالی است).
· گاهی حتی دادههای تکراری در فایل دیده میشود.
اگر بدون بررسی این دادهها، مستقیم سراغ مدلسازی برویم، نتیجه مثل ساختن خانه روی شن است؛ شاید در ابتدا درست به نظر برسد، اما در اولین آزمون واقعی فرو میریزد. تمیزکاری داده، هرچند وقتگیر، مثل پیریزی محکم ساختمان است.

۷. نتیجه ملموس امروز
فهمیدیم داده در فارکس از چه ستونهایی تشکیل میشود.
دیدیم چه مشکلاتی ممکن است در دیتای خام EURUSD وجود داشته باشد.
یاد گرفتیم با یک سری گام ساده، دادهی تمیز و قابل اعتماد بسازیم.
۸. تمرین کوچک
دادهی EURUSD سه سال اخیر را از یک منبع دیگر (غیر از منبع اصلیات) بگیر. همان مراحل تمیزکاری را روی آن اجرا کن. حالا تعداد کندلهای نهایی را با مقدار مورد انتظار (حدود ۷۵۰–۷۸۰ روز معاملاتی) مقایسه کن. اگر اختلاف زیادی بود، یعنی منبع داده ایراد دارد.
۹. چکلیست اپیزود ۲
دادهی خام EURUSD را دانلود کن.
تاریخها را مرتب و یکنواختسازی کن.
دادههای تکراری و ناقص را حذف یا اصلاح کن.
شرط منطقی OHLC را بررسی کن.
تقویم معاملاتی را با روزهای کاری تطبیق بده.
فایل نهایی را با اسم مشخص ذخیره کن.
⚖️ سلب مسئولیت
این محتوا صرفاً آموزشی است و توصیه سرمایهگذاری محسوب نمیشود. بازارهای مالی پرریسکاند؛ مسئولیت تصمیمها با خود شماست.
منابع
Investopedia — Forex OHLC Data
Babypips — School of Pipsology: Data & Charts
Depth Market Pro — آموزش فارکس (مطالب داخلی)
یک پاسخ