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
(160)
Projects
207
61%
Arbitration
10
80% / 0%
Overdue
0
Free
Published: 1 code
2
Developer 2
Rating
(274)
Projects
346
29%
Arbitration
36
28% / 64%
Overdue
10
3%
Working
3
Developer 3
Rating
(33)
Projects
38
21%
Arbitration
5
0% / 60%
Overdue
0
Free
4
Developer 4
Rating
(328)
Projects
514
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
(434)
Projects
640
53%
Arbitration
34
62% / 21%
Overdue
6
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
Free
14
Developer 14
Rating
(109)
Projects
181
25%
Arbitration
24
17% / 75%
Overdue
16
9%
Working
15
Developer 15
Rating
(613)
Projects
716
33%
Arbitration
46
48% / 41%
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
LUCK 30+ USD
I want to work for me and make alot of money for me when. I want a trade bot on my mt5 .and show me all the thing's i want to see on my mt5 account
NYC 30+ USD
I need a ready-made professional trading EA similar to my current scalping bot, but improved for consistent profit and better risk control. Requirements: - Works on XAUUSD (M5 timeframe) - Fixed lot option (start with 0.01) - Opens only one trade at a time (no multiple positions) - Small, fast entries (scalping style) - Better risk-reward (SL must NOT be bigger than TP) - Breakeven function - Trailing stop to secure
Looking for an experienced MQL4 developer to restore functionality for an MT4 Expert Advisor I've used for 3 years. The software is showing a startup validation error, and I cannot reach the original developer. I'll provide all necessary files and proof of ownership. I don't have the code source just the .ex4 file. Scope of work: - Diagnose the startup validation error of the Expert Advisor - Restore normal
profitable EAs wanted with at least 3 to 5 years backtest. you be submit your proofs such as graphic results, backtesting results, and your demo or weekly the eas has traded
What I need: Compilable, fully-commented MQL4 source (.mq4) that I own outright, replicating an existing compiled MT4 EA I already run. It's a straightforward indicator-based scalper with position-averaging and grouped exits. I'll share the full behavioral details, input list, compiled .ex4, and sample trade logs privately with the awarded coder — your version must reproduce the same trades on my sample data, not
Fvg order 50 - 300 USD
Strategy Objective Create a disciplined, rules‑driven trading framework that identifies high‑probability reversals during the Asia session by leveraging levels formed in the final hours of New York. The goal is consistent execution, controlled risk, and scalable automation. Core Approach Track and define the key price extremes set during late New York trading. Monitor Asia session behavior for liquidity sweeps beyond
Requirements Specification GoldV16 V0 – MT5 XAUUSD Netting EA 1. Platform: - MetaTrader 5 - MQL5 - XAUUSD - NETTING account 2. Position rule: - Only ONE XAUUSD position may be open at any time. - Fixed lot only. - No Martingale. - No automatic lot increase. 3. Stop Loss: - Stop Loss must be sent immediately when a trade opens. - Default SL distance: 1.00 USD in gold price. - SL distance must be adjustable in Inputs
MQL5 developer needed to code a macro-driven gold trading Expert Advisor for MetaTrader. Body: We have a documented macro-driven trading strategy for gold that needs to be converted into a working MetaTrader Expert Advisor. Experience integrating external data sources, such as economic calendar events or interest rate and dollar index data, into MQL5 is required. An N.D.A. must be signed before strategy details are
I’m looking for an experienced MQL5 developer to create an MT5 EA similar to Iron Range, mainly for BTCUSD. It should use a range-based entry strategy, support market and pending orders, fixed-lot and percentage-risk sizing, stop loss, take profit, break-even, trailing stop, spread protection, and daily loss or drawdown limits. It should also work with different brokers and include adjustable settings for
MACD + EMA 30 - 100 USD
J’ai fais un indicateur tradingview que j’aimerai adapter à MT5. celui ci indique une flèche pour des achats ou des ventes lorsque le prix atteint un niveau tracé auparavant par l’indicateur également. Les conditions sont les suivantes : timeframe 1 minute Buy Stop / Sell Stop sur le niveau tracé. SL placé sur la EMA 21 au moment du du déclenchement de l’ordre avec possibilité de le modifier. Le TP à 1.5R

Project information

Budget
100+ USD