EA_Gold_MNAKOO

MQL4 Experts

Specification

//+------------------------------------------------------------------+
//| XAUUSD Automated Forex Robot                                     |
//| Enhanced Version with Error Handling and Improvements           |
//+------------------------------------------------------------------+
input int FastMA = 10;                 // Fast moving average period
input int SlowMA = 50;                 // Slow moving average period
input int RSI_Period = 14;             // RSI period
input double Overbought = 70;          // RSI overbought level
input double Oversold = 30;            // RSI oversold level
input double RiskPercent = 1.0;        // Risk per trade as a percentage of account equity
input double ATRMultiplier = 2.0;      // ATR multiplier for stop-loss
input double TrailingStop = 300;       // Trailing stop in points
input double MinLotSize = 0.01;        // Minimum lot size
input double LotStep = 0.01;           // Lot size increment
input int ATR_Period = 14;             // ATR period
input int MaxSlippage = 3;             // Maximum slippage in points
input int MAGIC_NUMBER = 123456;       // Unique identifier for trades
input string TradeComment = "XAUUSD Bot"; // Trade comment

//+------------------------------------------------------------------+
//| OnTick Function - Main Logic                                     |
//+------------------------------------------------------------------+
void OnTick() {
    // Calculate indicators
    static double fastMA, slowMA, rsi, atr;
    fastMA = iMA(NULL, 0, FastMA, 0, MODE_EMA, PRICE_CLOSE, 0);
    slowMA = iMA(NULL, 0, SlowMA, 0, MODE_EMA, PRICE_CLOSE, 0);
    rsi = iRSI(NULL, 0, RSI_Period, PRICE_CLOSE, 0);
    atr = iATR(NULL, 0, ATR_Period, 0);

    // Check for existing trades
    bool buyOpen = IsTradeOpen(OP_BUY);
    bool sellOpen = IsTradeOpen(OP_SELL);

    // Entry logic
    if (fastMA > slowMA && rsi > Oversold && rsi < 50 && !buyOpen) {
        // Buy Signal
        double sl = Bid - ATRMultiplier * atr;
        double tp = Bid + ATRMultiplier * atr * 2;
        double lotSize = CalculateLotSize(sl);
        OpenTrade(OP_BUY, lotSize, sl, tp);
    }

    if (fastMA < slowMA && rsi < Overbought && rsi > 50 && !sellOpen) {
        // Sell Signal
        double sl = Ask + ATRMultiplier * atr;
        double tp = Ask - ATRMultiplier * atr * 2;
        double lotSize = CalculateLotSize(sl);
        OpenTrade(OP_SELL, lotSize, sl, tp);
    }

    // Exit logic (Close trades when conditions reverse)
    if (buyOpen && (fastMA < slowMA || rsi >= Overbought)) {
        CloseTrade(OP_BUY);
    }

    if (sellOpen && (fastMA > slowMA || rsi <= Oversold)) {
        CloseTrade(OP_SELL);
    }

    // Manage Trailing Stop
    ManageTrailingStop();
}

//+------------------------------------------------------------------+
//| Calculate Lot Size Based on Risk                                 |
//+------------------------------------------------------------------+
double CalculateLotSize(double stopLossPrice) {
    double accountEquity = AccountEquity();
    double riskAmount = (RiskPercent / 100) * accountEquity;
    double stopLossDistance = MathAbs(Bid - stopLossPrice);
    double lotSize = riskAmount / (stopLossDistance * MarketInfo(Symbol(), MODE_TICKVALUE));

    // Adjust lot size to broker limits
    lotSize = MathMax(lotSize, MinLotSize);
    lotSize = NormalizeDouble(MathFloor(lotSize / LotStep) * LotStep, 2);
    return lotSize;
}

//+------------------------------------------------------------------+
//| Open Trade Function                                              |
//+------------------------------------------------------------------+
void OpenTrade(int tradeType, double lotSize, double stopLoss, double takeProfit) {
    double price = tradeType == OP_BUY ? Ask : Bid;
    int ticket = OrderSend(Symbol(), tradeType, lotSize, price, MaxSlippage, stopLoss, takeProfit, TradeComment, MAGIC_NUMBER, 0, Blue);
    if (ticket < 0) {
        int errorCode = GetLastError();
        Print("Error opening trade: ", errorCode, ". Retrying...");
        Sleep(1000); // Retry after 1 second
        ticket = OrderSend(Symbol(), tradeType, lotSize, price, MaxSlippage, stopLoss, takeProfit, TradeComment, MAGIC_NUMBER, 0, Blue);
        if (ticket < 0) {
            Print("Failed to open trade after retry. Error: ", GetLastError());
        }
    } else {
        Print("Trade opened: ", ticket);
    }
}

