ربات مارتینگل فیوچرز توبیت
Toobit انجام شده برای کارفرما

ربات مارتینگل فیوچرز توبیت

ربات مارتینگل فیوچرز توبیت برای مارت زدن خودکار روی قراردادهای دائمی: پنل کنترل دسکتاپ، تنظیمات رمزنگاری‌شده و ۳۴۲ تست خودکار روی ۸۲٪ کد.

اسکرول کنید

گالری تصاویر

6 تصویر

درباره ربات مارتینگل فیوچرز توبیت

جزئیات و توضیحات کامل پروژه

3 دقیقه مطالعه

مارت زدن در توبیت یعنی چه؟

«مارت زدن» همان چیزی است که در متون فنی مارتینگل نامیده می‌شود: وقتی قیمت خلاف پوزیشن حرکت می‌کند، به‌جای پذیرفتن ضرر، یک سفارش میانگین‌گیری پایین‌تر گذاشته می‌شود تا میانگین قیمت ورود پایین بیاید و معامله زودتر به سود برسد.

روی فیوچرز دائمی USDT-M صرافی توبیت این کار دستی هم شدنی است، ولی سه مشکل دارد: باید همیشه پای سیستم باشی، باید هر پله را بدون خطای محاسبه بگذاری، و باید دقیقاً در لحظه‌ای تصمیم بگیری که بازار تند حرکت می‌کند.

Toobit Gambler همین نردبان را خودکار می‌کند: پوزیشن باز می‌کند، یک حد سود بالای آن و یک سفارش میانگین‌گیری زیر آن می‌گذارد، و با هر بار پر شدن، نردبان را یک پله جلو می‌برد.

سخت‌ترین مسئله: کدام سفارش پر شد؟

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

نسخه‌ی اولیه قیمت پر شدن را با عددی که در حافظه داشت مقایسه می‌کرد و همین، دو باگ واقعی روی حساب زنده ساخت. یک بار سفارشی که روی ۷۱٫۲۴ گذاشته شده بود در حافظه ۷۱٫۰ ثبت شده بود، پر شدنش با هیچ‌چیز تطبیق نخورد، پوزیشن دو برابر شد و چهار ساعت و چهل دقیقه بی‌سرپرست ماند.

راه‌حل این بود که خودِ سفارش بگوید کیست. حالا هر سفارش با شناسه‌ای مثل Toobit-Gambler-MART-48213 ثبت می‌شود و صرافی همان را در گزارش اجرا برمی‌گرداند. دیگر حدس زدنی در کار نیست. کنارش یک شمارنده‌ی ترتیبی هست که هر رویداد پر شدن فقط یک بار مصرف می‌شود، تا سطحی که دوباره روی همان قیمت گذاشته شده بلافاصله دوباره شلیک نکند.

بازنویسی، بدون اینکه رفتار معاملاتی عوض شود

ربات از چند اسکریپت تخت به یک پکیج شش‌لایه بازنویسی شد، با یک قید سخت‌گیرانه: رفتار معاملاتی نباید تغییر کند. ریاضیات، گردکردن‌ها و ترتیب شاخه‌ها دست‌نخورده ماندند و هر تغییر رفتاری، تغییری آگاهانه و تست‌شده بود.

نتیجه ۳۴۲ تست خودکار است که همگی سبز می‌شوند و ۸۲٪ کد را پوشش می‌دهند. لایه‌ی دامنه صددرصد پوشش دارد.

زنده ماندن ربات، نه فقط کرش نکردن

شکست واقعی یک ربات معامله‌گر «کرش کردن» نیست. این است که کار کند در حالی که دنیا جلو رفته.

یک بار سوکت تمیز بسته شد و ترد مُرد، ولی پیام «کلید تازه شد» همچنان چاپ می‌شد و دو ساعت‌ونیم مرگ را پنهان کرد. حالا یک ترد ناظر با تأخیر نمایی نشست را از نو برقرار می‌کند، و هر سفارشی که در فاصله‌ی قطعی پر شده باشد از تاریخچه‌ی REST بازیابی و دوباره وارد همان منطق همیشگی می‌شود.

پنل کنترل و امنیت کلید API

روی همه‌ی این‌ها یک پنل کنترل PySide6 نشسته که هسته‌ی معاملاتی را اصلاً دست نمی‌زند: همان config.toml و .env را ویرایش می‌کند و با همان مدل‌های خود ربات اعتبارسنجی می‌شود.

تنظیمات، شامل کلید API، در یک فایل AES-256-GCM نگهداری می‌شود که کلیدش رمز ورود کاربر است. نسخه‌ای که از روی دستگاه کپی شود، بدون آن رمز به‌درد نمی‌خورد.

یک هشدار لازم درباره‌ی مارت زدن

مارت زدن ریسک را حذف نمی‌کند، جابه‌جایش می‌کند: نرخ برد بالا می‌رود و اندازه‌ی ضررِ نهایی هم بالا می‌رود. این ربات همان استراتژی را بدون خطای انسانی و بدون جاماندن اجرا می‌کند، نه اینکه ریاضیاتش را عوض کند.

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

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

ویژگی‌های ربات مارتینگل فیوچرز توبیت

آنچه این پروژه ارائه می‌دهد

