3 نوامبر 2026 · اجرا

ما یک معاملهٔ بیسیس را پیپرترید کردیم. یک لگ پر شد.

ما یک معاملهٔ بیسیس را پیپرترید کردیم. یک لگ پر شد.

تابع enter_pack نام داشت. همان باید هشدار می‌بود. یک ایجنت پژوهشی یک کش‌اند‌کری BTC نوشته بود: وقتی پرپچوال بیش از 8 بیسیس پوینت بالاتر از اسپات معامله می‌شد، اسپات بخر، پرپ را شورت کن، بنشین. فاندینگ و بیسیس بقیه را می‌کردند. بک‌تست هر دو لگ را در همان میلی‌ثانیه پر می‌کرد، روی مید، به‌علاوه یک تیک تعارف. منحنی دارایی یک راه‌پله بود. هیچ‌کس هیجان‌انگیزش نمی‌خواند. همان نقطهٔ فروشش بود.

دوشنبه بردیمش روی پیپر.

دوشنبه: پکی که همیشه پر می‌شد

اولین سیگنال ساعت 11:17 UTC نشست. بیسیس روی صفحه 9.4 bps بود، پرپ گران. در بک‌تست، enter_pack 2 پرشدگی و باقیماندهٔ 0 برگرداند. در پیپر یک پرشدگی اسپات 0.40 BTC روی ask برگرداند، و یک شورت نشسته روی پرپ که معامله نشد.

اسپات کارمزد تیکر 4 bp و حدود 1 bp اسپرد پرداخته بود. قیمت پرپی که می‌خواستیم هنوز روی بوک بود، بعد نبود. 20 ثانیه بعد بیسیس اعلام‌شده 5 bps بود، چون تازه اسپات را لیفت کرده بودیم. 40 ثانیه بعد پرپ پر شد، بعد از حرکت. پک شده بودیم. پک شده بودیم روی بیسیسی که دیگر هزینهٔ ورود و خروج را نمی‌داد.

بک‌تست «+9.4 bps کری، باقیمانده 0» را ثبت می‌کرد. بلاتر 4 bps هزینهٔ تیکر اسپات داشت، یک لانگ بدون هج 40ثانیه‌ای، و گپ ورود حدود 5. نمونه‌ام 1 بود و، با این حال، اعتماد زیادی به راه‌پله داشتم.

سه‌شنبه: تابع را باز کردیم

enter_pack فهرستی از لگ‌ها و یک مید هدف می‌گرفت. حلقه می‌زد، هر لگ را در mid * (1 ± slip) پر می‌کرد، و 1 ردیف پورتفولیو می‌نوشت. timestamp دومی نبود. شاخه‌ای نبود که در آن لگ دوم وجود نداشته باشد. تست واحد residual == 0 را assert می‌کرد.

این تستی است که حس بزرگسال بودن می‌دهد. هرگز شکست نمی‌خورد.

پک را به 2 سفارش با state خودشان شکستیم: ارسال‌شده، جزئی، پرشده، لغوشده. ناقص به شیء درجهٔ یک تبدیل شد. بازپخش تاریخی هنوز بوک واقعی نداشت، پس تقلب کردیم. پرشدگی دوم را با یک قرعه از انتظار دوشنبه تأخیر بده (میانگین 26 ثانیه، دُمی که خوشم نیامد)، و قیمتش را به اندازهٔ حرکت اسپات در همان پنجره جابه‌جا کن. خام بود، اما راه‌پله قبل از ناهار دندانه درآورد: پک‌هایی که با 3 bps وارد شدند، پک‌هایی که هرگز پک نشدند.

چهارشنبه: 3 ثانیه، بعد ولش کن

اگر لگ دوم ظرف 3 ثانیه روی پوزیشن ننشست، اولی را فلت کن. باید از همان‌جا شروع می‌کردیم. محافظه‌کارانه به نظر می‌رسد تا وقتی abort را قیمت بگذاری. فلت کردن یعنی برای ورود اسپات را کراس کرده‌ای و برای خروج هم کراس می‌کنی. 2 کارمزد تیکر، 2 اسپرد، بدون کری، بدون فاندینگ. در بازپخش بازنویسی‌شده آن abortها نادر نبودند. روی بارهایی جمع می‌شدند که بیسیس از همه «واقعی»تر به نظر می‌رسید، که معمولاً همان بارهایی است که چیزی از قبل از اسپات رد می‌شود.

تا شب چهارشنبه 17 سیگنال پیپر برای جر و بحث داشتیم.