//+------------------------------------------------------------------+
//| Close Trade Function                                             |
//+------------------------------------------------------------------+
void CloseTrade(int tradeType) {
    for (int i = OrdersTotal() - 1; i >= 0; i--) {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if (OrderSymbol() == Symbol() && OrderType() == tradeType && OrderMagicNumber() == MAGIC_NUMBER) {
                int ticket = OrderClose(OrderTicket(), OrderLots(), tradeType == OP_BUY ? Bid : Ask, MaxSlippage, Red);
                if (ticket < 0) {
                    Print("Error closing trade: ", GetLastError());
                } else {
                    Print("Trade closed: ", ticket);
                }
            }
        }
    }
}

//+------------------------------------------------------------------+
//| Manage Trailing Stop Function                                    |
//+------------------------------------------------------------------+
void ManageTrailingStop() {
    for (int i = OrdersTotal() - 1; i >= 0; i--) {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC_NUMBER) {
                double newStopLoss;
                if (OrderType() == OP_BUY) {
                    newStopLoss = Bid - TrailingStop * Point;
                    if (newStopLoss > OrderStopLoss()) {
                        OrderModify(OrderTicket(), OrderOpenPrice(), newStopLoss, OrderTakeProfit(), 0, Blue);
                    }
                } else if (OrderType() == OP_SELL) {
                    newStopLoss = Ask + TrailingStop * Point;
                    if (newStopLoss < OrderStopLoss()) {
                        OrderModify(OrderTicket(), OrderOpenPrice(), newStopLoss, OrderTakeProfit(), 0, Blue);
                    }
                }
            }
        }
    }
}

//+------------------------------------------------------------------+
//| Check if Trade Exists                                            |
//+------------------------------------------------------------------+
bool IsTradeOpen(int tradeType) {
    for (int i = OrdersTotal() - 1; i >= 0; i--) {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if (OrderSymbol() == Symbol() && OrderType() == tradeType && OrderMagicNumber() == MAGIC_NUMBER) {
                return true;
            }
        }
    }
    return false;
}

Files:

Responded

