Freqtrade چیست؟ معماری عملی یک سیستم ترید خودکار، نه یک دستگاه پول‌سازی
مقاله حسین نریمانی ۱۴۰۵/۰۵/۱۴ Quant System Design

Freqtrade چیست؟ معماری عملی یک سیستم ترید خودکار، نه یک دستگاه پول‌سازی

بیشتر افراد Freqtrade را با «ربات ترید» اشتباه می‌گیرند.Freqtrade در اصل یک چارچوب اجرای سیستماتیک است. اگر سیستم تصمیم‌گیری، کنترل ریسک و عملیات ندارید، فقط خطاها را خودکار می‌کنید.Freqtrade دقیقاً چیست؟Freqtrade یک...

بیشتر افراد Freqtrade را با «ربات ترید» اشتباه می‌گیرند.

Freqtrade در اصل یک چارچوب اجرای سیستماتیک است. اگر سیستم تصمیم‌گیری، کنترل ریسک و عملیات ندارید، فقط خطاها را خودکار می‌کنید.

Freqtrade دقیقاً چیست؟

Freqtrade یک چارچوب متن‌باز (Open Source) مبتنی بر Python برای طراحی، آزمون، بهینه‌سازی و اجرای استراتژی‌های ترید خودکار در بازار رمزارز است.

این ابزار از بک‌تست (Backtesting)، اجرای آزمایشی بدون سرمایه واقعی (Dry Run)، اجرای واقعی، مدیریت سرمایه، بهینه‌سازی پارامترها با Hyperopt و کنترل از طریق WebUI یا Telegram پشتیبانی می‌کند. مستندات رسمی Freqtrade آن را به‌عنوان یک بات قابل‌اتصال به صرافی‌های بزرگ معرفی می‌کند.

[1]

اما ارزش اصلی آن در اتصال به صرافی نیست. ارزش آن در ایجاد یک چرخه قابل‌تکرار برای تبدیل فرضیه معاملاتی به عملیات قابل‌مشاهده است.

تعریف کوتاه برای تصمیم‌گیران

Freqtrade یک «موتور معاملاتی کامل» نیست. یک لایه اجرای قابل‌برنامه‌ریزی برای سیستم معاملاتی شماست.

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

مسئله‌ای که اغلب نادیده گرفته می‌شود

ساخت یک سیگنال خرید ساده است. ساخت سیستمی که در داده واقعی، هزینه واقعی و شرایط غیرعادی بازار دوام بیاورد سخت است.

بسیاری از افراد چند اندیکاتور را ترکیب می‌کنند، یک بک‌تست مثبت می‌بینند و تصور می‌کنند مسئله حل شده است. آن‌ها معمولاً کارمزد، لغزش قیمت (Slippage)، نقدشوندگی، تأخیر API، تغییر رژیم بازار و بیش‌برازش را دیر می‌بینند.

یک نمودار سودآور، اثبات کیفیت سیستم نیست. فقط یک خروجی تاریخی است.

اشتباه رایج: ربات را با استراتژی یکی دانستن

ربات وظیفه اجرا دارد. استراتژی وظیفه تصمیم دارد. لایه ریسک وظیفه محدودکردن زیان دارد.

وقتی این سه لایه در یک فایل و با چند شرط درهم‌تنیده ساخته شوند، تغییر دادن سیستم خطرناک می‌شود. هیچ‌کس دقیقاً نمی‌داند افت سرمایه از منطق ورود آمده یا از سایزبندی، خروج، یا اجرای سفارش.

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

نگاه معماری به Freqtrade

از دید یک Quant System Designer، Freqtrade باید بخشی از یک معماری پنج‌لایه باشد.

این مدل به شما کمک می‌کند محل هر تصمیم را مشخص کنید. همچنین باعث می‌شود تغییر در یک لایه، بقیه سیستم را بی‌دلیل تخریب نکند.

لایه اول: داده بازار

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

Freqtrade داده تاریخی را برای بک‌تست دریافت و نگهداری می‌کند، اما باید خودتان کامل‌بودن بازه‌ها، اختلاف تایم‌فریم‌ها و تغییرات نمادهای صرافی را کنترل کنید. بک‌تست به داده تاریخی در دسترس نیاز دارد.

[2]

لایه دوم: منطق استراتژی

در Freqtrade، استراتژی معمولاً یک کلاس Python است که شرایط ورود، خروج و شاخص‌های موردنیاز را تعریف می‌کند.

این لایه باید به یک پرسش روشن پاسخ دهد: «در چه شرایطی انتظار آماری من برای ورود مثبت است؟» نه اینکه «کدام ترکیب اندیکاتورها در گذشته سود بیشتری نشان داد؟»

لایه سوم: کنترل ریسک

حد ضرر (Stoploss)، اندازه موقعیت، تعداد معاملات هم‌زمان و محدودیت مواجهه با بازار، اجزای سیستم ریسک هستند.

مستندات Freqtrade صریحاً تعیین Stoploss را برای حفاظت سرمایه در حرکت‌های شدید خلاف جهت توصیه می‌کند.

[3]

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

[4]

لایه چهارم: اجرا و اتصال صرافی

اینجا فاصله بین نظریه و بازار مشخص می‌شود. سفارش شما ممکن است با قیمت فرض‌شده اجرا نشود یا اصلاً اجرا نشود.

Freqtrade از صرافی‌های متعدد در بازار Spot و Futures پشتیبانی می‌کند، اما پشتیبانی فنی به‌معنای یکسان‌بودن کیفیت اجرای سفارش در همه صرافی‌ها نیست.

[5]

لایه پنجم: مشاهده‌پذیری و عملیات

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

شما باید بدانید چرا معامله باز شد، چرا بسته شد، کدام محدودیت فعال شد، API چه خطایی داد و آیا رفتار زنده با فرضیات بک‌تست هم‌خوان است.

چرخه درست ساخت با Freqtrade

Freqtrade زمانی ارزش دارد که به‌عنوان یک چرخه اعتبارسنجی استفاده شود، نه یک ابزار اجرای سریع.

  1. فرضیه بسازید: یک رفتار بازار قابل‌بیان تعریف کنید؛ مثلاً بازگشت کوتاه‌مدت پس از جهش غیرعادی حجم.
  2. داده را بررسی کنید: نمادها، بازه زمانی، تایم‌فریم و کیفیت داده را مشخص کنید.
  3. استراتژی حداقلی بنویسید: ابتدا منطق ورود و خروج را ساده نگه دارید.
  4. بک‌تست اجرا کنید: سود تنها معیار نیست؛ افت سرمایه، تعداد معاملات و پایداری دوره‌ها را بررسی کنید.
  5. اعتبارسنجی خارج از نمونه انجام دهید: داده‌ای را که برای طراحی استفاده کرده‌اید، برای قضاوت نهایی استفاده نکنید.
  6. Dry Run اجرا کنید: بات را با سرمایه شبیه‌سازی‌شده در شرایط زنده رصد کنید.
  7. استقرار محدود داشته باشید: سرمایه واقعی را مرحله‌ای وارد کنید، با سقف زیان روشن.

Freqtrade این چرخه را با توسعه استراتژی، دریافت داده، بک‌تست، Hyperopt، Dry Run و اجرای واقعی پشتیبانی می‌کند.

[1]

مثال عملی: چرا بک‌تست کافی نیست

فرض کنید استراتژی شما روی BTC/USDT در تایم‌فریم پنج‌دقیقه‌ای، در بک‌تست یک‌ساله، 28 درصد بازدهی نشان می‌دهد.

این عدد بدون پاسخ به چند سؤال تقریباً بی‌ارزش است. کارمزدها چقدر بوده‌اند؟ آیا قیمت ورود و خروج واقع‌گرایانه مدل شده؟ چند معامله در شرایط کم‌نقدشونده انجام شده؟ افت سرمایه در بدترین ماه چقدر بوده؟

حالا تصور کنید استراتژی در Dry Run، به‌دلیل تأخیر داده یا تفاوت دفتر سفارش، تنها نیمی از ورودهای مطلوب را دریافت می‌کند. مدل شما لزوماً غلط نیست؛ اما اجرای آن با فرض بک‌تست یکی نیست.

مکانیزم مهم: جداسازی عملکرد استراتژی از عملکرد اجرا

برای هر نسخه استراتژی، سه گزارش جداگانه نگه دارید: نتیجه بک‌تست، نتیجه Dry Run و نتیجه اجرای محدود واقعی.

اگر بک‌تست خوب و Dry Run ضعیف است، مسئله احتمالاً در اجرا، داده زنده، سفارش‌گذاری یا هزینه‌هاست. اگر هر دو ضعیف‌اند، فرضیه استراتژی نیاز به بازبینی دارد.

Hyperopt: ابزار مفید، دام بیش‌برازش

Hyperopt در Freqtrade می‌تواند پارامترهای ورود، خروج، ROI، Stoploss و Trailing Stoploss را بهینه کند.

[1]

این قابلیت مفید است. اما اگر فضای جست‌وجو بزرگ و داده محدود باشد، Hyperopt اغلب یک گذشته بسیار زیبا و یک آینده بسیار ضعیف تولید می‌کند.

چه زمانی Hyperopt مفید است؟

  • وقتی فرضیه اصلی قبلاً با منطق بازار پشتیبانی شده است
  • وقتی محدوده پارامترها کوچک و قابل‌توضیح است
  • وقتی داده‌های آموزش و اعتبارسنجی از هم جدا هستند
  • وقتی معیار ارزیابی فقط سود ناخالص نیست
  • وقتی نتیجه روی چند دوره و چند دارایی بررسی می‌شود

چه زمانی Hyperopt خطرناک است؟

  • وقتی صدها پارامتر را بدون منطق اقتصادی جست‌وجو می‌کنید
  • وقتی تنها یک بازار صعودی را برای آموزش انتخاب کرده‌اید
  • وقتی هدف‌تابع فقط بیشترین سود را دنبال می‌کند
  • وقتی بهترین تنظیمات را بدون آزمون خارج از نمونه وارد اجرای واقعی می‌کنید

بهینه‌سازی باید عدم‌قطعیت را کم کند. اگر فقط نمودار گذشته را زیباتر کند، هزینه آینده را بالا می‌برد.

مدل تصمیم برای انتخاب Freqtrade

Freqtrade برای هر مسئله‌ای انتخاب مناسب نیست. این جدول تصمیم را سریع‌تر می‌کند.

وضعیتFreqtrade انتخاب خوبی است؟دلیل
استراتژی‌های قانون‌محور رمزارزبلهساختار Python، بک‌تست، Dry Run و اتصال صرافی در یک چارچوب قرار می‌گیرند.
تست سریع ایده‌های تکنیکالبله، با احتیاطسرعت آزمایش بالا است، اما بک‌تست جای اعتبارسنجی عملیاتی را نمی‌گیرد.
بازارسازی با فرکانس بسیار بالامعمولاً خیراین حوزه به زیرساخت تأخیر بسیار پایین و کنترل دقیق دفتر سفارش نیاز دارد.
تیم بدون مالک فنیمشروطاجرای قابل‌اعتماد به مدیریت کلیدها، سرور، لاگ‌ها و به‌روزرسانی نیاز دارد.
سیستم چندصرافی در مقیاس کسب‌وکارمشروطFreqtrade می‌تواند لایه اجرا باشد، اما کنترل ریسک و مشاهده‌پذیری خارجی لازم است.

راهنمای پیاده‌سازی حرفه‌ای

برای استفاده جدی از Freqtrade، نصب بات پایان کار نیست. باید محیط اجرا را مثل یک سیستم عملیاتی طراحی کنید.

1. محیط را قابل‌بازتولید بسازید

از Docker استفاده کنید. نسخه Freqtrade، نسخه Python، وابستگی‌ها و تنظیمات باید قابل‌ردیابی باشند.

یک تغییر کوچک در وابستگی یا داده نباید باعث شود نتوانید نتیجه قبلی را بازتولید کنید.

2. کلیدهای API را از کد جدا کنید

کلید API نباید داخل فایل استراتژی یا مخزن Git قرار بگیرد. از متغیرهای محیطی، Secret Manager یا فایل‌های خارج از مخزن استفاده کنید.

کلید باید حداقل دسترسی لازم را داشته باشد. برداشت وجه را غیرفعال کنید، مگر اینکه دلیل عملیاتی بسیار مشخصی دارید.

3. استراتژی را نسخه‌بندی کنید

هر تغییر در منطق، پارامتر، تایم‌فریم یا فهرست دارایی باید یک نسخه مشخص داشته باشد.

نام‌گذاری ساده کافی است: mean_reversion_v1_3. مهم‌تر از نام، ثبت فرضیه و نتیجه هر نسخه است.

4. گزارش عملیاتی بسازید

حداقل این شاخص‌ها را روزانه ثبت کنید: سود و زیان، افت سرمایه، معاملات باز، نرخ خطای API، سفارش‌های لغوشده، تأخیر و اختلاف اجرای واقعی با انتظار.

Freqtrade امکان کنترل و پایش از طریق Telegram یا WebUI را فراهم می‌کند، اما داشبورد داخلی جای مانیتورینگ عملیاتی کامل را نمی‌گیرد.

[1]

5. Kill Switch داشته باشید

هر سیستم واقعی باید یک مسیر توقف روشن داشته باشد. این توقف می‌تواند بر اساس افت سرمایه روزانه، خطای تکراری صرافی، نوسان غیرعادی یا انحراف عملکرد باشد.

باتی که نمی‌توانید سریع و مطمئن متوقف کنید، هنوز برای سرمایه واقعی آماده نیست.

