اندیکاتور محاسبه حجم معامله در متاتریدر: محاسبهٔ لات بر اساس ریسک
فهرست مطالب
فهرست مطالب
اندیکاتور محاسبه حجم معامله در متاتریدر حساب میکند هر معامله چند لات باشد تا اگر حد ضرر خورد، فقط همان مبلغی از دست برود که از قبل پذیرفتهاید؛ مثلاً یک درصد موجودی. در فارسیِ معاملهگران فارکس، «حجم معامله» یعنی اندازهٔ معاملهٔ خود شما بر حسب لات، نه حجم معاملات کل بازار. این مطلب دربارهٔ همین ابزار است. برای اندیکاتورهای حجم بازار، بخش آخر را ببینید.
منطق و اصول مدیریت سرمایه، مثل اینکه چرا ریسک هر معامله باید کوچک بماند، در مقالهٔ مدیریت سرمایه چیست؟ آمده است. اینجا به خود محاسبه و ابزار آن میپردازیم.
فرمول محاسبهٔ حجم معامله
حجم معامله سه ورودی دارد: مبلغی که حاضرید در این معامله از دست بدهید، فاصلهٔ حد ضرر، و ارزش هر پیپ برای یک لات کامل از همان نماد.
حجم (لات) = مبلغ ریسک ÷ (فاصلهٔ حد ضرر به پیپ × ارزش هر پیپ برای یک لات)
- مثال یورو/دلار: موجودی ۱٬۰۰۰ دلار و ریسک یک درصد یعنی ۱۰ دلار. حد ضرر ۲۵ پیپ است و ارزش هر پیپ برای یک لات کامل EURUSD در حساب دلاری ۱۰ دلار. پس هر لات در حد ضرر ۲۵۰ دلار ضرر میدهد و حجم درست ۱۰ ÷ ۲۵۰ = ۰٫۰۴ لات است.
- مثال طلا: در بیشتر بروکرها هر لات XAUUSD صد اونس است، پس هر یک دلار حرکت قیمت برای یک لات ۱۰۰ دلار سود یا ضرر دارد. با حد ضرر ۵ دلاری، هر لات ۵۰۰ دلار ضرر میدهد و برای همان ۱۰ دلار ریسک حجم ۰٫۰۲ لات است. نکتههای دیگر اکسپرت طلا، از اسپرد تا بکتست، در راهنمای اکسپرت طلا آمده است.
همین ۱۰ دلار ریسک در دو نماد دو حجم متفاوت داد. اگر حجم را از سر عادت ثابت بگذارید، مثلاً همیشه ۰٫۱ لات، ریسک واقعی هر معامله با هر نماد و هر حد ضرر عوض میشود.
چرا با اندیکاتور حساب کنیم، نه با ماشینحساب؟
ارزش هر پیپ برای همهٔ نمادها ۱۰ دلار نیست. برای جفتارزهایی مثل USDJPY یا جفتهای بیدلار با قیمت روز عوض میشود. واحد پول حساب، اندازهٔ قرارداد و گام حجم (مثلاً ۰٫۰۱ لات) هم در بروکرها فرق دارد. اندیکاتور این عددها را مستقیم از خود بروکر میخواند و حجم را به گام مجاز گرد میکند. ماشینحسابهای سایتها ممکن است با فرضهای کلی حساب کنند و چند درصد خطا بدهند.
اندیکاتور محاسبه حجم خوب چه دارد؟
- ریسک به درصد یا مبلغ ثابت، از موجودی (Balance) یا ارزش لحظهای حساب (Equity).
- حد ضرر روی نمودار: خطی که میکشید و حجم با جابهجا کردنش همان لحظه دوباره حساب میشود.
- گرد کردن به گام بروکر و هشدار وقتی حد ضرر آنقدر بزرگ است که حتی کمترین حجم مجاز هم از ریسک شما بیشتر میشود.
- مارجین لازم و مقایسه با مارجین آزاد حساب، پیش از آنکه دکمهٔ خرید را بزنید.
- نسبت سود به زیان وقتی خط حد سود هم کشیده شود.
- کار با طلا، شاخصها و ارز دیجیتال، نه فقط جفتارزها.
کد محاسبهٔ حجم در MQL5
این تابع همان فرمول بالاست، با عددهایی که از خود بروکر میآید. فاصلهٔ حد ضرر را به واحد قیمت میگیرد، مثلاً 0.0025 برای ۲۵ پیپ در EURUSD. ارزش و اندازهٔ یک «تیک» را از مشخصات نماد میخواند و حجم را به پایین، تا گام مجاز بروکر، گرد میکند.
// Lots that lose riskMoney if price moves stopDistance (in price units) against the trade.
double LotsForRisk(string symbol, double riskMoney, double stopDistance)
{
double tickValue = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE);
double tickSize = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE);
double step = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP);
double minLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN);
double maxLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX);
if(tickValue <= 0 || tickSize <= 0 || stopDistance <= 0)
return 0;
double lossPerLot = stopDistance / tickSize * tickValue; // money lost by 1.00 lot at the stop
double lots = MathFloor(riskMoney / lossPerLot / step) * step;
if(lots < minLot)
return 0; // the stop is too wide for this risk
return MathMin(lots, maxLot);
}
// Example: risk 1% of the balance with a 25-pip stop on EURUSD.
// double lots = LotsForRisk(_Symbol, AccountInfoDouble(ACCOUNT_BALANCE) * 0.01, 0.0025);
در متاتریدر ۴ هم همین توابع SymbolInfoDouble کار میکند. در کدهای قدیمیتر همان عددها را با MarketInfo میخوانند. اگر تابع صفر برگرداند، یعنی با این حد ضرر حتی کمترین حجم مجاز هم بیش از ریسک شماست؛ یا حد ضرر را کوچکتر کنید یا از آن معامله بگذرید.
حجم خودکار در ربات معاملهگر
بیشتر رباتهای حرفهای همین محاسبه را پیش از هر معامله خودشان انجام میدهند: درصد ریسک را از تنظیمات میگیرند و حجم را از فاصلهٔ حد ضرر همان معامله حساب میکنند. اگر ربات فعلیتان حجم ثابت میگذارد، این تغییر را میشود به آن اضافه کرد. اکسپرت مدیریت سرمایه همین محاسبه را برای معاملههایی انجام میدهد که خودتان یا ربات دیگری باز میکنید، و قاعدههای ریسک شما، مثل سقف ضرر روزانه و سربهسر کردن معامله، را اجرا میکند. برای ربات کامل با استراتژی خودتان، سفارش اکسپرت متاتریدر ۴ یا اکسپرت متاتریدر ۵ را ببینید.
اگر منظورتان حجم معاملات بازار است
بعضی جستوجوها برای «حجم معامله» دنبال اندیکاتورهاییاند که فعالیت خود بازار را نشان میدهند، نه اندازهٔ معاملهٔ شما را. مشهورترینشان اینهاست:
- ولوم پروفایل (Volume Profile): حجم معاملهشده در هر سطح قیمت را نشان میدهد و سطحهای پرمعامله را پیدا میکند.
- OBV (On-Balance Volume): حجم روزهای صعودی را جمع و حجم روزهای نزولی را کم میکند تا ببینید فشار خرید بیشتر است یا فروش.
- CMF (Chaikin Money Flow): نشان میدهد در یک دوره، کندلهای پرحجم بیشتر نزدیک سقف خود بسته شدهاند یا نزدیک کف خود؛ یعنی فشار خرید بیشتر بوده یا فشار فروش.
- MFI (Money Flow Index): نوسانگری مثل RSI که حجم را هم در حساب میآورد و اشباع خرید و فروش را نشان میدهد.
در فارکس حجم واقعی همهٔ بازار در دسترس نیست و متاتریدر «حجم تیکی» را نشان میدهد، یعنی تعداد تغییر قیمتها در هر کندل. پس این اندیکاتورها در فارکس تقریبیاند.
پرسشهای رایج
یک لات چقدر است؟
در جفتارزها یک لات کامل معمولاً ۱۰۰٬۰۰۰ واحد از ارز پایه است، ۰٫۱ لات (مینی) ۱۰٬۰۰۰ واحد و ۰٫۰۱ لات (میکرو) ۱٬۰۰۰ واحد. برای طلا و شاخصها اندازهٔ قرارداد را در مشخصات نماد (Specification) همان بروکر ببینید.
چرا حجم اندیکاتور با ماشینحساب سایتها کمی فرق دارد؟
اندیکاتور ارز حساب، ارزش لحظهای پیپ و گام حجم بروکر شما را به کار میبرد و به پایین گرد میکند. ماشینحسابهای عمومی اغلب حساب دلاری و نرخ تقریبی فرض میکنند.
در حساب سنت هم درست کار میکند؟
بله، به شرطی که مقدارها را از بروکر بخواند، مثل کد بالا. در حساب سنت اندازهٔ قرارداد و ارزش تیک با حساب استاندارد فرق دارد؛ فرمول ثابت ۱۰ دلار برای هر پیپ آنجا جواب غلط میدهد.
دیدگاه خود را بنویسید