1
Developer 1
Rating
(162)
Projects
209
61%
Arbitration
10
80% / 0%
Overdue
0
Free
Published: 1 code
2
Developer 2
Rating
(287)
Projects
359
29%
Arbitration
37
27% / 65%
Overdue
10
3%
Loaded
Published: 10 codes
3
Developer 3
Rating
(33)
Projects
38
21%
Arbitration
5
0% / 60%
Overdue
0
Free
4
Developer 4
Rating
(329)
Projects
515
19%
Arbitration
35
46% / 31%
Overdue
34
7%
Working
5
Developer 5
Rating
(9)
Projects
20
10%
Arbitration
4
50% / 50%
Overdue
5
25%
Free
6
Developer 6
Rating
(437)
Projects
648
53%
Arbitration
35
63% / 20%
Overdue
7
1%
Working
7
Developer 7
Rating
(5)
Projects
8
13%
Arbitration
3
0% / 33%
Overdue
2
25%
Free
Published: 1 code
8
Developer 8
Rating
(12)
Projects
13
23%
Arbitration
7
0% / 71%
Overdue
3
23%
Working
9
Developer 9
Rating
(102)
Projects
105
60%
Arbitration
0
Overdue
0
Free
10
Developer 10
Rating
(3)
Projects
6
17%
Arbitration
0
Overdue
3
50%
Free
11
Developer 11
Rating
(4)
Projects
2
0%
Arbitration
5
0% / 80%
Overdue
1
50%
Free
12
Developer 12
Rating
(121)
Projects
134
66%
Arbitration
36
25% / 56%
Overdue
22
16%
Free
Published: 10 codes
13
Developer 13
Rating
(472)
Projects
491
75%
Arbitration
6
67% / 17%
Overdue
0
Working
14
Developer 14
Rating
(111)
Projects
184
25%
Arbitration
25
16% / 76%
Overdue
16
9%
Free
15
Developer 15
Rating
(626)
Projects
734
34%
Arbitration
49
53% / 39%
Overdue
14
2%
Loaded
16
Developer 16
Rating
(2)
Projects
1
0%
Arbitration
1
0% / 100%
Overdue
0
Free
17
Developer 17
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free
Published: 1 code
18
Developer 18
Rating
(61)
Projects
83
45%
Arbitration
27
11% / 70%
Overdue
8
10%
Free
19
Developer 19
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Working
Similar orders
I am looking to purchase a license for an existing and proven MT5 Expert Advisor. I am NOT looking for someone to develop a new EA from scratch. The EA must meet ALL of the following requirements: BACKTEST REQUIREMENTS Minimum 10 years of backtest history Minimum 5,000 trades in the backtest Backtest must use realistic trading costs, spread and commissions Results should be reasonably consistent across different
EA 35+ USD
Project Title: Development of a Custom Breakout Expert Advisor (EA) with Dynamic Trailing Stop, Advanced Security Filters, and On-Screen Dashboard for MT5 Project Description: Overview: I am looking for an experienced MQL5 developer to build a fully automated Trading Robot (Expert Advisor) for MetaTrader 5 based on a pending orders breakout strategy with strict dynamic risk management and customized time/profit
READ CAREFULLY BEFORE APPLY Hi there I am in need of a well automated and reliable ready made expert advisor scalper ea that run perfectly across trending market conditions, I mean a profitable strategy must perform optimally and yield massive trading returns, I am looking forward to validate a well working ea as per my specifications here, you must provide both screenshot and videos of the HFT scalper ea running on
READ CAREFULLY BEFORE APPLY Hi there I am in need of a well automated and reliable ready made expert advisor scalper ea that run perfectly across trending market conditions, I mean a profitable strategy must perform optimally and yield massive trading returns, I am looking forward to validate a well working ea as per my specifications here, you must provide both screenshot and videos of the HFT scalper ea running on
MT5 Forex Scalping Expert Advisor — Budget $30 Project description I am looking for a developer to build a simple, fully automated Forex scalping bot (Expert Advisor / EA) for MetaTrader 5 (MT5). My total budget is $30 USD . Please keep the strategy simple and focus on reliable execution, risk management, and easy configuration. 1. Trading strategy The bot must automatically identify trading opportunities and open
Project Title: Development of a Custom Breakout Expert Advisor (EA) with Dynamic Trailing Stop and On-Screen Dashboard for MT5 Project Description: Overview: I am looking for an experienced MQL5 developer to build a fully automated Trading Robot (Expert Advisor) for MetaTrader 5 based on a pending orders breakout strategy with strict dynamic risk management. The EA must be highly optimized, bug-free, and follow the
👋 Hey can anyone help me with creating an indicator for tradovate These were the ones I was looking at but I only have source code for TVS Trading view 1. engulfing Candle indicator by rmunoz 2. Fvg nephew sam (locked) 3. True volume surrogate (mt5)
I am looking for someone who can get me started on Sierra Charts. I need a setup with vwap and dayly VP aswell as session vp and vwap. Also previous days vp. I want to learn and use cvd and dom. Initially I just want to have my setup with the charts I use and connect all to the prop firm etc. Can you give me a good price for the above? I’d also like to understand how the setup works rather than simply having someone
Hi, I’m looking for an experienced MQL5 developer to convert my TradingView Pine Script into an MT5 EA. Here are the main requirements: **MBS BREAKOUT** * Buy when price breaks the Green Line * Sell when price breaks the Red Line **TIMEFRAMES** * Strategy 1 = M1 * Strategy 2 = M5 * Strategy 3 = M15 * Strategy 4 = M30 * Strategy 5 = H1 * Strategy 6 = H4 * Strategy 7 = D1 * Strategy 8 = W1 * Strategy 9 = MN1 Each
SUPER SCALPING 30+ USD
I WISH TO BUILD A ROBOT THAT CAN FIND BREAKOUTS ON 15MIN CHARTS, STARTING WITH THE WAVE 3 ON ELLIO WAVE ANALYSIS, ONCE IS PROFITABLE ENOUGH WILL OPEN A SECOND TRADE AFTER THE FIRST PULL BACK AND SET THE TP OF THE FIRST TRADE WITH THE SL OF THE SECOND TRADE IN A WAY TO GAIN A MINIMUM PROFIT OF 10 DOLLARS OR MORE, IF THE THIRD PULL BACK HAPPENS ANOTHER TRADE WILL BE PLACED MOVING ALL TP AND SL IN SUCH A WAY THAT THE

Project information

Budget
100+ USD