17سیگنال پیپر در 4 روز
7پک با هر دو لگ پرشده
18 bpsحرکت بعدی علیه یک لانگ باقی‌مانده
بک‌تست، صبح دوشنبهپیپر، تا چهارشنبه
ورودهر دو لگ روی مید، 1 timestampاسپات روی ask؛ پرپ 5–40s بعد، یا هرگز
باقیماندههمیشه 0بدون هج در 10 از 17 سیگنال
کارمزد روی معاملهٔ فعال2 تیکر2 تیکر، یا 4 اگر abort کنیم
محرک PnLبیسیس + فاندینگهرچه اسپات در مدت انتظار کرد
پک وقتی کامل است که هر دو سفارش پر شده باشند، وگرنه یک پوزیشن جهت‌دار است که برایش سایز نگرفته‌اید. باقیمانده را تمام مدتی که وجود دارد روی بوک زنده mark کنید. اگر نمی‌توانید mark کنید، نمی‌توانید استراتژی را اجرا کنید.

همکاری هنوز نوت‌بوکی دارد که پک را مثل یک محصول لیست‌شده، BTC_CARRY، با «مالیات اجرا»ی ثابت 2 bp حساب می‌کند. آن نوت‌بوک را دوست داشتم. همان راه‌پله‌ای را می‌ساخت که ایجنت ساخته بود. مالیات یک میانگین است. یتیم‌ها یک توزیع‌اند. میانگین‌ها در یک ساعت کم‌عمق زیر گرفته نمی‌شوند؛ 0.40 BTC اسپات باقی‌مانده می‌تواند.

پنجشنبه: باقیمانده، بعد قهوه

3 ثانیه تقریباً همه‌چیز را abort می‌کرد وقتی روی صف هم منتظر بودیم. پیپر را تا 15 شل کردیم. ساعت 02:11 UTC پنجشنبه، اسپات پر شد و پرپ نشد. هنوز در فاز سوگ «می‌نشیند، لیفت می‌شود» بودم که رفتم قهوه درست کنم.

02:11:08 پر شد BTCUSDT 0.40 buy
02:11:08 ارسال شد BTCUSDT-PERP 0.40 sell، post-only
02:11:41 هنوز در کار
02:26:00 mark باقیمانده −18.1 bps

BTC در یک پنجرهٔ آرام 18 bps ریخت. باقیمانده کل معامله بود. فاندینگ، وقتی چاپ شد، به پرپی بستانکار شد که نداشتیم. اسپات همان‌جا نشسته بود و لانگ بود. مسیر شبانهٔ بک‌تست اصلی هرگز پوزیشن تک‌لگ نداشت، پس هرگز سؤالی را نپرسیده بود که از هر بوک دیگری می‌پرسیم: بدترین باری که این باقیمانده می‌تواند چاپ کند چیست، و استاپ پوزیشنی که قصد نگه‌داشتنش را نداشتیم کجاست؟

7 پک کامل هم قهرمان نبودند. تا لگ دوم چاپ شود، لیفت اسپات خودمان از قبل روی ایندکس فشار آورده بود، و بیسیس ورود 3–5 bps بدتر از اسنپ‌شاتی بود که سیگنال را شلیک کرده بود. آستانهٔ 8 bps عددی دربارهٔ یک صفحه بود.

آنچه دفعهٔ بعد رد می‌کنیم

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

  1. وضعیت سفارش به‌ازای هر لگ، از جمله جزئی‌ها. پک را والد 2 تیکت بدانید.
  2. تایمر حداکثر یتیمی که واقعاً شلیک می‌کند، و مسیر فلتی که در خروج 2 اسپرد می‌پردازد.
  3. Mark-to-book روی باقیمانده، با استاپی که برای باقی‌مانده سایز شده. نت پک‌شده ناسیونال غلط است.
  4. هیچ کری بستانکار نشود، هیچ فاندینگی انباشته نشود، تا وقتی هر دو لگ روی پوزیشن باشند. ناقص، ناقص است.
  5. mid-on-mid را به‌عنوان پیش‌فرض برای هر چیزی که 2 تیکت دارد رد کنید. اگر باید حدس بزنید، روی لگ نازک بدتر حدس بزنید و روی پرشدگی دوم دیرتر.

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

بک‌تست، کش‌اند‌کری، اجرا، پیپر تریدینگ، فیوچرز کریپتو
اشتراک‌گذاریXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← همهٔ مطالب