راهنمای کامل امکانات ربات برای اشتراک عادی
این راهنما تمام امکانات ربات سرخطچی که با اشتراک عادی در دسترس شماست را بهصورت گامبهگام توضیح میدهد: تنظیم درخواست کارگزاری، انتخاب حالت ارسال (ترتیبی یا انفجاری)، تنظیم زمان شروع، استفاده از پنل نمادهای زنده، مشاهدهی داشبورد و لاگها، و کمک گرفتن از مشاور هوش مصنوعی. امکانات پیشرفتهتر (موازی، تطبیقی، گرمکردن، کالیبراسیون تأخیر) مخصوص اشتراک حرفهای هستند و در این راهنما پوشش داده نمیشوند.
معماری ربات و فلسفهی کار
ربات سرخطچی یک ارسالکنندهی زمانبندیشدهی HTTP است که برای سناریوی خاص سرخطیزنی در بورس تهران طراحی شده است. هدف اصلی ربات این است که در لحظهی باز شدن بازار (ساعت ۸:۴۵ صبح یا هر زمان دیگری که شما تعیین کنید)، درخواست خرید یا فروش نماد موردنظر را با دقت میلیثانیهای به سرور کارگزاری شما برساند.
معماری ربات از سه لایهی اصلی تشکیل شده است:
- لایهی کلاینت (مرورگر شما): رابط کاربری React که در آن URL، هدرها، بدنه و روش احراز هویت درخواست را پیکربندی میکنید و حالت زمانبندی را انتخاب میکنید.
- لایهی زمانبندی (mini-service روی پورت ۳۰۰۴): یک سرویس Node.js با Socket.io که وظیفهی اجرای دقیق شمارش معکوس و ارسال واقعی درخواستها را بر عهده دارد. این سرویس از
setTimeout+setImmediateبرای دقت زیرمیلیثانیهای استفاده میکند. - لایهی مقصد (سرور کارگزاری شما): هر URL که شما تعیین میکنید — معمولاً API کارگزاری برای ثبت سفارش برخط.
اگر فقط دکمهی «ارسال» را بزنید، درخواست شما بسته به پینگ شما و زمان واکنش ممکن است چند ده تا چند صد میلیثانیه دیرتر از لحظهی باز شدن بازار به دست کارگزاری برسد. در سرخطیزنی، این چند میلیثانیه تفاوت بین «سفارش ثبت شد» و «سفارش در صف بسته شد» است. ربات با شمارش معکوس دقیق، زمان ارسال را طوری تنظیم میکند که درخواست در لحظهی مقصد به دست کارگزاری برسد.
در اشتراک عادی، دو حالت زمانبندی ترتیبی (Sequential)و انفجاری (Burst) در دسترس شماست. حالتهای موازی و تطبیقی، گرمکردن (warmup)، کالیبراسیون تأخیر و همگامسازی با ساعت سرور مخصوص اشتراک حرفهای هستند. با این حال، همین دو حالت برای اکثر سناریوهای سرخطیزنی کافی هستند.
بخشهای مختلف ربات و نقش هرکدام
صفحهی اصلی ربات (/app) از چند بخش مجزا تشکیل شده که در کنار هم یک گردشکار کامل از «تنظیم درخواست» تا «ارسال زمانبندیشده و مشاهدهی نتایج» را شکل میدهند:
- سازندهی درخواست (Request Builder): ساختار HTTP کامل درخواست شما — متد، URL، هدرها، query params، بدنه و احراز هویت.
- پنل تنظیمات زمانبندی (Scheduler Config): حالت ارسال، زمان شروع و تعداد درخواست. در اشتراک عادی، تنظیمات پیشرفتهتر (warmup، کالیبراسیون) مخفی هستند.
- نمایشگر پاسخ (Response Viewer): نمایش جزئیات آخرین پاسخ دریافتی — status، هدرها و بدنه.
- لاگهای درخواست (Request Logs): لیست تمام درخواستهای ارسالشده با timestamp، وضعیت، زمان پاسخ و امکان کلیک برای مشاهدهی جزئیات.
- داشبورد زنده (Live Dashboard): نمودار و متریکهای بلادرنگ — تعداد موفق/خطا، latency و فعالیتهای زمانبندی.
- پنل نمادهای زنده (Stock Panel): فهرست نمادهای بورس تهران با قیمت لحظهای — کلیک روی هر نماد آن را به payload درخواست تزریق میکند.
- مشاور هوش مصنوعی (AI Advisor): توصیههای هوشمند برای تنظیم زمانبندی بر اساس نوع بازار و شرایط شبکه. این امکان توسط مدیر سایت فعال/غیرفعال میشود.
سازندهی درخواست (Request Builder)
این بخش ساختار HTTP درخواست شما را تعریف میکند. هر درخواست که ربات ارسال میکند (چه بهصورت دستی و چه زمانبندیشده) از همین ساختار استفاده میکند.
فیلدهای اصلی
| پارامتر | نوع | پیشفرض | توضیح |
|---|---|---|---|
| method | enum | GET | متد HTTP: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS. برای ثبت سفارش معمولاً POST استفاده میشود. |
| url | string | — | آدرس کامل مقصد. مثال: https://api.broker.example.com/orders |
| headers | array | Content-Type: application/json | لیست هدرها. هر هدر قابل فعال/غیرفعال کردن است تا بتوانید چند نسخه نگه دارید. |
| queryParams | array | خالی | پارامترهای query string که به URL اضافه میشوند. |
| body | string | خالی | بدنهی درخواست. برای POST معمولاً JSON سفارش است. |
| bodyType | enum | none | نوع بدنه: none, json, form, xml, text, binary. |
| auth | object | none | احراز هویت: none, bearer (توکن), basic (نام کاربری/رمز), apiKey (کلید در هدر یا query), oauth2. |
| timeout | number (ms) | 30000 | مدت زمان انتظار برای پاسخ قبل از timeout. |
| followRedirects | boolean | true | آیا ربات باید redirect های 3xx را دنبال کند؟ |
| keepAlive | boolean | true | نگهداشتن اتصال TCP برای درخواستهای بعدی (افزایش سرعت). |
| captureResponseBody | boolean | true | آیا بدنهی پاسخ در لاگ ذخیره شود؟ برای دیباگ مفید است اما برای پاسخهای بزرگ ممکن است حافظه را پر کند. |
برای کارگزاریهای ایرانی معمولاً باید یک هدر Authorization با توکن ورود به حساب و یک هدر Content-Type: application/json تنظیم کنید. بدنهی درخواست هم شامل نماد، تعداد و قیمت است. مقادیر نماد و قیمت را میتوانید از پنل نمادهای زنده با یک کلیک تزریق کنید.
حالتهای زمانبندی — نمای کلی
ربات در اشتراک عادی دو حالت زمانبندی در اختیار شما میگذارد. هر حالت برای نوع خاصی از سناریوی سرخطیزنی طراحی شده است. انتخاب حالت اشتباه میتواند تفاوت بین موفقیت و شکست باشد.
درخواستها یکییکی و پشت سر هم ارسال میشوند. تا وقتی درخواست قبلی تمام نشده (یا بعد از یک تأخیر ثابت)، درخواست بعدی ارسال نمیشود.
- کارگزاریهایی که rate limit سختگیرانه دارند
- زمانی که ترتیب رسیدن درخواستها مهم است
- تست تدریجی اتصال قبل از ارسال اصلی
سناریوهایی که نیاز به سرعت بالا و ارسال همزمان دارید.
mode: 'sequential'یک دسته از درخواستها (پیشفرض: ۵ تا) در کسری از ثانیه با فاصلهگذاری میلیثانیهای ارسال میشوند. این حالت برای سرخطیزنی روی نمادهای پرتقاضا بهترین انتخاب است.
- سرخطیزنی روی نمادهای پرتقاضا
- ارسال رگباری در لحظهی باز شدن بازار
- وقتی میخواهید چندین بار در کسری از ثانیه امتحان کنید
کارگزاریهایی که timeout کوتاه دارند یا ارسال رگباری را مسدود میکنند.
mode: 'burst'حالتهای موازی (Parallel) و تطبیقی (Adaptive)مخصوص اشتراک حرفهای هستند و در اشتراک عادی نمایش داده نمیشوند. اگر به این حالتها نیاز دارید، میتوانید اشتراک خود را ارتقا دهید.
حالت ترتیبی (Sequential)
در این حالت، درخواستها یکی پس از دیگری ارسال میشوند. ربات منتظر میماند تا درخواست فعلی تمام شود (یا یک تأخیر ثابت سپری شود) و بعد درخواست بعدی را میفرستد.
پارامترها
| پارامتر | نوع | پیشفرض | توضیح |
|---|---|---|---|
| delay | number (ms) | 0 | تأخیر بین ارسال هر درخواست به میلیثانیه. ۰ یعنی بدون مکث. |
| fireAndForget | boolean | false | اگر true باشد، ربات منتظر پاسخ نمیماند — درخواست را میفرستد و بلافاصله سراغ بعدی میرود. این رفتار نزدیک به موازی میشود اما با حفظ ترتیب شروع. |
| timingMode | enum | after-completion | تعیین میکند چه زمانی بهعنوان نقطهی شروع تأخیر در نظر گرفته شود: 'after-completion' = بعد از اتمام درخواست قبلی، 'fixed-interval' = در فواصل زمانی ثابت (مستقل از مدت زمان هر درخواست). |
چه زمانی از Sequential استفاده کنیم؟
- کارگزاری شما rate limit سختگیرانه دارد و درخواستهای همزمان را رد میکند.
- میخواهید ترتیب رسیدن درخواستها را کنترل کنید (مثلاً اول خرید، بعد فروش).
- در حال تست اتصال هستید و میخواهید latency هر درخواست را جداگانه ببینید.
اگر fireAndForget را فعال کنید، ربات منتظر پاسخ نمیماند. این یعنی در لاگها وضعیت پاسخ ثبت نمیشود. این رفتار برای زمانی مناسب است که فقط میخواهید درخواست را «بفرستید و بگذارید برود» و اهمیت پاسخ ندارید.
حالت انفجاری (Burst)
در حالت انفجاری، ربات یک دسته از درخواستها را در کسری از ثانیه ارسال میکند. این حالت برای سرخطیزنی روی نمادهای پرتقاضا طراحی شده است که در آن هر میلیثانیه اهمیت دارد.
رفتار پیشفرض
در اشتراک عادی، تنظیمات burst با مقادیر پیشفرض و بهینه قفل شدهاند تا بهترین نتیجه را بدون نیاز به تنظیمات پیچیده بگیرید:
| پارامتر | نوع | پیشفرض | توضیح |
|---|---|---|---|
| burstSize | number | 5 | تعداد درخواستهای هر دسته. ۵ درخواست در هر رگبار ارسال میشود. |
| interval (stagger) | number (ms) | 0 | فاصلهی میلیثانیهای بین درخواستهای داخل یک دسته. ۰ یعنی همهی ۵ درخواست با کمترین فاصله ممکن ارسال میشوند. |
| cooldown | number (ms) | 0 | فاصلهی بین دستهها. ۰ یعنی ربات بلافاصله بعد از دستهی اول، دستهی بعدی را میفرستد. |
| fireAndForget | boolean | true | در حالت پیشفرض فعال است تا ربات منتظر پاسخ نماند و سرعت ارسال حداکثر باشد. |
در اشتراک عادی، امکان تغییر اندازهی دسته، فاصله و cooldown وجود ندارد. این مقادیر توسط تیم سرخطچی روی بهترین حالت برای سرخطیزنی تنظیم شدهاند. اگر به تنظیم دستی این پارامترها نیاز دارید، اشتراک حرفهای را تهیه کنید.
چه زمانی از Burst استفاده کنیم؟
- سرخطیزنی روی نمادهای پرتقاضا که در چند ثانیه اول پر میشوند.
- زمانی که میخواهید چندین بار در کسری از ثانیه امتحان کنید تا شانس ثبت سفارش برود.
- وقتی کارگزاری شما ارسال رگباری را قبول میکند و rate limit سختگیرانه ندارد.
زمان شروع و شمارش معکوس
از تاریخ ۲۰۲۶-۰۷-۳۱، گزینهی «اکنون» (Now) از ربات حذف شده است. هر ارسال باید دارای زمان شروع مشخص باشد. این تصمیم بهخاطر این گرفته شده که ارسال بدون زمانبندی دقیقاً برخلاف فلسفهی ربات است (دقت میلیثانیهای) و ممکن است باعث ارسال ناخواسته شود.
زمان پیشفرض
وقتی وارد ربات میشوید، زمان شروع بهطور پیشفرض روی فردا ساعت ۰۸:۴۵:۰۰ صبح تنظیم شده است. این زمان مصادف با باز شدن بازار بورس تهران است و برای اکثر سناریوهای سرخطیزنی مناسب است. میتوانید این زمان را به هر زمان دیگری تغییر دهید.
تقویم شمسی
اگر زبان ربات روی فارسی باشد، تقویم زمانبندی بهصورت شمسی (جلالی) نمایش داده میشود و میتوانید تاریخ را با فرمت YYYY-MM-DD شمسی وارد کنید. تبدیل تاریخ به میلادی بهصورت خودکار انجام میشود و زمان ارسال همیشه بر اساس تقویم میلادی محاسبه میشود. در زبان انگلیسی، تقویم میلادی استاندارد نمایش داده میشود.
فازهای شمارش معکوس
وقتی زمان شروع تنظیم میشود، ربات از چند فاز عبور میکند:
- idle (بیکار): زمانبندی هنوز شروع نشده.
- waiting (در انتظار): ربات منتظر رسیدن به زمان دقیق ارسال است.
- running (در حال اجرا): درخواستها در حال ارسال هستند.
- completed (تکمیلشده): همهی درخواستها با موفقیت ارسال شدند.
- error (خطا): خطایی رخ داده است.
ربات زمان شروع را با ساعت سرور (ساعت همین سیستم) مقایسه میکند. در اشتراک عادی، امکان همگامسازی با ساعت کارگزاری (که دقیقتر است) وجود ندارد. بنابراین حتماً قبل از سرخطیزنی، ساعت سیستم خود را با ساعت رسمی ایران تنظیم کنید. اختلاف حتی چند ثانیهای میتواند باعث شود درخواست شما زودتر یا دیرتر از زمان مقصد به دست کارگزاری برسد.
پنل نمادهای زنده (Stock Panel)
این پنل لیستی از نمادهای بورس تهران را با قیمت لحظهای نمایش میدهد. میتوانید روی هر نماد کلیک کنید تا اطلاعات آن (نماد، قیمت، درصد تغییر) بهطور خودکار به payload درخواست شما تزریق شود.
نحوهی استفاده
- روی دکمهی «پنل نمادها» در نوار ابزار کلیک کنید تا SlideOver باز شود.
- نماد موردنظر خود را در فهرست پیدا کنید (یا با جستجو).
- روی نماد کلیک کنید — مقادیر نماد و قیمت فعلی به فیلدهای مربوطه در بدنهی درخواست شما تزریق میشوند.
- میتوانید چند نماد را پشت سر هم انتخاب کنید تا چند نسخه از درخواست با نمادهای مختلف داشته باشید.
در پنل نمادها یک ماشینحساب داخلی وجود دارد. بودجهی خود را وارد کنید، قیمت هر سهم را انتخاب کنید (از لیست یا دستی) و ربات بهطور خودکار تعداد سهم قابل خرید را محاسبه میکند. سپس میتوانید این تعداد را با یک کلیک به payload درخواست تزریق کنید.
داشبورد زنده (Live Dashboard)
داشبورد، متریکهای کلیدی اجرای ربات را بهصورت بلادرنگ نمایش میدهد. این ابزار برای نظارت بر رفتار ربات و دیباگ ضروری است.
نمایشگرهای اصلی
- کل درخواستها: تعداد کل درخواستهای ارسالشده در این جلسه.
- موفق / خطا: تعداد پاسخهای 2xx در برابر 4xx/5xx/timeout.
- latency متوسط و P95: میانگین و ۹۵th percentile زمان پاسخ.
- فعالیتهای زمانبندی: خط به خط رویدادهای موتور زمانبندی (شروع شمارش معکوس، ارسال درخواست، پایان اجرا و ...).
لاگهای درخواست (Request Logs)
هر درخواستی که ربات ارسال میکند در لاگها ثبت میشود. میتوانید روی هر ورودی کلیک کنید تا جزئیات کامل آن (هدرها، بدنهی ارسالی، پاسخ دریافتی، زمانسنجی) را ببینید.
اطلاعات هر لاگ
| پارامتر | نوع | پیشفرض | توضیح |
|---|---|---|---|
| index | number | — | شمارهی ترتیبی درخواست در این جلسه. |
| method + url | string | — | متد و آدرس مقصد. |
| status | number | — | کد وضعیت HTTP پاسخ. null یعنی timeout یا خطای شبکه. |
| statusText | string | — | متن همراه با کد وضعیت (مثلاً OK, Bad Request). |
| requestTime | number (ms) | — | زمان ارسال درخواست از مبدأ. |
| responseTime | number (ms) | — | زمان دریافت پاسخ. |
| duration | number (ms) | — | مدت زمان کل رفتوبرگشت. |
| responseBody | string | — | بدنهی پاسخ (اگر captureResponseBody فعال باشد). |
علاوه بر لاگهای جلسهی فعلی، یک پنل تاریخچه هم وجود دارد که درخواستهای جلسات قبلی را ذخیره میکند. میتوانید هر ورودی تاریخچه را با یک کلیک دوباره در ربات بارگذاری کنید تا بدون نیاز به تنظیم دستی، همان درخواست را دوباره ارسال کنید.
مشاور هوش مصنوعی (AI Advisor)
ربات یک مشاور هوش مصنوعی داخلی دارد که میتواند بر اساس نوع بازار، شرایط شبکه و الگوی پاسخ کارگزاری، توصیههایی برای تنظیم زمانبندی به شما بدهد. این امکان توسط مدیر سایت فعال یا غیرفعال میشود؛ اگر دکمههای AI را در ربات نمیبینید، یعنی مدیر سایت آن را موقتاً غیرفعال کرده است.
دو نوع توصیه
- توصیهی زمانبندی (Timing Advice): برای زمانی که میخواهید برای بازار باز تنظیم کنید. AI بر اساس نوع کارگزاری، نماد و ساعت پیشنهاد میدهد کدام حالت و کدام پارامترهای دقت را استفاده کنید.
- توصیهی پیکربندی (Config Advice): وقتی نمیدانید چه تنظیماتی بهتر است، میتوانید سناریوی خود را توصیف کنید تا AI یک پیکربندی کامل پیشنهاد دهد.
خروجی AI بهطور پیشفرض فارسی است. میتوانید آن را به انگلیسی تغییر دهید اگر میخواهید خروجی را با همکاران بینالمللی به اشتراک بگذارید.
نکات حرفهای و کاربردهای رایج
سناریوی ۱: سرخطیزنی استاندارد در باز شدن بازار
این سناریو برای اکثر کاربران اشتراک عادی مناسب است:
- mode:
burst - burst: مقادیر پیشفرض (اندازه ۵، فاصله ۰، تأخیر ۰، fireAndForget فعال)
- totalRequests:
10 - startTime:
08:44:59.000(فردا — یک ثانیه قبل از باز شدن بازار) - قبل از اجرا، ساعت سرور (ساعت سیستم) را با ساعت رسمی ایران تنظیم کنید.
سناریوی ۲: تست اتصال و سنجش latency
برای اینکه بفهمید کارگزاری شما چقدر سریع است، قبل از سرخطیزنی واقعی این تست را انجام دهید:
- mode:
sequential - totalRequests:
20 - sequential.delay:
500 - sequential.timingMode:
after-completion - startTime: یک زمان ۱-۲ دقیقه آینده (دستی تنظیم کنید)
- بعد از اجرا، در داشبورد latency متوسط را ببینید تا بفهمید کارگزاری شما چقدر سریع است.
سناریوی ۳: ارسال سفارش با نماد از پنل نمادها
- پنل نمادها را باز کنید، نماد موردنظر را پیدا کنید و کلیک کنید تا به payload تزریق شود.
- از ماشینحساب داخلی برای محاسبهی تعداد سهم بر اساس بودجه استفاده کنید.
- هدر
Authorizationرا با توکن کارگزاری تنظیم کنید. - mode را روی
burstبگذارید و startTime را روی زمان باز شدن بازار تنظیم کنید. - روی «شروع» کلیک کنید و منتظر بمانید تا شمارش معکوس تمام شود.
همیشه قبل از سرخطیزنی واقعی، یک تست کامل انجام دهید. با URL یک endpoint آزمایشی (مثلاً https://httpbin.org/post یا یک endpoint تستی کارگزاری) و با تعداد درخواست کم، کل گردشکار را اجرا کنید تا مطمئن شوید تنظیمات درست است. هیچچیز بدتر از این نیست که در لحظهی باز شدن بازار بفهمید یک پارامتر اشتباه تنظیم کردهاید.
سوالات متداول (FAQ)
۱. کدام حالت برای سرخطیزنی بهتر است؟
برای اکثر کاربران، حالت Adaptive Burst با مقادیر پیشفرض بهترین انتخاب است. این حالت در کسری از ثانیه ۵ درخواست ارسال میکند و شانس ثبت سفارش را به حداکثر میرساند. اگر کارگزاری شما محدودیت سختگیرانه دارد، از حالت Sequential با تأخیر ۵۰۰ میلیثانیه استفاده کنید.
۲. چرا گزینهی «اکنون» (Now) را حذف کردهاید؟
ارسال بدون زمانبندی دقیقاً برخلاف فلسفهی ربات است: هدف ربات این است که درخواست دقیقاً در لحظهی مقصد به دست کارگزاری برسد. وقتی «اکنون» را میزدید، ربات درخواست را در اولین فرصت میفرستاد که ممکن بود چند ده میلیثانیه با زمان موردنظر شما فاصله داشته باشد. با حذف این گزینه، هر ارسال دارای زمان دقیق و قابل پیشبینی است.
۳. چطور میتوانم تنظیمات burst را تغییر دهم؟
در اشتراک عادی، تنظیمات burst (اندازهی دسته، فاصله، تأخیر) قفل شدهاند و با مقادیر بهینه اجرا میشوند. اگر به تنظیم دستی این پارامترها نیاز دارید، باید اشتراک حرفهای تهیه کنید.
۴. چه کنم اگر کارگزاری timeout داد؟
چند کار میتوانید انجام دهید: اول، timeout درخواست را افزایش دهید (مثلاً به ۶۰ ثانیه). دوم، تعداد درخواستها را کم کنید تا سرور Less ترافیک داشته باشد. سوم، حالت را به sequential با تأخیر ۵۰۰ میلیثانیه تغییر دهید تا کارگزاری فرصت پاسخ داشته باشد.
۵. آیا میتوانم چند نماد را همزمان سرخطی بزنم؟
در حال حاضر ربات روی یک URL و یک پیکربندی درخواست تمرکز دارد. برای چند نماد میتوانید چند بار ربات را در پنجرههای مرورگر مختلف اجرا کنید (هر پنجره با یک نماد و یک URL کارگزاری). این کار در اشتراک عادی هم ممکن است.
۶. چطور میتوانم تنظیمات را ذخیره و بازگردانی کنم؟
از دکمههای «خروجی پیکربندی» و «ورودی پیکربندی» در نوار ابزار ربات استفاده کنید. این دکمهها کل پیکربندی فعلی را بهصورت یک فایل JSON ذخیره میکنند که میتوانید بعداً دوباره بارگذاری کنید. مفید برای نگهداشتن چند پروفایل مختلف (مثلاً یکی برای تست و یکی برای سرخطیزنی واقعی).
۷. آیا ربات روی موبایل کار میکند؟
ربات طراحی responsive دارد و روی مرورگر موبایل قابل استفاده است، اما برای سرخطیزنی واقعی بهشدت توصیه میشود از یک کامپیوتر با اتصال اینترنت پایدار (ترجیحاً کابلی) استفاده کنید. موبایل بهخاطر نوسانات شبکهی بیسیم و مصرف CPU توسط برنامههای پسزمینه ممکن است دقت شما را کاهش دهد.
۸. چه امکاناتی در اشتراک حرفهای وجود دارد؟
اشتراک حرفهای این امکانات اضافه را در اختیار شما میگذارد: حالت موازی (Parallel) برای ارسال همزمان به چند endpoint، حالت تطبیقی (Adaptive) برای تنظیم خودکار سرعت، گرمکردن (Warmup) برای گرم کردن اتصال TCP/TLS قبل از ارسال اصلی، کالیبراسیون تأخیر برای اندازهگیری دقیق پینگ، همگامسازی با ساعت کارگزاری برای جبران اختلاف ساعت سیستم، و تنظیمات دستی burst.
آمادهی شروع هستید؟
با ثبتنام در سرخطچی، ۲ روز بهصورت رایگان از امکانات ربات استفاده کنید و خودتان این آپشنها را در عمل امتحان کنید.
شروع رایگان — ۲ روز آزمایشی