12 مورد

نردبان مارتینگل با حد سود، میانگین‌گیری و خروج، روی فیوچرز دائمی USDT-M

شناسهٔ سفارش نقش‌دار: هر سفارش می‌گوید کدام پلهٔ نردبان است

مصرف یک‌بارهٔ رویداد پر شدن، برای جلوگیری از شلیک دوباره روی یک قیمت

ترد ناظر وب‌سوکت با اتصال مجدد و تأخیر نمایی از ۱ تا ۶۰ ثانیه

بازیابی سفارش‌های پر شده در فاصلهٔ قطعی، از تاریخچهٔ REST

اندازه‌گذاری بر حسب دلار، با تبدیل در قیمت خود هر سفارش برای حذف باقی‌مانده

پنل کنترل دسکتاپ با ویرایشگر نردبان بدون محدودیت سطح

ذخیرهٔ رمزنگاری‌شدهٔ تنظیمات با AES-256-GCM و کلید مشتق از رمز ورود

دروازهٔ ورود با هش PBKDF2 و ۲۰۰ هزار تکرار، پیش از ساخت پنجرهٔ اصلی

نمونهٔ محاسبه‌شدهٔ زنده زیر هر فیلد، به‌جای راهنمای جداگانه

چرخش لاگ به ازای هر اجرا، با نگهداری پنج اجرای اخیر

نصاب ویندوز تک‌کلیکی با Nuitka و Inno Setup

چالش‌های ربات مارتینگل فیوچرز توبیت

5 مورد
1

گزارش پر شدن سفارش نمی‌گوید کدام سفارش بود، و مقایسهٔ قیمت جواب نمی‌داد.

2

دو سفارش می‌توانستند روی یک قیمت بنشینند و پر شدن یکی به حساب دیگری نوشته شود.

3

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

4

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

5

صرافی رد شدن یک سفارش را داخل پاسخ موفق HTTP 200 برمی‌گرداند.

راه‌حل‌های فنی

5 راه‌حل

نقش هر سفارش داخل شناسهٔ کلاینت آن قرار گرفت؛ صرافی همان را برمی‌گرداند.

شمارندهٔ ترتیبی و مصرف یک‌باره، تا هیچ رویدادی دو بار حساب نشود.

ترد ناظر که پس از هر پایان نشست، با کلید تازه و تأخیر نمایی وصل می‌شود.

انتشار پنجرهٔ قطعی هنگام اتصال مجدد و بازیابی سفارش از تاریخچهٔ REST.

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

نتایج ربات مارتینگل فیوچرز توبیت

آنچه این پروژه در عمل به دست آورد

5 مورد

۳۴۲ تست خودکار، همگی سبز، در کمتر از ده ثانیه

۸۲٪ پوشش کد و ۱۰۰٪ پوشش لایهٔ دامنه

نسبت ۰٫۸۵ به ۱ خط تست به خط کد

۱۴ نقص واقعی شناسایی‌شده از لاگ اجرای زنده، هر کدام با تست رگرسیون

کلید API دیگر روی دیسک به‌صورت متن ساده ذخیره نمی‌شود

جزئیات پروژه

مشتری آقای واحدی
پلتفرم Toobit
دسته‌بندی انجام شده برای کارفرما
مدت زمان 1 ماه

آمار و عملکرد

  • 342 Automated Tests
  • 82٪ Code Coverage
  • 93.8% Type Coverage
  • 37 Moudules
  • 0.85:1 Test-to-Code Ratio
  • 94٪ Strategy Engine Coverage

ادامه‌ی مسیر

نمونه‌کار ربات معامله‌گر خودکار کوتکس اتوماسیون کامل یک پلتفرم معاملاتی بدون API: ۹ استراتژی لایه‌بندی‌شده بر اساس وین‌ریت، نردبان مارتینگل پله‌به‌پله و لایسنس قفل‌شده روی سخت‌افزار. نمونه‌کار کپی سیگنال تلگرام در متاتریدر یک سیگنال از کانال تلگرامِ خودِ کاربر، هم‌زمان روی همهٔ حساب‌های متاتریدر او اجرا می‌شود؛ با تسویه به‌ازای هر اجرای تأییدشده، ۱٬۵۰۲ تست و ۹۱٪ پوشش کد. نمونه‌کار پنل فراز گلد فرازگلد تریدر: سیگنال معامله‌گر لحظه‌ای با وب‌سوکت به اپلیکیشن دسکتاپ می‌رسد و خودکار همراه با حد ضرر، چند حد سود پلکانی و ریسک‌فری روی حساب کاربر اجرا می‌شود. مقاله الگوبید؛ جایی که علم و الگوریتم به هم می‌رسند الگوبید؛ پیوند دانش الگوریتمی با واقعیت بازار. توسعه سیستم‌های معاملاتی پایدار، شفاف و علمی برای تریدرهایی که به عملکرد بلندمدت فکر می‌کنند. مقاله استیتمنت معاملاتی‌ات چه چیزی درباره‌ی رفتارت لو می‌دهد؟ دو تریدر با نرخ برد یکسان، یکی ۱۸٪ سود و دیگری ۱۱٪ ضرر. تفاوت در چیزی است که نرخ برد نشان نمی‌دهد.