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
(155)
Projects
193
58%
Arbitration
10
80% / 0%
Overdue
0
Working
Published: 1 code
2
Developer 2
Rating
(251)
Projects
314
28%
Arbitration
34
26% / 65%
Overdue
10
3%
Working
3
Developer 3
Rating
(33)
Projects
38
21%
Arbitration
5
0% / 60%
Overdue
0
Free
4
Developer 4
Rating
(327)
Projects
509
19%
Arbitration
33
45% / 30%
Overdue
34
7%
Loaded
5
Developer 5
Rating
(9)
Projects
20
10%
Arbitration
4
50% / 50%
Overdue
5
25%
Free
6
Developer 6
Rating
(429)
Projects
629
54%
Arbitration
32
53% / 22%
Overdue
6
1%
Loaded
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
(468)
Projects
486
75%
Arbitration
6
67% / 17%
Overdue
0
Working
14
Developer 14
Rating
(104)
Projects
168
24%
Arbitration
23
9% / 78%
Overdue
16
10%
Working
15
Developer 15
Rating
(555)
Projects
642
33%
Arbitration
41
41% / 46%
Overdue
11
2%
Busy
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
(59)
Projects
81
43%
Arbitration
27
11% / 70%
Overdue
8
10%
Free
19
Developer 19
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Working
Similar orders
I'm not here to waste somebody time also mine should not be wasted provide if you got what I want real profitable high frequency EA Send the backteing results picture then demo EA test on demo account for at least two days
Requirement Specification: Market Structure: Identify Trend on 1H/30M using BOS and CHOCH. Entry Logic: Wait for 50% Fibonacci Retracement into an Order Block (OB) or Fair Value Gap (FVG). Execution: On 5M/15M timeframe, execute trade only if a confirmation pattern forms at the zone. Patterns Required: Bullish/Bearish Engulfing, Morning/Evening Star, Inverse Bullish/Bearish Engulfing (Liquidity Sweeps), and Bearish
I am looking for a scalping EA based on daily VWAP for intraday trading. initiate buy when above VWAP and initiate sell below VWAP. it should have proper risk to reward
Hello, im offering my Flip EA as a service. Real numbers. Live account. No BS. Verified Stats (live MT5): • Growth: +78–81% in days • Max Drawdown: 3.05% only • Best trade: +6,872% profit on single position Runs fully automated on XAUUSD 24/5. Small account friendly – built for fast, aggressive flipping with tight risk control. Tell me your capital, I’ll tell you what’s realistic
I am looking for an experienced MQL5 developer to build a fully automated trading bot (Expert Advisor) for MetaTrader 5 . The bot will focus on trend-following scalping and must be designed to trade XAUUSD and BTC on the M1 timeframe . The objective is to create a stable and efficient EA that can open multiple trades per day while managing risk using proper stop-loss, take-profit, and trailing stop
martingale base on each position close. eg: open a position with TP set at $100 and trail SL . if this position hit trail SL i lose $50 then the next position will open target at $150 profit. entry price base on from lower and up by XXX% then can open position i want to choose only buy or sell position. example this chart i only want buy position
I have a specific channel need to copy and modify signal from that channel. It will buy and sell from signal and modify based on signal. I’ll add few more functions in the ea
[Automatic Level Detection Group] - Enable Auto Detection: Yes/No - Number of Levels Required: (Number) 3-5 - Lookback Bars: (Number) 100-200 - Minimum Touches for Strong Level: (Number) 2 - Use Zig Zag Algorithm: Yes/No - Use Level Clustering: Yes/No - Max Cluster Distance (points): (Number) [Display and Drawing Group] - Resistance Line Color: (Color) - Support Line Color: (Color) - Show Info Labels: Yes/No - Lines
Hello, I am searching a good programmed to convert EA from mql5 into pinescript and DX TRADE made automatisation. Source of code required. Budget is negotiable. Thanks for attention and have a nice day
Profitable EA for sell 200 - 1000 USD
I am having 2 very proven and profitable EA which will give you profit and at the end of week you are always in profit. 1 This bot is safe bot and it generates handsome amount of profit with very less drawdown and high accuracy of 75-85%. 2. This bot is very aggressive and will suggest to go with only when you are having big capital and wanted to take more risk. It can make your account multiple fold

Project information

Budget
100+ USD