خطاهای رایج در Freqtrade

استفاده از استراتژی‌های آماده اینترنتی

کد آماده معمولاً زمینه طراحی خود را از دست داده است. ممکن است برای بازار، صرافی، زمان یا هزینه‌های کاملاً متفاوتی نوشته شده باشد.

استراتژی را به‌عنوان فرضیه ببینید، نه دارایی آماده اجرا.

اعتماد به سود بک‌تست

بک‌تست ابزار حذف ایده‌های ضعیف است. ابزار اثبات سودآوری آینده نیست.

هرچه پارامترهای بیشتری تنظیم کرده‌اید، نیاز شما به آزمون خارج از نمونه بیشتر است.

ندیدن ریسک هم‌بستگی

خرید هم‌زمان چند آلت‌کوین ممکن است روی کاغذ تنوع به‌نظر برسد. در ریزش بازار، اغلب همه آن‌ها یک معامله بزرگ با نام‌های مختلف هستند.

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

نادیده‌گرفتن هزینه عملیات

سرور، نگهداری، هشدار، به‌روزرسانی، بررسی خطا و زمان تیم هزینه دارند.

اگر سود موردانتظار استراتژی از این هزینه‌ها کوچک‌تر است، اتوماسیون تصمیم اقتصادی مناسبی نیست.

محدودیت‌ها و ملاحظات

Freqtrade یک ابزار متن‌باز قدرتمند است، اما جایگزین زیرساخت سازمانی کامل نیست.

برای سرمایه بزرگ‌تر یا ساختار چنداستراتژی، به سرویس‌های مستقل برای داده، ریسک پرتفوی، ثبت رویداد، هشدار، مدیریت Secrets و گزارش‌گیری نیاز خواهید داشت.

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

[5]

برداشت‌های کلیدی

  • Freqtrade یک چارچوب اجرای سیستماتیک است، نه دستگاه تولید پول.
  • مزیت اصلی آن، چرخه منظم فرضیه، بک‌تست، Dry Run و اجرای محدود است.
  • بک‌تست مثبت بدون آزمون خارج از نمونه و Dry Run، شواهد کافی نیست.
  • Hyperopt باید برای پالایش فرضیه استفاده شود، نه کشف تصادفی سود گذشته.
  • ریسک، اجرا و مشاهده‌پذیری باید خارج از منطق سیگنال دیده شوند.
  • برای مقیاس کسب‌وکار، Freqtrade باید بخشی از یک معماری عملیاتی بزرگ‌تر باشد.

پرسش‌های متداول

Freqtrade چیست؟

Freqtrade یک چارچوب متن‌باز Python برای ساخت، بک‌تست، بهینه‌سازی و اجرای استراتژی‌های ترید خودکار رمزارز است. این ابزار از Dry Run، مدیریت سرمایه و اتصال به صرافی‌های متعدد پشتیبانی می‌کند.

[1]

آیا Freqtrade برای افراد غیر برنامه‌نویس مناسب است؟

برای آزمایش و اجرای تنظیمات پایه می‌تواند قابل‌استفاده باشد، اما طراحی و نگهداری حرفه‌ای استراتژی به درک Python، داده، ریسک و عملیات سرور نیاز دارد. بدون این لایه‌ها، ریسک عملیاتی بالا می‌رود.

آیا بک‌تست Freqtrade سودآوری آینده را تضمین می‌کند؟

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

Dry Run در Freqtrade چیست؟

Dry Run حالت اجرای شبیه‌سازی‌شده با داده و شرایط زنده است که بدون استفاده از سرمایه واقعی، رفتار سفارش‌گذاری و منطق بات را آزمون می‌کند. Freqtrade اجرای Dry Run و اجرای واقعی را به‌صورت جداگانه پشتیبانی می‌کند.

[1]

آیا Freqtrade برای Futures مناسب است؟

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

[5]

مهم‌ترین کنترل ریسک در Freqtrade چیست؟

یک کنترل کافی نیست. Stoploss، اندازه موقعیت، سقف معاملات هم‌زمان، محدودیت افت سرمایه و Kill Switch باید با هم کار کنند. Stoploss به‌تنهایی جای سیستم ریسک را نمی‌گیرد.

Freqtrade زمانی مفید می‌شود که به آن مثل یک سیستم نگاه کنید.

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

آماده‌ای این ایده را روی محصول خودت اجرا کنی؟ جلسه راهبردی رزرو کن و نقشه مسیر اسپرینت بعدی را دقیق کن.

نظرات (0)

اولین نفری باشید که نظر می‌دهد.
ورود / ثبت‌نام