ایزی ریت
ورود / ثبت‌نامورود

نرخ تتر برای صرافی ارز دیجیتال؛ نرخ مرجع، اسپرد و ترمز اضطراری

نرخ تتر برای صرافی ارز دیجیتال از کجا بیاید؟ نرخ مرجع USDT/IRT، محاسبهٔ اسپرد خرید و فروش، محدودهٔ مجاز انحراف، ترمز اضطراری و کد نمونه برای اتصال به API.

تینا نجفی
· نویسنده مالی و اقتصادی
انتشار ۱۰ آبان ۱۴۰۵، ۱۶:۰۰ · ۵ دقیقه مطالعه
نرخ تتر برای صرافی ارز دیجیتال
خلاصه در سه خط
  • صرافی رمزارز به یک «نرخ مرجع» مستقل از دفتر سفارش خودش نیاز دارد تا قیمت‌گذاری، تسویه و هشدار دستکاری قیمت را بر آن بنا کند.
  • نرخ تتر EZRate از معاملات چند صرافی و بازار آزاد میانه‌گیری می‌شود و تعداد منابع هر لحظه را هم برمی‌گرداند.
  • قیمت خرید و فروش صرافی = نرخ مرجع ± اسپرد؛ اگر نرخ داخلی بیش از حد مجاز از مرجع فاصله گرفت، معاملات خودکار متوقف شود.

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

★
پاسخ کوتاه
نرخ مرجع USDT/IRT را با GET /rates?symbols=usdt بگیرید (هر دقیقه محاسبه می‌شود و فیلد sources تعداد منابع را می‌گوید). قیمت فروش آنی = مرجع × (۱ + اسپرد) و قیمت خرید = مرجع × (۱ − اسپرد). اگر قیمت آخرین معاملهٔ داخلی بیش از ۲ تا ۳ درصد از مرجع فاصله گرفت، خرید و فروش آنی را متوقف کنید.

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

چرا صرافی به نرخ مرجع بیرونی نیاز دارد؟

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

  • قیمت‌گذاری خرید و فروش آنی: کاربری که تتر را فوری می‌خرد، با قیمتی معامله کند که به بازار کل ایران نزدیک است، نه فقط به دفتر سفارش خلوت ساعت ۴ صبح.
  • تشخیص ناهنجاری: وقتی قیمت داخلی ناگهان از مرجع فاصله می‌گیرد، احتمالاً یا دستکاری در کار است یا خطای سیستمی.
  • گزارش‌دهی و ارزش‌گذاری دارایی‌ها: ارزش تومانی موجودی تتر کاربران و صرافی با عددی سنجیده شود که قابل دفاع است.

نرخ تتر EZRate چطور ساخته می‌شود؟

نرخ تتر به تومان از قیمت معاملات چند صرافی رمزارز داخلی و پیام‌های خرید و فروش بازار جمع می‌شود. هر دقیقه نرخ‌هایی که بیش از حد مجاز از میانه فاصله دارند کنار گذاشته می‌شوند و میانهٔ بقیه منتشر می‌شود. کنار هر نرخ تعداد منابع (sources) و زمان (updated_at) هم برمی‌گردد. منطق کلی در کشف قیمت در بازار آزاد و میانه و حذف داده‌های پرت توضیح داده شده است.

فیلد usd در پاسخ تتر، قیمت دلاری آن است (معمولاً نزدیک ۱). مقایسهٔ قیمت تومانی تتر با قیمت دلار آزاد هم اطلاعات ارزشمندی می‌دهد؛ این فاصله در آربیتراژ تتر و دلار بررسی شده است.

تتر۲۷۰٬۶۵۰تومان+۰٫۲۲٪

فرمول قیمت‌گذاری خرید و فروش آنی

قیمت فروش به کاربر = نرخ مرجع × (۱ + اسپرد فروش) · قیمت خرید از کاربر = نرخ مرجع × (۱ − اسپرد خرید)
پارامترمقدار پیشنهادی شروعتوضیح
اسپرد عادی۰٫۳٪ تا ۰٫۸٪بسته به کارمزد شبکه، نقدشوندگی و رقابت
اسپرد ساعت‌های خلوت۲ برابر اسپرد عادیوقتی sources کم است یا low_sources فعال است
حد انحراف مجاز داخلی از مرجع۲٪ تا ۳٪بیشتر از این، معاملهٔ آنی متوقف
حداکثر عمر نرخ مرجع۵ دقیقهاگر updated_at قدیمی‌تر بود، معاملهٔ آنی نکنید

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

نمودار نرخ مرجع تتر و قیمت خرید و فروش صرافی با اسپرد
قیمت خرید و فروش آنی حول نرخ مرجع

پیاده‌سازی: سرویس نرخ مرجع

javascript
// reference-rate.mjs — نرخ مرجع USDT/IRT با ترمز اضطراری
const API = "https://api.ezrate.me/v1"
let ref = null   // { buy, sell, sources, low, at }

export async function refresh() {
  const r = await fetch(`${API}/rates?symbols=usdt`, {
    headers: { "X-API-Key": process.env.EZRATE_KEY }, signal: AbortSignal.timeout(8000) })
  if (!r.ok) return
  const x = (await r.json()).data[0]
  ref = { buy: x.buy, sell: x.sell, sources: x.sources, low: x.low_sources, at: Date.parse(x.updated_at) }
}

export function quote(lastInternalPrice) {
  if (!ref || Date.now() - ref.at > 5 * 60_000) return { halted: "reference rate too old" }
  const mid = (ref.buy + ref.sell) / 2
  if (lastInternalPrice && Math.abs(lastInternalPrice - mid) / mid > 0.03) {
    return { halted: "internal price deviates more than 3% from the reference" }
  }
  const spread = ref.low || ref.sources < 5 ? 0.012 : 0.006
  return { buy: Math.floor(mid * (1 - spread)), sell: Math.ceil(mid * (1 + spread)), mid }
}

setInterval(refresh, 60_000)
await refresh()

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

سه سناریوی خطرناک و پاسخ درست

سناریو ۱: جهش ناگهانی قیمت داخلی

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

سناریو ۲: شب‌های تعطیل

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

سناریو ۳: قطعی منبع مرجع

اگر نرخ مرجع بیش از چند دقیقه به‌روز نشد، معاملهٔ آنی را متوقف کنید و فقط معاملات دفتر سفارش (که ریسکش با خود کاربران است) را باز بگذارید. هرگز با آخرین نرخ قدیمی معاملهٔ آنی نکنید. الگوهای مدیریت خطا در مدیریت خطا و Rate Limit آمده است.

نمایش نرخ مرجع به کاربر

شفافیت اعتماد می‌سازد. کنار قیمت خرید و فروش آنی، نرخ مرجع بازار و منبع آن را نشان دهید. کاربری که می‌بیند قیمت شما ۰٫۵ درصد بالاتر از مرجع است و این فاصله توضیح دارد، کمتر احساس می‌کند سرش کلاه رفته است. اگر نمی‌خواهید عدد مرجع را در صفحهٔ خود بسازید، ویجت قیمت تتر بدون کلید و با یک خط کد همین کار را می‌کند.

چک‌لیست راه‌اندازی برای تیم فنی صرافی

  • نرخ مرجع فقط سمت سرور دریافت شود و کلید API در کلاینت نباشد (امنیت API Key).
  • هر نرخ مرجعی که در یک معامله استفاده شد، همراه زمان و تعداد منبع در لاگ معامله ذخیره شود؛ هنگام اختلاف با کاربر یا حسابرسی به آن نیاز دارید.
  • آستانه‌های توقف و اسپرد از پنل مدیریت قابل تغییر باشند، نه ثابت در کد.
  • یک هشدار تلگرامی یا پیامکی برای تیم وقتی معاملهٔ آنی خودکار متوقف شد.
  • تست بار: اگر هزار کاربر هم‌زمان قیمت بخواهند، هیچ درخواست اضافه‌ای به API نرود.
داشبورد داخلی صرافی رمزارز با نرخ مرجع تتر، اسپرد و وضعیت ترمز اضطراری
نمای پیشنهادی پنل مدیریت نرخ تتر

نرخ‌های لحظه‌ای مرتبط با این مطلب: قیمت تتر، قیمت طلای ۱۸ عیار.

نرخ تتر برای صرافی ارز دیجیتال را از کجا بگیریم؟
از یک منبع مرجع که از چند صرافی و بازار میانه‌گیری می‌کند و تعداد منبع و زمان هر نرخ را اعلام می‌کند. دفتر سفارش خود صرافی به‌تنهایی مرجع مناسبی نیست.
نرخ مرجع را هر چند وقت تازه کنیم؟
هر ۶۰ ثانیه. نرخ‌ها هر دقیقه محاسبه می‌شوند و درخواست بیشتر عدد تازه‌تری نمی‌دهد.
اسپرد مناسب چقدر است؟
به کارمزد شبکه، نقدشوندگی و رقابت بستگی دارد. بسیاری از صرافی‌ها با کمتر از یک درصد شروع می‌کنند و در ساعت‌های خلوت آن را بیشتر می‌کنند.
آیا قیمت دلاری تتر هم در API هست؟
بله. فیلد usd قیمت دلاری را برمی‌گرداند و با quote=USDT می‌توانید قیمت رمزارزهای دیگر را بر حسب تتر بگیرید.
برای نمایش قیمت تتر در سایت صرافی هم API لازم است؟
برای نمایش نه؛ ویجت کافی است. API برای قیمت‌گذاری و منطق داخلی صرافی است.
تینا نجفی
من در رشته مدیریت مالی تحصیل کرده‌ام و علاقه اصلی من به موضوعات مرتبط با بازار ارز، طلا، بانکداری و تجارت بین‌المللی است. در طول فعالیت حرفه‌ای خود، درباره موضوعات مالی و خدمات ارزی مطالعه و تحقیق کرده‌ام و تلاش می‌کنم مفاهیم پیچیده مالی را به شکل ساده و کاربردی توضیح دهم. در تهیه مطالب، سعی می‌کنم اطلاعات را از منابع معتبر بررسی کرده و محتوایی ارائه دهم که برای کاربران قابل فهم و قابل استفاده باشد.
همهٔ مطالب نویسنده ←

نظرات (۰)

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

مطالب مرتبط

API و برنامه‌نویسی
کش کردن API قیمت ارز با Redis؛ سایت سریع‌تر و مصرف سهمیهٔ کمتر
API و برنامه‌نویسی
وب سوکت قیمت لحظه ای ارز لازم است یا REST؟ معماری درست برای اپ‌های مالی
API و برنامه‌نویسی
تغییر قیمت ووکامرس بر اساس دلار؛ قیمت‌گذاری خودکار با نرخ لحظه‌ای