از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
یک ماه پیش منتشر شده
تعداد بازدید: 131
کد پروژه: 571035
شرح پروژه
سلام برای بهبود اکسپرت زیر نیاز به کمک دارم.
مشخصات کلی و انتظارات و یک نمونه کد اکسپرت قرار داده شده که میتوان آن را اصلاح کرد.
خروجی بصورت .mq5 و برای متاتریدر باشد، این امکان وجود داشته باشد هنگام عملکرد ربات بر روی گوشی پیام بدهد
📌 مشخصات کلی:
• نوع بازار: XAUUSD (طلا)
• تایمفریم ورود: M1 یا M15 یا M5
• تایمفریم تأییدی: M15 و H1
• سشنهای معاملاتی: فقط لندن و نیویورک
• میانگین سود به ضرر (RR): 1:1.5 یا 1:2
🔍 قوانین ورود (Entry Rules):
1. تایید روند (از تایمفریم بالاتر):
• در تایمفریم M15 یا H1، اگر:
• قیمت بالای EMA200 → فقط پوزیشن Buy
• قیمت زیر EMA200 → فقط پوزیشن Sell
2. ساختار بازار (Market Structure) در M5 یا M1:
• تشخیص Higher High و Higher Low برای Buy
• تشخیص Lower High و Lower Low برای Sell
3. ستاپهای ورود اصلی (کاندیشن کندلی):
در ناحیهای که ساختار تأیید شده باشد، دنبال یکی از این سیگنالها باشید:
الف) Engulfing Candle:
• Bullish Engulfing در روند صعودی
• Bearish Engulfing در روند نزولی
ب) Pin Bar معتبر:
• دارای فیتیله بلند و بسته شدن در جهت روند اصلی
ج) ساختار SP2L (Second Leg داخل FVG): استراتژی پورصمدی)
• در صورت وجود Fair Value Gap (FVG) در M5 یا M1، ورود در پای دوم (Second Leg) پس از برخورد قیمت به FVG
🎯 حد سود و حد ضرر:
• حد ضرر (SL): پشت کندل سیگنال
• حد سود (TP): حداقل 1.5 تا 2 برابر SL
• از ATR(14) در M1 یا M5 برای محاسبه دقیقتر SL استفاده شود
📈 فیلترهای اضافی برای بهبود Win Rate:
1. ورود فقط در ساعتهای زیر:
• به وقت ایران : 06:00 – 19:00
2. اجتناب از ورود در:
• زمان اخبار مهم (FOMC، NFP، CPI)
• تایم فریمهای کمحجم (قبل از باز شدن سشنها)
3. ورود فقط زمانی که:
• اسپرد کمتر از 12 پیپ باشد
انتظارات :
🧠 ۱. منطق معاملاتی مشخص و تستشده
• استراتژی روشن (مثلاً پرایس اکشن، اندیکاتورها، الگوریتمی و…)
• قوانین ورود و خروج دقیق
• حد ضرر (Stop Loss) و حد سود (Take Profit) مشخص
🔄 ۲. عملکرد کاملاً خودکار
• بدون نیاز به دخالت دستی برای ورود و خروج
• مدیریت کامل سفارشها، حجم معاملات و مدیریت ریسک
📊 ۳. مدیریت ریسک هوشمند
• تعیین درصد ریسک بر اساس Equity
• تنظیم حجم معاملات (Lot size) بهصورت خودکار بر پایه SL و ریسک مجاز
🕰️ ۴. پشتیبانی از مدیریت زمان و سشنهای معاملاتی
• امکان فعالسازی فقط در تایم مشخص شده
• قابلیت محدود کردن معامله در زمان اخبار مهم
📉 ۵. فیلترهای تایمفریم بالا
• بررسی روند در تایمفریمهای بالاتر برای فیلتر ورود
• امکان تحلیل مولتیتایمفریم (Multi Time Frame Analysis)
📈 6. نمایش اطلاعات روی چارت و ارسال هشدار
• پنل گرافیکی برای کنترل وضعیت EA (فعال/غیرفعال، تنظیمات، وضعیت معاملات)
• ارسال پیام موقع باز و بسته شدن معامله
📉 7. پشتیبانی از اندیکاتورها یا الگوهای خاص
• پشتیبانی از کندلهای خاص مثل Pin Bar، Engulfing و…
• تحلیل FVG، SMC، ICT، یا اندیکاتورهایی مثل RSI، MA، ATR و…
⸻
⛔ 8. کنترل تعداد معاملات و شرایط بازار
• تعیین حداکثر معاملات همزمان : 3 معامله
• اجتناب از معاملات در شرایط پرنوسان (مثل اخبار مهم یا اسپرد بالا)
⸻
🧩 9. پایداری و بهینهسازی اجرا
• استفاده بهینه از منابع سیستم
• جلوگیری از خطاهای رایج مثل Requote، OffQuotes یا Order Send Error
در زیر یک نمونه فایل طراحی شده برای متا 4 هست میتوان برای بهبود استفاده کرد ولی خروجی بصورت .mq5 باشد
//+------------------------------------------------------------------+
//| Fast Scalping XAUUSD Expert Advisor (Final Fixed Version) |
//+------------------------------------------------------------------+
#property strict
input double RiskPercent = 1.0;
input int Slippage = 3;
input int MagicNumber = 2023;
input bool UseSessionFilter = true;
input bool UseRSIFilter = true;
// تنظیم سشن GMT+2
input int LondonStart = 9;
input int LondonEnd = 12;
input int NYStart = 14;
input int NYEnd = 17;
input int EMA_Period = 200;
input int RSI_Period = 14;
input int RSI_Upper = 70;
input int RSI_Lower = 30;
input double ATR_Multiplier_SL = 1.0;
input double ATR_Multiplier_TP = 2.0;
//+------------------------------------------------------------------+
bool IsTradingSession()
{
if (!UseSessionFilter) return true;
int hour = TimeHour(TimeCurrent());
return (hour >= LondonStart && hour < LondonEnd) || (hour >= NYStart && hour < NYEnd);
}
//+------------------------------------------------------------------+
bool IsBullishEngulfing()
{
double prevOpen = iOpen(Symbol(), PERIOD_M5, 2);
double prevClose = iClose(Symbol(), PERIOD_M5, 2);
double currOpen = iOpen(Symbol(), PERIOD_M5, 1);
double currClose = iClose(Symbol(), PERIOD_M5, 1);
return (prevClose < prevOpen && currClose > currOpen && currClose > prevOpen && currOpen < prevClose);
}
bool IsBearishEngulfing()
{
double prevOpen = iOpen(Symbol(), PERIOD_M5, 2);
double prevClose = iClose(Symbol(), PERIOD_M5, 2);
double currOpen = iOpen(Symbol(), PERIOD_M5, 1);
double currClose = iClose(Symbol(), PERIOD_M5, 1);
return (prevClose > prevOpen && currClose < currOpen && currClose < prevOpen && currOpen > prevClose);
}
//+------------------------------------------------------------------+
bool IsRSIConditionMet()
{
if (!UseRSIFilter) return true;
double rsi = iRSI(Symbol(), PERIOD_M5, RSI_Period, PRICE_CLOSE, 1);
return (rsi > RSI_Lower && rsi < RSI_Upper);
}
//+------------------------------------------------------------------+
bool IsTrendUp()
{
double ema = iMA(Symbol(), PERIOD_M15, EMA_Period, 0, MODE_EMA, PRICE_CLOSE, 0);
double price = iClose(Symbol(), PERIOD_M15, 0);
return (price > ema);
}
bool IsTrendDown()
{
double ema = iMA(Symbol(), PERIOD_M15, EMA_Period, 0, MODE_EMA, PRICE_CLOSE, 0);
double price = iClose(Symbol(), PERIOD_M15, 0);
return (price < ema);
}
//+------------------------------------------------------------------+
int GetMyOrdersCount()
{
int total = 0;
for (int i = 0; i < OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
total++;
}
}
return total;
}
//+------------------------------------------------------------------+
double CalculateLotSize(double stopLossDistance)
{
double tickValue = MarketInfo(Symbol(), MODE_TICKVALUE);
if (tickValue <= 0) tickValue = 10.0; // پیشفرض برای XAUUSD استاندارد
double riskAmount = AccountBalance() * RiskPercent / 100.0;
double lotSize = riskAmount / (stopLossDistance * tickValue);
lotSize = MathMax(0.01, MathMin(50.0, lotSize));
return NormalizeDouble(lotSize, 2);
}
//+------------------------------------------------------------------+
void OpenBuyPosition()
{
double atr = iATR(Symbol(), PERIOD_M5, 14, 1);
double stopLoss = Ask - (atr * ATR_Multiplier_SL);
double takeProfit = Ask + (atr * ATR_Multiplier_TP);
double lotSize = CalculateLotSize(atr * ATR_Multiplier_SL);
int ticket = OrderSend(Symbol(), OP_BUY, lotSize, Ask, Slippage, stopLoss, takeProfit,
"Buy Order", MagicNumber, 0, clrBlue);
if (ticket < 0)
Print("Buy Order Error: ", GetLastError());
}
void OpenSellPosition()
{
double atr = iATR(Symbol(), PERIOD_M5, 14, 1);
double stopLoss = Bid + (atr * ATR_Multiplier_SL);
double takeProfit = Bid - (atr * ATR_Multiplier_TP);
double lotSize = CalculateLotSize(atr * ATR_Multiplier_SL);
int ticket = OrderSend(Symbol(), OP_SELL, lotSize, Bid, Slippage, stopLoss, takeProfit,
"Sell Order", MagicNumber, 0, clrRed);
if (ticket < 0)
Print("Sell Order Error: ", GetLastError());
}
//+------------------------------------------------------------------+
void OnTick()
{
if (!IsTradingSession()) return;
if (GetMyOrdersCount() > 0) return;
if (IsBullishEngulfing() && IsTrendUp() && IsRSIConditionMet())
OpenBuyPosition();
if (IsBearishEngulfing() && IsTrendDown() && IsRSIConditionMet())
OpenSellPosition();
}
//+------------------------------------------------------------------+.
مهارت ها و تخصص های مورد نیاز
مهلت برای انجام
30روز
وضعیت مناقصه
در حال انجام
درباره کارفرما
عضویت دو سال پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
متأسفانه مهلت ارسال پیشنهاد این پروژه به پایان رسیده و پروژه بسته شده است؛ اما فرصتهای متعددی در سایت موجود میباشد.
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار