F A Q
دراودان روزانه: بر اساس بالانس ابتدای روز محاسبه میشود.
ابتدای روز: ساعت 00:00 بروکر است که در چارت با فعالسازی گزینه Show period separator و خطچین عمودی مشخص میشود.
دراودان کل: بر اساس بالانس اولیه حساب محاسبه میشود.
* تاچ شدن حد دراودان روزانه یا کل، چه بر اساس بالانس و چه اکوییتی، نقض قانون و موجب از دست رفتن حساب خواهد شد.
const totalFloor = initialBalance * (1 - totalDD);
for (const t of account.history) {
const dayStart = balanceAtBrokerMidnight(t.time);
const dailyFloor = dayStart * (1 - dailyDD);
if (Math.min(t.balance, t.equity) <=
Math.max(dailyFloor, totalFloor))
return "VIOLATED";
}
return "ACTIVE";
پس از موفقیت در چالش، احراز هویت برای دریافت حساب ریل تا سطح دوم الزامی است.
نام و نام خانوادگی باید با مدرک شناسایی یکسان باشد.
در اختیار گذاشتن حساب معاملاتی یا پنل کاربری به شخص دیگر ممنوع است.
پرداختها فقط از طریق invest-prop.com معتبر است.
بررسی اطلاعیههای ایمیل پیش از ترید روزانه یا ثبت درخواست ها الزامی است.
تریدر و شرکت موظف به رعایت اصول اخلاقی هستند.
const OFFICIAL_SITE = "invest-prop.com";
if (payment && payment.source !== OFFICIAL_SITE)
return "INVALID_PAYMENT";
if (account.sharedWithOthers)
return "VIOLATED";
if (account.challengePassed) {
if (user.kycLevel < 2 || !user.nameMatchesID)
return "KYC_REQUIRED";
}
return "COMPLIANT";
ترید هنگام انتشار اخبار در اینوست پراپ مجاز است.
به دلیل احتمال اسلیپیج، افزایش اسپرد و تأخیر در اجرای سفارشها، بهویژه در سرورهای عمومی، ترید در محدوده اخبار توصیه نمیشود. در صورت ترید در این شرایط، اعتراض نسبت به نحوه اجرای سفارشها پذیرفته نیست؛ خصوصاً در سرورهای عمومی که اینوست پراپ کنترلی بر اجرای معاملات ندارد.
const NEWS_TRADING = {
allowed: true,
restrictedWindows: []
};
return NEWS_TRADING.allowed
? "ALLOWED"
: "RESTRICTED";
کپیترید بین حسابهای یک فرد در اینوست پراپ مجاز و بدون محدودیت است.
(برای کپیترید با حساب خارج شرکت، حساب اینوست پراپ باید مبدأ باشد.)
اگر حساب اینوست پراپ مقصد کپیترید باشد، تمامی حسابها غیرفعال شده و وجهی عودت داده نمیشود.
(ثبت الگوتریدینگ توسط MQL5)
const S = copy.source;
const T = copy.destination;
if (!T.isInvestProp)
return S.isInvestProp ? "ALLOWED" : "OUT_OF_SCOPE";
if (S.isInvestProp && S.ownerId === T.ownerId)
return "ALLOWED";
return {
status: "VIOLATED",
action: "DISABLE_ALL_ACCOUNTS",
refund: 0
};
پیش از خرید، تریدر موظف است شرایط هر سرور شامل اسپرد، اسلیپیج، کمیسیون، سواپ و نحوه اجرای سفارشات را کامل تست و تأیید کند.
اینوست پراپ حسابها را در 2 نوع سرور PlusTrader و MetaTrader ارائه میدهد.
PlusTrader: بدون کمیسیون شاخصها، بستر اینترنت ملی، اسپرد، کمیسیون و اسلیپیج بهینه، سواپفری و مجهز به ابزارهای TradingView و مدیریت سرمایه.
MetaTrader: اسپرد صفر جفتارزها، پلتفرم قدیمیتر و دیتای سرور عمومی بدون دسترسی شرکت.
اسلیپیج و افزایش اسپرد در اخبار، گپها و نوسانات شدید طبیعی است و انتخاب سرور پس از تست کامل بر عهده تریدر است.
سرورهای تست از بخش «سرور تست» پنل کاربری یا پشتیبانی قابل دریافت هستند.
در سرور عمومی، اینوست پراپ کنترلی بر اجرای سفارشات ندارد و مسئولیتی در قبال شرایط آن نمیپذیرد؛ تمامی سفارشات مطابق شرایط بروکر اجرا میشوند.
رمز حساب: تغییر رمز اصلی مجاز و توصیه میشود؛ تغییر Investor Password ممنوع است و در صورت Invalid شدن حساب در سرور عمومی، چالش مردود میشود.
const SERVERS = {
PlusTrader: {
indexCommission: 0,
swap: 0,
execution: "PRIVATE"
},
MetaTrader: {
execution: "PUBLIC"
}
};
if (account.server === "MetaTrader" &&
account.investorAccess === "INVALID")
return "FAILED";
return {
server: SERVERS[account.server],
mainPasswordChange: "ALLOWED",
investorPasswordChange: "FORBIDDEN"
};
استفاده از اکسپرتهای کپیترید طبق قوانین کپیترید و اکسپرتهای شناختهشده مدیریت سرمایه مانند Glory با کامنت مشخص مجاز است.
استفاده از سایر اکسپرتها ممنوع و موجب نقض قانون میشود.
if (!trade.isExpertTrade)
return "NOT_APPLICABLE";
if (expert.type === "COPY_TRADING")
return copyTradingRule(copy);
if (expert.type === "RISK_MANAGER" &&
expert.isRecognized &&
expert.comment?.trim())
return "ALLOWED";
return "VIOLATED";
استفاده موردی از مارتینگل مجاز است و جای نگرانی ندارد.
در صورت تکرار مستمر این سبک در حسابهای متوالی و کسب حداقل ۵۰٪ از تارگت چالش یا سود دوره برداشت از طریق مارتینگل، ابتدا صرفاً اخطار صادر میشود.
تداوم این رفتار پس از اخطار، موجب ریست همان مرحله میشود و هرگز باعث مردودی حساب نخواهد شد.
هج در یک حساب کاملا مجاز است
اما بین دو یا چند حساب معاملاتی ممنوع است و موجب بستهشدن حسابهای مرتبط میشود.
معاملات پرریسک موردی محدودیتی ندارند. در صورت تکرار مستمر الگوهای مشکوک به هج بین پراپ ها در حسابهای متوالی، با ریسک نزدیک دراودان روزانه در حداقل ۵۰٪ گروههای معاملاتی، ابتدا صرفاً اخطار صادر میشود.
تداوم این رفتار پس از اخطار، حق انتخاب بین محدودیت معاملاتی یا ریفاند را به تریدر میدهد.
const accounts = [...user.accountHistory]
.sort((a, b) => a.sequence - b.sequence);
const checks = accounts.map(a => {
// Martingale: 50% of target or net profit
const martingale = a.checkpoints.some(p => {
const base = p.stage === "Real"
? p.netProfit
: p.targetAmount;
const profit = p.trades
.filter(t => t.isMartingale)
.reduce((s, t) => s + Math.max(0, t.Profit), 0);
return base > 0 && profit >= base * 0.50;
});
// Hedge pattern: 50% of groups at 80% daily DD
const groups = a.concurrentTradeGroups;
const risky = groups.filter(g =>
g.maxConcurrentRiskUSD >=
g.dayOpeningBalance * a.dailyDDRate * 0.80
).length;
const hedge = groups.length > 0 &&
risky / groups.length >= 0.50;
return { sequence: a.sequence, martingale, hedge };
});
// Three consecutive trading accounts
const last3 = checks.slice(-3);
function evaluate(rule, warning, repeatedAction) {
if (last3.length < 3 || !last3.every(a => a[rule]))
return "NO_ACTION";
if (!warning)
return "WARNING";
return last3[0].sequence > warning.sequence
? repeatedAction
: "WARNING_ALREADY_ISSUED";
}
// Direct cross-account hedging is prohibited
if (user.crossAccountHedgeVerified)
return "CLOSE_LINKED_ACCOUNTS";
return {
martingale: evaluate(
"martingale",
user.martingaleWarning,
"RESET_SAME_STAGE"
),
hedge: evaluate(
"hedge",
user.hedgeWarning,
"CHOOSE_RISK_LIMIT_OR_REFUND"
)
};
مقدار مجاز ترید زیر یک دقیقه در حسابهای کمتر از 10K حداکثر 20% و در حسابهای بالانس بیشتر حداکثر 15% از تارگت مرحله چالش یا سود خالص (Net Profit) در ریل است.
عبور از این حد موجب مردودی حساب نمیشود؛ پس از رسیدن به تارگت یا زمان برداشت سود، حساب به همان مرحله ریست میشود.
const LIMIT = account.initialBalance < 10000 ? 0.20 : 0.15;
const real = account.stage === "Real";
const checkpoint = real
? account.withdrawalApprovedExceptScalping
: account.challengePassedExceptScalping;
if (!checkpoint) return "PENDING_CHECKPOINT";
const trades = account.currentPeriod.closedTrades;
const fastProfit = trades
.filter(t => t.ExitTime - t.EntryTime < 60 * SECOND)
.reduce((sum, t) => sum + Math.max(0, t.Profit), 0);
const base = real
? trades.reduce((sum, t) => sum + t.netProfit, 0)
: account.stageTargetAmount;
if (base <= 0) return "IN_PROGRESS";
const ratio = (fastProfit / base) * 100;
return {
ratio,
limit: LIMIT * 100,
status: ratio > LIMIT * 100
? "RESET_SAME_STAGE"
: "COMPLIANT"
};
عدم فعالیت: از زمان دریافت هر حساب (پس از خرید، قبولی مرحله یا برداشت سود) یا بستهشدن آخرین معامله، حداکثر 14 روز فرصت دارید معامله جدیدی باز کنید؛ در غیر این صورت، حساب کاملا مردود تلقی میشود.
مبنای بررسی قوانین: مبنای نهایی محاسبات، قوانین سایت و دیتای پلتفرم است. پاسخ پشتیبانی و پنل آنالیز صرفاً جهت راهنمایی کاربر ارائه میشود.
پنل آنالیز: اینوست پراپ دارای کامل ترین پنل انالیز در بین پراپفرم ها میباشد اما در قوانینی که پیچیدگی خاص خود را دارند مانند ریسک شناور ممکن هست خطاهایی صورت بگیرد که موقع برسی دستی کارشناس با دقت بیشتری محاسبات را انجام میدهد.
در سرور اختصاصی، پنل آنالیز Real-Time در پلتفرم موبایل، دسکتاپ و وبسایت فعال است.
در سرور عمومی، پنل آنالیز در وبسایت فعال است و ممکن است به دلیل محدودیت اینترنت یا سرور با تأخیر یا اختلال در بعضی مواقع همراه شود. در این شرایط، وضعیت حساب از طریق تیکت قابل بررسی است.
بررسی حساب: در تیکت بررسی حساب، قوانین دراودان روزانه و کل بررسی میشود.
روز معاملاتی: شنبه و یکشنبه بهعنوان روز معاملاتی محاسبه نمیشوند.
زمان باز شدن معامله به عنوان روز معاملاتی محاسبه میشود.
گزارش خطا و باگ: هرگونه باگ یا مغایرت، مانند شارژ حساب با بالانس اشتباه، باید در اولین فرصت به پشتیبانی گزارش شود.
const LIMIT = 14 * DAY;
const start = account.receivedAt;
const now = account.currentTime;
const events = account.trades.flatMap(p => [
{ time: p.EntryTime, id: p.PositionID, type: "OPEN" },
...(p.ExitTime == null ? [] : [
{ time: p.ExitTime, id: p.PositionID, type: "CLOSE" }
])
]).filter(e => e.time >= start && e.time <= now)
.sort((a, b) => a.time - b.time ||
(a.type === "OPEN" ? -1 : 1));
const open = new Set();
const tradingDays = new Set();
let deadline = start + LIMIT;
let violated = false;
for (const e of events) {
if (!open.size && e.time > deadline)
violated = true;
if (e.type === "OPEN") {
open.add(e.id);
const day = brokerDate(e.time);
if (!isSaturday(day) && !isSunday(day))
tradingDays.add(day);
} else {
open.delete(e.id);
if (!open.size)
deadline = e.time + LIMIT;
}
}
if (!open.size && now >= deadline)
violated = true;
return {
inactivityLimit: 14,
tradingDays: tradingDays.size,
status: violated ? "FAILED" : "ACTIVE"
};
استفاده از اختلاف، فریز یا تأخیر قیمت یک نماد بین بروکر و بازار اصلی برای کسب سود غیرواقعی، آربیتراژ محسوب شده و ممنوع است.
استفاده از معاملات فرکانس بالا HFT برای ایجاد سود غیرواقعی از معاملات پیاپی نیز ممنوع است.
در هر دو مورد، بار اول حساب ریست و اخطار داده میشود؛ در صورت تکرار، حساب مردود خواهد شد.
const FORBIDDEN = ["PRICE_ARBITRAGE", "HFT_ABUSE"];
const incidents = user.violationHistory
.filter(v => v.confirmed && FORBIDDEN.includes(v.type))
.sort((a, b) => a.time - b.time);
const current = incidents.findIndex(
v => v.id === account.currentIncidentId
);
if (current === -1)
return "NO_VIOLATION";
return current === 0
? {
status: "WARNING",
action: "RESET_SAME_STAGE"
}
: {
status: "FAILED",
action: "DISABLE_ACCOUNT"
};
حداکثر تعداد حساب فعال همزمان در تمام پلنها 2 حساب و سقف مجموع سرمایه هر کاربر 50,000$ است.
سقف سرمایه هر پلن: اقتصادی 50,000$، نرمال 25,000$ و اسپید 10,000$.
در صورت نقض این محدودیتها، تمامی حسابها پس از شناسایی مردود و کاربر بن میشود. در صورت تردید درباره وضعیت حساب، امکان ثبت تیکت بررسی وجود دارد.
وضعیت در جریان بودن حساب نقضشده در بخش مدیریت چالش اهمیت نداره؛ زمان وقوع نقض حساب در پلتفرم معاملاتی ملاک بررسی است.
رعایت این محدودیتها هنگام دریافت پاداش نیز مجدداً بررسی میشود.
حسابها پس از عبور از 2 مرحله چالش و ورود به ریل، قابل ادغام هستند.
خرید مکرر حسابهای 10K، 15K، 25K یا 50K با الگوی قمار و ریسک مداوم بالا ممکن است موجب محدودیت دائمی خرید شود؛ حسابهای فعال تحت تأثیر قرار نمیگیرند.
const CAPS = {
Economic: 50000,
Normal: 25000,
Speed: 10000
};
const MAX_ACCOUNTS = 2;
const MAX_CAPITAL = 50000;
for (const time of platformStateChangeTimes(user.accounts)) {
const active = user.accounts.filter(
a => platformActiveAt(a, time)
);
const capital = accounts =>
accounts.reduce((sum, a) => sum + a.initialBalance, 0);
const violated =
active.length > MAX_ACCOUNTS ||
capital(active) > MAX_CAPITAL ||
Object.entries(CAPS).some(([plan, max]) =>
capital(active.filter(a => a.plan === plan)) > max
);
if (violated)
return {
status: "VIOLATED",
action: "FAIL_ALL_ACCOUNTS_AND_BAN",
violationTime: time
};
}
return "COMPLIANT";
F A Q
چالش تک مرحله ای و دو مرحله ای در این پلن فعال میباشد
تارگت حساب تک مرحله ای
فاز اول: باید به تارگت 10% سود برسید.
فاز ریل: در حساب ریل هیچ تارگتی وجود ندارد.
تارگت حساب دو مرحله ای
فاز اول: باید به تارگت 10% سود برسید.
فاز دوم: باید به تارگت 5% سود برسید.
فاز ریل: در حساب ریل هیچ تارگتی وجود ندارد.
*محدودیت زمان پاس شدن: محدودیت زمانی در هیچ مرحله ای نیست.
حداقل روز معاملاتی مراحل چالش: 3 روز معاملاتی.*
const TARGETS = {
"1Step": [0.10],
"2Step": [0.10, 0.05]
};
if (account.stage === "Real") return "NO_TARGET";
const target = TARGETS[account.plan][account.phase - 1];
const required = account.startBalance * (1 + target);
const tradingDays = new Set(
account.phaseTrades.map(p => brokerDate(p.EntryTime))
).size;
return {
timeLimit: "UNLIMITED",
status: account.balance >= required && tradingDays >= 3
? "REQUIREMENTS_MET"
: "IN_PROGRESS"
};
چالش دو مرحله ای و تک مرحله ای در این پلن فعال میباشد.
دراودان حساب دو مرحله ای:
حداکثر دراودان روزانه: 6% از بالانس ابتدای روز اکانت.
حداکثر دراودان کلی: 10% از بالانس اولیه اکانت.
دراودان حساب تک مرحله ای:
حداکثر دراودان روزانه: 3% از بالانس ابتدای روز اکانت.
حداکثر دراودان کلی: 6% از بالانس اولیه اکانت.
const LIMITS = {
"1Step": { daily: 0.03, total: 0.06 },
"2Step": { daily: 0.06, total: 0.10 }
};
const { daily, total } = LIMITS[account.plan];
const totalFloor = account.initialBalance * (1 - total);
for (const t of account.history) {
const dailyFloor =
balanceAtBrokerMidnight(t.time) * (1 - daily);
if (Math.min(t.balance, t.equity) <=
Math.max(dailyFloor, totalFloor))
return "VIOLATED";
}
return "ACTIVE";
با سومین برداشت سود ریفاند 100% به تریدر انجام می شود.
const refundRate = 1.00;
const paid = account.withdrawals
.filter(w => w.status === "PAID").length;
if (paid >= 3 && !account.refundPaid)
return {
refund: account.challengeFee * refundRate,
status: "ELIGIBLE"
};
return "NOT_ELIGIBLE";
اولین پاداش: پس از 10 روز معاملاتی در ریل، درخواست در روز 14 یا 28 ماه میلادی قابل ثبت است. روز درخواست، روز معاملاتی محسوب نمیشود.
پاداش دوم به بعد: پس از حداقل 7 روز تقویمی از درخواست قبلی، هر شنبه قابل ثبت است.
واریز: 80% سود حداکثر ظرف 24 ساعت از طریق تتر TRC20، BEP20 یا به صورت ریالی به شماره شبا ثبت شده واریز و حساب به بالانس اولیه ریست میشود.
پس از ثبت درخواست تا پایان بررسی، انجام معامله ممنوع است.
const first = !account.lastRequest;
const requestDate = date(request.time);
const tradingDays = new Set(
account.realTrades
.filter(t => date(t.EntryTime) < requestDate)
.map(t => date(t.EntryTime))
).size;
const eligible = first
? [14, 28].includes(dayOfMonth(request.time))
&& tradingDays >= 10
: isSaturday(request.time)
&& calendarDays(account.lastRequest.time, request.time) >= 7;
if (!eligible) return "NOT_ELIGIBLE";
if (account.reviewPending) return "REQUEST_PENDING";
return {
status: "ELIGIBLE",
rewardUSD: Math.max(0, account.balance - account.initialBalance) * 0.80,
payoutMethods: ["IRR", "USDT_TRC20", "USDT_BEP20"],
payoutDeadline: request.time + 24 * HOUR,
tradingAllowedDuringReview: false,
balanceAfterPayout: account.initialBalance
};
F A Q
چالش تک مرحله ای و دو مرحله ای در این پلن فعال میباشد
تارگت حساب تک مرحله ای
فاز اول: باید به تارگت 6% سود برسید.
فاز ریل: در حساب ریل هیچ تارگتی وجود ندارد.
تارگت حساب دو مرحله ای
فاز اول: باید به تارگت 10% سود برسید.
فاز دوم: باید به تارگت 5% سود برسید.
فاز ریل: در حساب ریل هیچ تارگتی وجود ندارد.
*محدودیت زمان پاس شدن: محدودیت زمانی در هیچ مرحله ای نیست.
حداقل روز معاملاتی مراحل چالش: 3 روز معاملاتی.*
const TARGETS = {
"1Step": [0.06],
"2Step": [0.10, 0.05]
};
if (account.stage === "Real") return "NO_TARGET";
const target = TARGETS[account.plan][account.phase - 1];
const required = account.startBalance * (1 + target);
const tradingDays = new Set(
account.phaseTrades
.map(p => brokerDate(p.EntryTime))
.filter(d => !isWeekend(d))
).size;
return {
timeLimit: "UNLIMITED",
status: account.balance >= required && tradingDays >= 3
? "REQUIREMENTS_MET"
: "IN_PROGRESS"
};
چالش دو مرحله ای و تک مرحله ای در این پلن فعال میباشد.
دراودان حساب دو مرحله ای:
حداکثر دراودان روزانه: 5% از بالانس ابتدای روز اکانت.
حداکثر دراودان کلی: 10% از بالانس اولیه اکانت.
دراودان حساب تک مرحله ای:
حداکثر دراودان روزانه: 2% از بالانس ابتدای روز اکانت.
حداکثر دراودان کلی: 6% از بالانس اولیه اکانت.
const LIMITS = {
"1Step": { daily: 0.02, total: 0.06 },
"2Step": { daily: 0.05, total: 0.10 }
};
const { daily, total } = LIMITS[account.plan];
const totalFloor = account.initialBalance * (1 - total);
for (const t of account.history) {
const dailyFloor =
balanceAtBrokerMidnight(t.time) * (1 - daily);
if (Math.min(t.balance, t.equity) <=
Math.max(dailyFloor, totalFloor))
return "VIOLATED";
}
return "ACTIVE";
با سومین برداشت سود ریفاند 150% به تریدر انجام می شود.
const refundRate = 1.50;
const paid = account.withdrawals
.filter(w => w.status === "PAID").length;
if (paid >= 3 && !account.refundPaid)
return {
refund: account.challengeFee * refundRate,
status: "ELIGIBLE"
};
return "NOT_ELIGIBLE";
این قانون فقط در مرحله ریل اعمال میشود و مراحل چالش شامل آن نیستند.
حسابهای کمتر از 10K: مجموع ضرر معاملات باز نباید بیش از 2% بالانس لحظهای باشد.
حسابهای 10K و بالاتر: کمترین ایکویتی یا بالانس نباید بیش از 2% از بالاترین بالانس معاملات همزمان کاهش یابد. معاملات با فاصله کمتر از 5 دقیقه، در تمام نمادها همزمان محسوب میشوند.
عبور از حد مجاز نقض قانون است؛ مگر در اثر اسلیپیج و در صورتی که مجموع استاپ معاملات همزمان 1.5% یا کمتر باشد.
const LIMIT = 0.02;
const GAP = 5 * MINUTE;
if (account.stage !== "Real")
return "NOT_APPLICABLE";
const exception = t =>
t.slippageConfirmed &&
t.concurrentStopRisk <= 0.015;
// Accounts below 10K
if (account.initialBalance < 10000) {
for (const t of account.allEvents) {
if (t.balance - t.equity > t.balance * LIMIT &&
!exception(t))
return "VIOLATED";
}
}
// Accounts 10K and above
else {
const groups = [];
let group = null;
for (const trade of sortByEntry(account.trades)) {
if (group) {
const allClosed = group.trades.every(
p => p.exitTime <= trade.entryTime
);
const lastExit = Math.max(
...group.trades.map(p => p.exitTime)
);
const gap = trade.entryTime - lastExit;
if (allClosed && gap >= GAP)
group = null;
}
if (!group) {
group = { firstEntry: trade.entryTime, trades: [] };
groups.push(group);
}
group.trades.push(trade);
}
for (const g of groups) {
let peak = balanceBefore(g.firstEntry);
for (const t of allEventsBetween(
g.firstEntry, groupLastExit(g)
)) {
peak = Math.max(peak, t.balance);
if (Math.min(t.balance, t.equity) <
peak * (1 - LIMIT) && !exception(t))
return "VIOLATED";
}
}
}
return "PASSED";
این قانون فقط در ریل اعمال میشود
شاخص باید 40% یا کمتر باشد.
عبور از حد مجاز موجب مردودی نیست و تریدر میتواند تا رسیدن شاخص به حد مجاز ادامه دهد.
فرمول:
(سود بهترین روز ÷ سود خالص حساب) × 100
در حسابهای کمتر از 10K، سود بهترین روز بر اساس سود خالص (Net Profit) و در 10K و بالاتر بر اساس سود ناخالص (Gross Profit) محاسبه میشود، تاریخ باز شدن پوزیشن مشخص میکند سود معامله برای کدام روز محاسبه شود.
مثال: با 1,000 دلار سود خالص، سود بهترین روز باید حداکثر 400 دلار باشد.
if (account.stage !== "Real")
return "NOT_APPLICABLE";
const limit = 40;
const metric = account.initialBalance >= 10000
? "grossProfit"
: "netProfit";
const daily = new Map();
for (const trade of account.currentPeriod.closedTrades) {
const day = brokerDate(trade.EntryTime);
const d = daily.get(day) || { netProfit: 0, grossProfit: 0 };
d.netProfit += trade.netProfit;
d.grossProfit += trade.grossProfit;
daily.set(day, d);
}
const days = [...daily.values()];
const net = days.reduce((s, d) => s + d.netProfit, 0);
const best = Math.max(0, ...days.map(d => d[metric]));
const index = net > 0 ? (best / net) * 100 : 0;
return {
index,
limit,
status: net > 0 && index <= limit
? "COMPLIANT"
: "IN_PROGRESS"
};
اولین پاداش: پس از 30 روز تقویمی از اولین روز معاملاتی و تکمیل 10 روز معاملاتی در ریل، درخواست در روز 14 یا 28 ماه میلادی قابل ثبت است. روز درخواست در محاسبه 30 روز لحاظ نمیشود.
پاداش دوم به بعد: در همان تاریخ درخواست ماه قبل قابل ثبت است.
واریز: 80% سود حداکثر ظرف 24 ساعت پس از پایان روز درخواست، از طریق تتر TRC20, BEP20 یا به صورت ریالی به شماره شبا ثبت شده واریز و حساب به بالانس اولیه ریست میشود.
پس از ثبت درخواست تا پایان بررسی، انجام معامله ممنوع است.
const first = !account.lastRequest;
const requestDate = date(request.time);
const entries = account.realTrades
.map(t => date(t.EntryTime));
const tradingDays = new Set(
entries.filter(d => d < requestDate && !isWeekend(d))
).size;
const eligible = first
? entries.length > 0
&& calendarDays(minDate(entries), requestDate) >= 30
&& tradingDays >= 10
&& [14, 28].includes(dayOfMonth(request.time))
: sameDayOfMonth(request.time, account.lastRequest.time)
&& calendarMonths(account.lastRequest.time, request.time) >= 1;
if (!eligible) return "NOT_ELIGIBLE";
if (account.reviewPending) return "REQUEST_PENDING";
return {
status: "ELIGIBLE",
rewardUSD: Math.max(0, account.balance - account.initialBalance) * 0.80,
payoutMethods: ["IRR", "USDT_TRC20", "USDT_BEP20"],
payoutDeadline: endOfDay(request.time) + 24 * HOUR,
tradingAllowedDuringReview: false,
resetBalanceAfterPayout: account.initialBalance
};
F A Q
چالش تک مرحله ای و دو مرحله ای در این پلن فعال میباشد
تارگت حساب تک مرحله ای
فاز اول: باید به تارگت 6% سود برسید.
فاز ریل: در حساب ریل هیچ تارگتی وجود ندارد.
تارگت حساب دو مرحله ای
فاز اول: باید به تارگت 10% سود برسید.
فاز دوم: باید به تارگت 5% سود برسید.
فاز ریل: در حساب ریل هیچ تارگتی وجود ندارد.
*محدودیت زمان پاس شدن: محدودیت زمانی در هیچ مرحله ای نیست.
حداقل روز معاملاتی مراحل چالش: 3 روز معاملاتی.*
const TARGETS = {
"1Step": [0.06],
"2Step": [0.10, 0.05]
};
if (account.stage === "Real") return "NO_TARGET";
const target = TARGETS[account.plan][account.phase - 1];
const required = account.startBalance * (1 + target);
const tradingDays = new Set(
account.phaseTrades
.map(p => brokerDate(p.EntryTime))
.filter(d => !isWeekend(d))
).size;
return {
timeLimit: "UNLIMITED",
status: account.balance >= required && tradingDays >= 3
? "REQUIREMENTS_MET"
: "IN_PROGRESS"
};
چالش دو مرحله ای و تک مرحله ای در این پلن فعال میباشد.
دراودان حساب دو مرحله ای:
حداکثر دراودان روزانه: 5% از بالانس ابتدای روز اکانت.
حداکثر دراودان کلی: 10% از بالانس اولیه اکانت.
دراودان حساب تک مرحله ای:
حداکثر دراودان روزانه: 2% از بالانس ابتدای روز اکانت.
حداکثر دراودان کلی: 6% از بالانس اولیه اکانت.
const LIMITS = {
"1Step": { daily: 0.02, total: 0.06 },
"2Step": { daily: 0.05, total: 0.10 }
};
const { daily, total } = LIMITS[account.plan];
const totalFloor = account.initialBalance * (1 - total);
for (const t of account.history) {
const dailyFloor =
balanceAtBrokerMidnight(t.time) * (1 - daily);
if (Math.min(t.balance, t.equity) <=
Math.max(dailyFloor, totalFloor))
return "VIOLATED";
}
return "ACTIVE";
با سومین برداشت سود ریفاند 100% به تریدر انجام می شود.
const refundRate = 1.00;
const paid = account.withdrawals
.filter(w => w.status === "PAID").length;
if (paid >= 3 && !account.refundPaid)
return {
refund: account.challengeFee * refundRate,
status: "ELIGIBLE"
};
return "NOT_ELIGIBLE";
این قانون فقط در مرحله ریل اعمال میشود و مراحل چالش شامل آن نیستند.
حسابهای کمتر از 10K: مجموع ضرر معاملات باز نباید بیش از 2% بالانس لحظهای باشد.
حسابهای 10K و بالاتر: کمترین ایکویتی یا بالانس نباید بیش از 2% از بالاترین بالانس معاملات همزمان کاهش یابد. معاملات با فاصله کمتر از 5 دقیقه، در تمام نمادها همزمان محسوب میشوند.
عبور از حد مجاز نقض قانون است؛ مگر در اثر اسلیپیج و در صورتی که مجموع استاپ معاملات همزمان 1.5% یا کمتر باشد.
const LIMIT = 0.02;
const GAP = 5 * MINUTE;
if (account.stage !== "Real")
return "NOT_APPLICABLE";
const exception = t =>
t.slippageConfirmed &&
t.concurrentStopRisk <= 0.015;
// Accounts below 10K
if (account.initialBalance < 10000) {
for (const t of account.allEvents) {
if (t.balance - t.equity > t.balance * LIMIT &&
!exception(t))
return "VIOLATED";
}
}
// Accounts 10K and above
else {
const groups = [];
let group = null;
for (const trade of sortByEntry(account.trades)) {
if (group) {
const allClosed = group.trades.every(
p => p.exitTime <= trade.entryTime
);
const lastExit = Math.max(
...group.trades.map(p => p.exitTime)
);
const gap = trade.entryTime - lastExit;
if (allClosed && gap >= GAP)
group = null;
}
if (!group) {
group = { firstEntry: trade.entryTime, trades: [] };
groups.push(group);
}
group.trades.push(trade);
}
for (const g of groups) {
let peak = balanceBefore(g.firstEntry);
for (const t of allEventsBetween(
g.firstEntry, groupLastExit(g)
)) {
peak = Math.max(peak, t.balance);
if (Math.min(t.balance, t.equity) <
peak * (1 - LIMIT) && !exception(t))
return "VIOLATED";
}
}
}
return "PASSED";
حساب های کمتر از 10K در مراحل چالش شاخص عملکرد ندارند.
در چالش حسابهای 10K و بالاتر، شاخص باید 40% یا کمتر و در ریل تمام بالانسها 20% یا کمتر باشد.
عبور از حد مجاز موجب مردودی نیست و تریدر میتواند تا رسیدن شاخص به حد مجاز ادامه دهد.
فرمول:
(سود بهترین روز ÷ سود خالص حساب) × 100
در ریل حسابهای کمتر از 10K، سود بهترین روز بر اساس سود خالص (Net Profit) و در 10K و بالاتر بر اساس سود ناخالص (Gross Profit) محاسبه میشود ،تاریخ باز شدن پوزیشن مشخص میکند سود معامله برای کدام روز محاسبه شود.
مثال شاخص 40%: با 1,000 دلار سود خالص، سود بهترین روز باید حداکثر 400 دلار باشد.
const real = account.stage === "Real";
const large = account.initialBalance >= 10000;
if (!real && !large)
return "NOT_APPLICABLE";
const limit = real ? 20 : 40;
const metric = real && large
? "grossProfit"
: "netProfit";
const daily = new Map();
for (const trade of account.currentPeriod.closedTrades) {
const day = brokerDate(trade.EntryTime);
const d = daily.get(day) || { netProfit: 0, grossProfit: 0 };
d.netProfit += trade.netProfit;
d.grossProfit += trade.grossProfit;
daily.set(day, d);
}
const days = [...daily.values()];
const net = days.reduce((s, d) => s + d.netProfit, 0);
const best = Math.max(0, ...days.map(d => d[metric]));
const index = net > 0 ? (best / net) * 100 : 0;
return {
index,
limit,
status: net > 0 && index <= limit
? "COMPLIANT"
: "IN_PROGRESS"
};
اولین پاداش: پس از 30 روز تقویمی از اولین روز معاملاتی و تکمیل 10 روز معاملاتی در ریل، درخواست در روز 14 یا 28 ماه میلادی قابل ثبت است. روز درخواست در محاسبه 30 روز لحاظ نمیشود.
پاداش دوم به بعد: در همان تاریخ درخواست ماه قبل قابل ثبت است.
واریز: 80% سود حداکثر ظرف 24 ساعت پس از پایان روز درخواست، از طریق تتر TRC20, BEP20 یا به صورت ریالی به شماره شبا ثبت شده واریز و حساب به بالانس اولیه ریست میشود.
پس از ثبت درخواست تا پایان بررسی، انجام معامله ممنوع است.
const first = !account.lastRequest;
const requestDate = date(request.time);
const entries = account.realTrades
.map(t => date(t.EntryTime));
const tradingDays = new Set(
entries.filter(d => d < requestDate && !isWeekend(d))
).size;
const eligible = first
? entries.length > 0
&& calendarDays(minDate(entries), requestDate) >= 30
&& tradingDays >= 10
&& [14, 28].includes(dayOfMonth(request.time))
: sameDayOfMonth(request.time, account.lastRequest.time)
&& calendarMonths(account.lastRequest.time, request.time) >= 1;
if (!eligible) return "NOT_ELIGIBLE";
if (account.reviewPending) return "REQUEST_PENDING";
return {
status: "ELIGIBLE",
rewardUSD: Math.max(0, account.balance - account.initialBalance) * 0.80,
payoutMethods: ["IRR", "USDT_TRC20", "USDT_BEP20"],
payoutDeadline: endOfDay(request.time) + 24 * HOUR,
tradingAllowedDuringReview: false,
resetBalanceAfterPayout: account.initialBalance
};