
نسبت Profit Factor در نتایج بکتست: شاخصی حیاتی برای ارزیابی استراتژیهای الگوریتمی
در دنیای پیچیده و پویای معاملات الگوریتمی، معاملهگران و توسعهدهندگان همواره در جستجوی معیارهای کمّی دقیقی هستند که بتوانند کارایی و سودآوری بلندمدت یک استراتژی را پیشبینی و ارزیابی کنند. در این میان، برخی شاخصها مانند نرخ برد (Win Rate) به دلیل سادگی مفهوم، ممکن است بیش از حد مورد توجه قرار گیرند، در حالی که شاخصهای عمیقتری وجود دارند که تصویر واقعیتری از عملکرد ارائه میدهند. نسبت پروفیت فکتور (Profit Factor) یکی از این معیارهای قدرتمند و در عین حال ساده است که در قلب تحلیل بکتست (Backtest) و ارزیابی سیستمهای معاملاتی قرار دارد. این نسبت، که در نگاه اول یک فرمول ریاضی ساده به نظر میرسد، در باطن خود حاوی داستان کامل تعادل میان سود و زیان، مدیریت ریسک و پایداری استراتژی است. در این مقاله جامع، به شکلی تحلیلی و عمیق به کالبدشکافی این شاخص کلیدی میپردازیم، نقش آن را در فرآیند توسعه ربات معاملهگر (Trading Bot) بررسی میکنیم، ارتباطش را با سایر مفاهیم حیاتی مانند دراداون (Drawdown) و ریسک به ریوارد (Risk to Reward) تحلیل مینماییم و هشدارهای ضروری در مورد تفسیر نادرست آن را ارائه میدهیم.
تعریف بنیادین و فرمول محاسبه Profit Factor
نسبت پروفیت فکتور (Profit Factor) در سادهترین تعریف، معیاری است برای سنجش کارایی یک استراتژی معاملاتی با مقایسهی کل سودهای ایجادشده با کل زیانهای متحملشده. این نسبت پاسخ یک سوال بنیادی را میدهد: «به ازای هر واحد پولی که این استراتژی در معرض خطر قرار میدهد (یا از دست میدهد)، چقدر سود ایجاد میکند؟» فرمول محاسبهی آن به شکل زیر است:
[
\text{Profit Factor} = \frac{\text{مجموع سود تمام معاملات برنده}}{\text{مجموع ضرر تمام معاملات بازنده}} ]
در این فرمول، «مجموع سود تمام معاملات برنده» (Gross Profit) و «مجموع ضرر تمام معاملات بازنده» (Gross Loss) هر دو اعدادی مثبت در نظر گرفته میشوند. به بیان دیگر، زیانها به صورت قدر مطلق جمعزده میشوند. برای مثال، اگر استراتژیای در طول بکتست (Backtest) خود، جمعاً ۱۰۰۰۰ واحد سود و ۴۰۰۰ واحد ضرر (به صورت قدر مطلق) ایجاد کرده باشد، پروفیت فکتور آن برابر خواهد بود با ( 10000 / 4000 = 2.5 ). این عدد بدین معناست که استراتژی به ازای هر ۱ واحدی که از دست داده، ۲.۵ واحد سود کسب کرده است. روش جایگزین و معادل دیگری نیز برای محاسبه وجود دارد که از مفهوم نرخ برد (Win Rate) و میانگین سود و زیان استفاده میکند:
[
\text{Profit Factor} = \frac{\text{Win Rate} \times \text{میانگین سود معامله برنده}}{(1 – \text{Win Rate}) \times \text{میانگین ضرر معامله بازنده}} ]
این نمایش دوم، ارتباط عمیق پروفیت فکتور را با سه پارامتر کلیدی دیگر آشکار میسازد و نشان میدهد که برای بهبود این شاخص، میتوان روی افزایش نرخ برد، افزایش میانگین سود معاملات برنده، یا کاهش میانگین ضرر معاملات بازنده (از طریق مکانیزمهایی مانند حد ضرر (Stop Loss) بهینه) کار کرد. شایان ذکر است که محاسبهی پروفیت فکتور میتواند هم برای کل تاریخچهی معاملات و هم برای بازههای زمانی خاص (مثلاً سالیانه یا ماهیانه) انجام شود تا پایداری عملکرد استراتژی در طول زمان نیز سنجیده شود.
Profit Factor در معاملات دستی در مقابل معاملات الگوریتمی
اگرچه مفهوم نسبت پروفیت فکتور (Profit Factor) در هر دو حوزهی معاملات دستی و الگوریتمی کاربرد دارد، اما اهمیت، تفسیر و چالشهای مرتبط با آن در این دو محیط به طور قابل توجهی متفاوت است. در معاملات دستی، این شاخص اغلب به صورت پسرو (Retrospective) و با تاخیر محاسبه میشود. معاملهگر ممکن است در پایان یک دوره، دفترچه معاملات خود را مرور کند و با جمعبندی سود و زیانها، به یک پروفیت فکتور کلی دست یابد. مشکل اصلی در اینجا، ناسازگاری ذاتی رفتار انسان است. احساسات، خستگی، اعتماد به نفس کاذب پس از یک سری معاملات برنده، یا ترس پس از زیانهای متوالی، همگی میتوانند باعث انحراف از استراتژی اولیه شوند. بنابراین، پروفیت فکتور محاسبهشده ممکن است بیشتر منعکسکنندهی روانشناسی معاملهگر در آن دوره باشد تا کارایی ذاتی یک «سیستم» معاملاتی مشخص. در واقع، استراتژی به صورت پویا و اغلب ناخودآگاه در طول زمان تغییر میکند.
در مقابل، در دنیای معاملات الگوریتمی و بکتست (Backtest)، پروفیت فکتور به یک شاخص عینی، قابل تکرار و مبتنی بر داده تبدیل میشود. هنگامی که یک ربات معاملهگر (Trading Bot) بر اساس یک مجموعه قواعد کاملاً تعریفشده (الگوریتم) کدنویسی میشود، میتوان آن را روی دادههای تاریخی بازار اجرا کرد و یک پروفیت فکتور دقیق برای آن دوره محاسبه نمود. این عدد، معیاری خالص از کارایی منطق استراتژی، مستقل از تأثیرات روانشناختی، ارائه میدهد. این عینیت، سنگ بنای توسعهی سیستماتیک استراتژیها است. توسعهدهنده میتواند پارامترهای مختلف (مانند محل قرارگیری حد ضرر و حد سود (Take Profit)) را تغییر دهد و تأثیر مستقیم آن بر پروفیت فکتور را در بکتست مشاهده کند. این فرآیند بهینهسازی پارامترها، اگر با دقت و آگاهی از خطر بیشبرازش (Overfitting) انجام شود، میتواند منجر به خلق استراتژیهایی با پروفیت فکتور بسیار جذاب در دادههای تاریخی شود. با این حال، همین عینیت و وابستگی به دادههای تاریخی، چالش بزرگ دیگری به نام «اعتبار در دنیای واقعی» را ایجاد میکند که در بخشهای بعدی به تفصیل به آن خواهیم پرداخت.
نقش محوری Profit Factor در ارزیابی جامع عملکرد استراتژی
نسبت پروفیت فکتور (Profit Factor) به عنوان یک شاخص ترکیبی، نقش بیبدیلی در ارزیابی کلی سلامت و سودآوری یک سیستم معاملاتی ایفا میکند. برخلاف نرخ برد (Win Rate) که صرفاً نسبت معاملات سودده را نشان میدهد و اطلاعاتی دربارهی حجم سود و زیان ارائه نمیکند، پروفیت فکتور هر دو بعد کمّی و کیفی را ادغام مینماید. یک استراتژی با نرخ برد پایین (مثلاً ۴۰٪) میتواند به لطف نسبت بالای ریسک به ریوارد (Risk to Reward)، پروفیت فکتور بسیار خوبی داشته باشد. برای مثال، اگر میانگین سود معاملات برنده سه برابر میانگین ضرر معاملات بازنده باشد، پروفیت فکتور برابر خواهد بود با ( 0.4 \times 3 / (0.6 \times 1) = 2.0 ). این نشان میدهد که استراتژیهای «کمبرنده اما پر سود» میتوانند بسیار موثر باشند.
از سوی دیگر، پروفیت فکتور یک فیلتر ضروری در برابر «استراتژیهای پر سر و صدا اما کمبازده» است. استراتژیای را تصور کنید که نرخ برد بسیار بالایی (۷۰٪) دارد، اما میانگین سود آن تنها نیمی از میانگین ضررش است. پروفیت فکتور چنین سیستمی ( 0.7 \times 0.5 / (0.3 \times 1) = 1.17 ) خواهد بود که عدد چندان درخشانی نیست. این استراتژی با وجود بردهای متعدد، حاشیهی ا بازار یا کمی دارد و یک تغییر کوچک در بازار یا افزایش کارمزدها میتواند آن را به سمت زیان دهی سوق دهد. بنابراین، پروفیت فکتور به عنوان یک شاخص یکپارچهکننده، ارزیابی را از صرف «تعداد بردها» به سمت «کارایی اقتصادی» معاملات سوق میدهد. این شاخص به طور مستقیم با مفهوم امید ریاضی (Expectancy) مرتبط است. Expectancy میانگین سود مورد انتظار به ازای هر دلار ریسک را نشان میدهد و از فرمول (نرخ برد * میانگین سود) - (نرخ باخت * میانگین ضرر) محاسبه میشود. یک پروفیت فکتور بزرگتر از ۱ مستقیماً به معنای Expectancy مثبت است. تحلیل پروفیت فکتور در کنار حداکثر دراداون (Maximum Drawdown) نیز حیاتی است. استراتژی میتواند پروفیت فکتور بالایی داشته باشد، اما در مسیر رسیدن به آن سود کلان، **دراداون (Drawdown)**های بسیار شدید و طولانیمدتی را تجربه کند که از نظر روانی برای سرمایهگذار غیرقابل تحمل یا از نظر مدیریت سرمایه (Money Management) خطرناک باشد.
تفسیر مقادیر مختلف Profit Factor: از زیاندهی تا بهینهسازی
تفسیر عدد نسبت پروفیت فکتور (Profit Factor) نیازمند درکی پلکانی و مبتنی بر ریسک است. هر بازهی عددی داستان متفاوتی را روایت میکند و تصمیمات مدیریتی خاصی را طلب مینماید.
- Profit Factor کمتر از ۱: این حالت نشاندهندهی یک استراتژی زیانده است. سیستم به ازای هر واحدی که ریسک میکند، کمتر از یک واحد سود کسب مینماید. به عبارت دیگر، مجموع زیانها از مجموع سودها بیشتر است. چنین استراتژیای در بلندمدت سرمایه را نابود میکند و نیاز به بازنگری اساسی در منطق ورود/خروج، مدیریت سرمایه یا پارامترهای حد ضرر (Stop Loss) و حد سود (Take Profit) دارد. عدد هرچه به صفر نزدیکتر باشد، فاجعه بارتر است.
- Profit Factor نزدیک به ۱ (مثلاً ۱.۰ تا ۱.۲): این محدوده، منطقهی خاکستری و خطرناک است. استراتژی ممکن است در بکتست (Backtest) نشان دهد که به زحمت سودده است. اما در دنیای واقعی، با اعمال هزینههای معاملاتی (کارمزد، اسپرد، لغزش یا Slippage)، به راحتی میتواند به زیر ۱ سقوط کند و زیانده شود. استراتژیهای با پروفیت فکتور در این محدوده معمولاً مقاومت کمی در برابر تغییرات بازار یا نویز دارند و استفاده از آنها ریسک بالایی محسوب میشود.
- Profit Factor بین ۱.۵ تا ۲: این محدوده، منطقهی استراتژیهای «خوب» و قابل قبول در نظر گرفته میشود. نشان میدهد که استراتژی لبه معاملاتی واضحی دارد و میتواند در شرایط واقعی، پس از کسر هزینهها، سودآور باشد. بسیاری از استراتژیهای معتبر و پایدار در بازار، پروفیت فکتوری در این محدوده دارند. این عدد نشان از تعادل نسبتاً مناسبی بین سود و زیان دارد.
- Profit Factor بالاتر از ۲: این اعداد، استراتژیهای «عالی» یا «بهطور بالقوه مشکوک» را نشان میدهند. یک پروفیت فکتور ۳ یا ۴ در بکتست بسیار جذاب است، اما باید با دقت و شک علمی زیاد بررسی شود. سوال کلیدی این است: آیا این لبه معاملاتی فوقالعاده ناشی از منطق قدرتمند استراتژی است، یا محصول بیشبرازش (Overfitting) روی دادههای تاریخی و تصادفی بودن نتایج است؟ استراتژیهای با پروفیت فکتور بسیار بالا معمولاً تعداد معاملات کمی دارند یا در یک شرایط بازار خاص (مانند یک روند شدید خاص) عملکرد استثنایی داشتهاند که ممکن است تکرار نشود.
- Profit Factor بینهایت: این حالت زمانی رخ میدهد که مخرج کسر (مجموع زیانها) صفر شود. یعنی در دورهی بکتست، حتی یک معاملهی زیانده وجود نداشته است. در نگاه اول این یک ربات رویایی است، اما در واقعیت، این قرمزترین پرچم ممکن است. چنین نتیجهای تقریباً همیشه نشاندهندهی خطایی در منطق بکتست (مثلاً Look-ahead Bias)، بیشبرازش شدید، یا استفاده از حد ضرر بسیار بزرگ (به نحوی که در تاریخچه فعال نشده) است. یک استراتژی واقعگرایانه در بازارهای پرنوسان، قطعاً معاملات بازنده خواهد داشت.
اشتباهات رایج و خطرناک در تفسیر Profit Factor
وسوسهی اتکا به یک عدد ساده برای قضاوت دربارهی پیچیدگیهای بازار، منجر به بروز اشتباهات متداولی در بین توسعهدهندگان و معاملهگران شده است. آگاهی از این دامها برای هر فرد فعال در حوزهی معاملات الگوریتمی ضروری است.
۱. تمرکز صرف بر Profit Factor و نادیده گرفتن سایر شاخصها: همانطور که پیشتر اشاره شد، پروفیت فکتور به تنهایی داستان کامل را روایت نمیکند. نادیده گرفتن حداکثر دراداون (Drawdown)، طولانیترین دورهی زیاندهی متوالی (Longest Losing Streak)، یا شارپ ریشو (Sharpe Ratio) میتواند فاجعهبار باشد. استراتژیای با پروفیت فکتور ۲.۵ اما دراداون ۵۰٪، ممکن است از نظر روانی غیرقابل اجرا باشد و سرمایهگذار را در میانهی راه وادار به توقف ضررده کند.
۲. تعمیم Profit Factor بکتست به آینده: این شاید بزرگترین و پرهزینهترین اشتباه باشد. فرض اینکه پروفیت فکتور محاسبهشده بر اساس دادههای گذشته، عیناً در آینده تکرار خواهد شد، یک خطای مهلک است. بازار پویا است، رقبا هوشمندتر میشوند، نقدینگی تغییر میکند و شرایط کلان اقتصادی متحول میگردد. پروفیت فکتور بکتست باید به عنوان یک «شاخص احتمالی» و نه یک «ضمانت قطعی» در نظر گرفته شود.
۳. بیتوجهی به حجم نمونه (تعداد معاملات): محاسبهی پروفیت فکتور بر اساس تعداد اندکی معامله (مثلاً ۲۰ معامله) کاملاً بیاعتبار است. نتایج چنین نمونهی کوچکی به شدت تحت تأثیر نوسانات تصادفی قرار دارد و قدرت آماری کافی برای استنباط در مورد لبهی واقعی استراتژی را ندارد. یک پروفیت فکتور عالی بر پایهی ۱۵ معامله، میتواند صرفاً شانس باشد. برای اطمینان نسبی، نیاز به صدها یا حتی هزاران معامله در بکتست است.
۴. محاسبه بدون در نظر گرفتن هزینههای واقعی معامله: بسیاری از بکتستهای اولیه، هزینههای واقعی مانند اسپرد ثابت، کارمزد متغیر صرافیها و لغزش (Slippage) را در نظر نمیگیرند. این هزینهها، به ویژه برای استراتژیهای اسکالپ یا High-Frequency، میتوانند پروفیت فکتور را به شکل چشمگیری کاهش داده و حتی یک استراتژی به ظاهر سودده را به زیانده تبدیل کنند. محاسبهی پروفیت فکتور باید پس از کسر یک برآورد محافظهکارانه از این هزینهها انجام شود.
۵. استفاده از Profit Factor برای مقایسهی مستقیم استراتژیهای ناهمگون: مقایسهی پروفیت فکتور یک استراتژی اسکالپ در بازار فارکس با یک استراتژی نوسانگیری در بورس تهران، مقایسهی سیب و پرتقال است. هر بازار، کلاس دارایی و تایمفریم، ویژگیهای ریسک و بازده خاص خود را دارد. پروفیت فکتور تنها زمانی برای مقایسه معنا دارد که استراتژیها در یک بازار، تایمفریم و شرایط مشابه آزمایش شده باشند.
تاثیر مخرب بیشبرازش (Overfitting) بر اعتبار Profit Factor در بکتست
بیشبرازش (Overfitting) به عنوان دشمن شمارهی یک توسعهدهندگان ربات معاملهگر (Trading Bot)، تأثیر مستقیم و ویرانگری بر شاخص نسبت پروفیت فکتور (Profit Factor) دارد. اوورفیتینگ زمانی رخ میدهد که یک مدل یا استراتژی معاملاتی آنقدر به دادههای آموزشی (تاریخی) خاص خود پیچیده شود که نه تنها الگوهای عمومی و قابل تکرار بازار را یاد بگیرد، بلکه «نویز»ها و رویدادهای تصادفی منحصر به فرد آن数据集 را نیز به عنوان قانون بپذیرد. نتیجه، ایجاد یک استراتژی است که روی دادههای گذشته عملکردی استثنایی و اغلب با پروفیت فکتور بسیار بالا دارد، اما در مواجهه با دادههای جدید (آینده یا Out-of-Sample) به شدت ضعیف عمل میکند و پروفیت فکتور آن به زیر ۱ سقوط میکند.
فرآیند بهینهسازی پارامترها، اگر بدون کنترل انجام شود، کوتاهترین مسیر برای رسیدن به بیشبرازش است. تصور کنید استراتژی شما دو پارامتر تنظیم دارد. شما این پارامترها را هزاران بار روی یک مجموعه دادهی تاریخی ۵ ساله تغییر میدهید تا به ترکیبی برسید که بالاترین پروفیت فکتور (مثلاً ۳.۸) را تولید میکند. به احتمال زیاد، شما به طور ناخواسته پارامترهایی را یافتهاید که به طور تصادفی با نوسانات خاص آن ۵ سال هماهنگ شدهاند. این پروفیت فکتور چشمگیر، یک «توهم آماری» است و نشاندهندهی لبهی واقعی استراتژی نیست.
راههای مقابله با این پدیده و رسیدن به یک پروفیت فکتور معتبرتر عبارتند از:
۱. تقسیم دادهها: دادههای تاریخی را به دو بخش «آموزش» (In-Sample) و «تست» (Out-of-Sample) تقسیم کنید. بهینهسازی فقط روی دادههای آموزش انجام شود و پروفیت فکتور نهایی باید بر اساس دادههای تست (که استراتژی آن را ندیده) گزارش شود. ۲. اعتبارسنجی متقابل (Cross-Validation): استفاده از تکنیکهایی مانند Walk-Forward Analysis که در آن بهینهسازی به طور متوالی روی پنجرههای متحرک زمانی انجام میشود و سپس روی دورهی بلافاصله پس از آن تست میشود. این روش شبیهسازی بهتری از عملکرد واقعی در طول زمان ارائه میدهد. ۳. سادهسازی استراتژی: از افزودن قواعد و شرایط بیش از حد به استراتژی خودداری کنید. یک استراتژی با منطق ساده و تعداد پارامتر کم، به مراتب مقاومتر در برابر بیشبرازش است. اگر افزایش پیچیدگی منجر به بهبود ناگهانی و چشمگیر پروفیت فکتور شود، شک کنید. ۴. تست روی چندین بازار یا دورههای مختلف: یک استراتژی robust باید بتواند در بازارهای مختلف (البته از یک نوع) یا در دورههای تاریخی متفاوت (مثلاً هم رونددار و هم رنج) پروفیت فکتور قابل قبولی ارائه دهد، نه فقط در یک دورهی طلایی خاص.
شکاف میان Profit Factor در بکتست و معاملات واقعی (Forward Test/Live)
حتی اگر از شر بیشبرازش (Overfitting) در امان باشیم و از کیفیت داده (Data Quality) بالا استفاده کنیم، همواره شکافی طبیعی و اغلب قابل توجه بین نسبت پروفیت فکتور (Profit Factor) گزارششده در بکتست (Backtest) و آنچه در معاملات واقعی (فوروارد تست یا لایو) مشاهده میشود، وجود دارد. درک دلایل این شکاف برای مدیریت انتظارات و مدیریت سرمایه (Money Management) محتاطانه حیاتی است.
۱. لغزش (Slippage): در بکتست، فرض معمول این است که معاملات دقیقاً در قیمت مورد نظر (مثلاً دقیقاً روی خط حد ضرر (Stop Loss)) اجرا میشوند. در واقعیت، به ویژه در مواقع نوسان بالا یا نقدشوندگی کم، اختلاف بین قیمت درخواستی و قیمت اجرا شده رخ میدهد. این لغزش معمولاً به میانگین ضررها اضافه و از میانگین سودها کاسته میشود، در نتیجه پروفیت فکتور واقعی کاهش مییابد.
۲. کارمزدهای واقعی: بکتست ممکن است کارمزدها را به صورت ساده یا حتی نادیده گرفته باشد. در عمل، کارمزدهای شبکه (گس)، اسپردهای متغیر صرافیها، و کارمزد معاملاتی، به طور مستقیم از سود ناخالص کاسته میشوند. این هزینههای ثابت، تأثیر بیشتری بر استراتژیهایی با پروفیت فکتور حاشیهای (نزدیک ۱) یا استراتژیهای کمبازده و پرتعداد دارند.
۳. تأخیر در اجرا (Latency): در بکتست، واکنش سیستم به سیگنال آنی فرض میشود. در دنیای واقعی، تأخیر در دریافت داده از صرافی، پردازش الگوریتم، ارسال دستور و تأیید آن وجود دارد. این تأخیر میتواند باعث شود ورود یا خروج در قیمتی به مراتب بدتر از نقطهی نظری انجام شود، که باز هم بر پروفیت فکتور تأثیر منفی میگذارد.
۴. روانشناسی بازار و تأثیر سفارشات بزرگ: بکتست معمولاً تأثیر سفارشات خود استراتژی بر بازار را در نظر نمیگیرد. یک ربات معاملهگر (Trading Bot) با سرمایهی کلان ممکن است با ثبت یک سفارش بزرگ، خود باعث حرکت قیمت بر خلاف جهت مورد نظر شود (به ویژه در بازارهای با عمق کم). این پدیده در بکتست مدل نمیشود اما در واقعیت میتواند پروفیت فکتور را کاهش دهد.
۵. تغییر رژیم بازار: مهمترین عامل این شکاف، ذات غیرتکرارشوندهی تاریخ است. بازارها دورههای مختلفی را تجربه میکنند: روندهای قوی، رنجهای طولانی، نوسان بالا، نوسان کم. پروفیت فکتور یک استراتژی در دورههای مختلف میتواند به شدت متغیر باشد. بکتست بر روی یک رژیم خاص از گذشته اجرا شده، اما آینده ممکن است رژیم متفاوتی داشته باشد. بنابراین، یک استراتژی که در بکتست پروفیت فکتور ۲.۵ داشته، ممکن است در شش ماه آیندهی بازار که وارد فاز رنج پیچیدهای شده، پروفیت فکتور ۱.۱ داشته باشد. به همین دلیل است که انجام فوروارد تست (Forward Test) بر روی دادههای زنده اما با سرمایهی مجازی، قبل از اجرای واقعی، یک گام ضروری است. پروفیت فکتور حاصل از فوروارد تست، معیار واقعیتری برای تصمیمگیری نهایی است.
نقش حیاتی کیفیت دادههای تاریخی در شکلگیری Profit Factor معتبر
شالودهی هر بکتست (Backtest) معتبر و در نتیجه هر محاسبهی قابل اتکای نسبت پروفیت فکتور (Profit Factor)، کیفیت داده (Data Quality) است. دادههای تاریخی آلوده، ناقص یا غیرواقعی، منجر به خروجیهای گمراهکننده و در نهایت تصمیمهای سرمایهگذاری فاجعهبار میشود. عبارت «ورودی بد، خروجی بد» (Garbage In, Garbage Out) در اینجا به کاملترین معنا خود را نشان میدهد.
۱. دادههای تعدیلنشده (Adjusted Data): دادههای قیمت سهام باید برای رویدادهای شرکتی مانند افزایش سرمایه، تقسیم سود (سهام جایزه) و تجزیه سهام (Stock Split) تعدیل شده باشند. استفاده از دادههای خام (تعدیلنشده) باعث ایجاد شکافهای مصنوعی (Gap) در نمودار قیمت میشود که در واقعیت وجود نداشته است. یک استراتژی که بر اساس شکست سطوح کار میکند، ممکن است در بکتست به دلیل این شکافهای کاذب، سیگنالهای ورود/خروج غیرواقعی دریافت کند و پروفیت فکتور آن به شدت تحریف شود (چه به صورت مثبت و چه منفی).
۲. نبود دادههای اساسی (Missing Data): در تایمفریمهای پایین (مثلاً ۱ دقیقه)، ممکن است برای برخی بازههای زمانی (مثلاً آخر هفتهها، تعطیلات، یا زمانهای بیمعامله) دادهای وجود نداشته باشد. نحوهی برخورد موتور بکتست با این خلأها مهم است. اگر این دورهها به سادگی حذف شوند و نمودار زمان به صورت پیوسته در نظر گرفته شود، ممکن است استراتژی در بکتست در زمانهایی معامله کند که در واقعیت بازار بسته بوده است. این نیز پروفیت فکتور را غیرواقعی میسازد.
۳. دادههای OHLC در مقابل تیک دیتا: اکثر بکتستها از دادههای شمعی (OHLC: Open, High, Low, Close) استفاده میکنند. این دادهها اطلاعات درون شمع (مثلاً نوسانات ریز بین High و Low) را از دست میدهند. برای استراتژیهایی که بر اساس شکست سطوح با سرعت بالا عمل میکنند (مانند اسکالپ)، این یک محدودیت بزرگ است. ممکن است در بکتست فرض شود که حد ضرر در نقطهای خاص فعال شده، در حالی که در واقعیت (با دادههای تیک)، قیمت ممکن است آن سطح را لمس کرده و بازگشته باشد. این تفاوت میتواند پروفیت فکتور را در بکتست بهتر یا بدتر از واقعیت نشان دهد. برای استراتژیهای حساس، استفاده از بکتست بر اساس تیک دیتا (اگر ممکن باشد) دقیقتر است.
۴. Survivorship Bias: این یک خطای سیستماتیک خطرناک است که زمانی رخ میدهد که مجموعه دادهها فقط شامل داراییهایی باشد که امروز وجود دارند و شرکتها یا ارزهایی که در گذشته حذف شدهاند (مثلاً ورشکسته شدهاند) را شامل نشود. بکتست بر روی چنین دادههایی، ریسک واقعی سرمایهگذاری در یک سبد را دستکم میگیرد و پروفیت فکتور را به صورت غیرواقعبینانهای بالا نشان میدهد. استفاده از دادههای شامل داراییهای حذفشده (پانل دیتا) برای تست استراتژیهای سبدی ضروری است.
۵. کیفیت دادههای حجم معاملات: برای استراتژیهایی که از اندیکاتورهای مبتنی بر حجم (مثل Volume Profile, OBV) استفاده میکنند، دقت دادههای حجم حیاتی است. دادههای حجم در برخی منابع یا برای برخی بازارها (مثل فارکس که بازار متمرکزی ندارد) ممکن است نادرست یا ناقص باشند. بکتست بر اساس حجمهای نادرست، پروفیت فکتور بیمعنا تولید میکند.
مثالهای مفهومی از استراتژیهای با Profit Factor فریبنده
برای درک عمیقتر خطرات، به دو مثال مفهومی از استراتژیهایی که نسبت پروفیت فکتور (Profit Factor) بالایی در بکتست (Backtest) نشان میدهند اما حاوی ریسکهای پنهان مخرب هستند، میپردازیم.
مثال اول: استراتژی شکارچی سقوط (The Crash Hunter)
این استراتژی فرضی بر روی سهام یک شرکت فعال در بورس تهران طراحی شده. منطق استراتژی: هرگاه سهم بیش از ۱۵٪ در یک روز سقوط کرد (یک کندل قوی نزولی)، در收盘 همان روز خرید انجام میدهد و یک حد سود (Take Profit) ۵٪ و یک حد ضرر (Stop Loss) ۱۵٪ (از نقطه ورود) قرار میدهد. استراتژی بر روی دادههای ۵ سال گذشته تست شده است.
دیدگاهها (0)