EA_Gold_MNAKOO

MQL4 Эксперты

Техническое задание

//+------------------------------------------------------------------+
//| 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;
}

Файлы:

Откликнулись

1
Разработчик 1
Оценка
(154)
Проекты
192
58%
Арбитраж
10
80% / 0%
Просрочено
0
Свободен
Опубликовал: 1 пример
2
Разработчик 2
Оценка
(249)
Проекты
312
28%
Арбитраж
33
27% / 64%
Просрочено
10
3%
Работает
3
Разработчик 3
Оценка
(33)
Проекты
38
21%
Арбитраж
5
0% / 60%
Просрочено
0
Свободен
4
Разработчик 4
Оценка
(325)
Проекты
505
19%
Арбитраж
32
44% / 31%
Просрочено
34
7%
Загружен
5
Разработчик 5
Оценка
(9)
Проекты
20
10%
Арбитраж
4
50% / 50%
Просрочено
5
25%
Свободен
6
Разработчик 6
Оценка
(429)
Проекты
628
54%
Арбитраж
30
53% / 23%
Просрочено
6
1%
Загружен
7
Разработчик 7
Оценка
(5)
Проекты
8
13%
Арбитраж
3
0% / 33%
Просрочено
2
25%
Свободен
Опубликовал: 1 пример
8
Разработчик 8
Оценка
(12)
Проекты
13
23%
Арбитраж
7
0% / 71%
Просрочено
3
23%
Работает
9
Разработчик 9
Оценка
(102)
Проекты
105
60%
Арбитраж
0
Просрочено
0
Свободен
10
Разработчик 10
Оценка
(3)
Проекты
6
17%
Арбитраж
0
Просрочено
3
50%
Свободен
11
Разработчик 11
Оценка
(4)
Проекты
2
0%
Арбитраж
5
0% / 80%
Просрочено
1
50%
Свободен
12
Разработчик 12
Оценка
(121)
Проекты
134
66%
Арбитраж
36
25% / 56%
Просрочено
22
16%
Свободен
Опубликовал: 10 примеров
13
Разработчик 13
Оценка
(467)
Проекты
486
75%
Арбитраж
6
67% / 17%
Просрочено
0
Работает
14
Разработчик 14
Оценка
(103)
Проекты
165
24%
Арбитраж
23
9% / 78%
Просрочено
16
10%
Работает
15
Разработчик 15
Оценка
(548)
Проекты
632
33%
Арбитраж
39
38% / 49%
Просрочено
11
2%
Загружен
16
Разработчик 16
Оценка
(2)
Проекты
1
0%
Арбитраж
1
0% / 100%
Просрочено
0
Свободен
17
Разработчик 17
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
Опубликовал: 1 пример
18
Разработчик 18
Оценка
(59)
Проекты
81
43%
Арбитраж
27
11% / 70%
Просрочено
8
10%
Свободен
19
Разработчик 19
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Работает
Похожие заказы
I want an mt5 advisor which use advanced strategies like Accumulation, manipulate, distribution plus ABC pattern Recognition , Smart filters, Rsi + Ema crossovers, Hidden SL, partialTPs and dynamic lot sizing , works on Forex and crypto fully automated no expiry
Gold robot for 1 minute 100 - 150 USD
I need a EA as per the attached video. I need the same type of EA, once it is ready share the video of any demo account. if everything is ok I will purchase immediately. thank you
I’m hiring an experienced MQL5 developer to finish and fix an existing project (NOT building from scratch). I have: An existing MT5 EA (.mq5 + .ex5) that is based on my TradingView logic A TradingView indicator version used for signals/alerts The EA works but has logic/consistency issues and needs improvements + cleanup Goal Make the EA reliable and consistent: Ensure entries/exits match the intended logic Fix
It is better to spend thirty minutes to prepare a good text than to lose hours and days to resolve misunderstanding after concluding the Agreement or when accepting the order execution results
. Estou buscando adquirir um Expert Advisor (EA) existente e com fins lucrativos, com código-fonte completo, para adicionar ao portfólio de investimentos de nossos clientes. Para deixar claro, esta não é uma solicitação para desenvolver ou projetar uma nova estratégia. Se você já possui um EA comprovado, consistente e pronto para produção, com pelo menos 6 meses de histórico de desempenho, estou disposto a analisá-lo
Dear Developer, I am looking to develop both a MetaTrader 5 Indicator and a MetaTrader 5 Expert Advisor (EA) based on the swing depth logic shown in the Pine Script code attached below. The indicator and EA must be built as separate files but must follow the exact same signal logic so both display and execute identically. Please carefully review the requirements below and confirm your understanding before starting
I have a High-Frequency Trading EA and I need a full conversion and optimization for MT5. The goal is to ensure stable execution and reliable performance on real accounts (IC Markets Raw and similar ECN brokers). I need an experienced and reputable MQL5 developer to: Convert the existing strategy to MT5 with full fidelity to the original trading logic (entries, SL, breakeven, trailing, pending orders). Optimize the
Hello friends, We need Robot, EA , or Trading software with proven( 6 to 12 months) and it should be given consistent profit upto 3 % per month with no risk ( low Drawdown ), we will pay what you ask, and also We are regulated forex broker and we have all access like FIX API etc, and we dealing with Top tier 1 LPs . Thanks
Looking to acquire an existing, profitable Expert Advisor (EA) with full source code to add to our client investment portfolio. To be clear, this is not a request to develop or design a new strategy. If you already have an EA that is proven, consistent, and production-ready, with at least 6 months of history performance I’m open to reviewing it immediately. Please apply only if you meet all the requirements below
Need a quarantine winning bot to trade step100, vix 75,25,50 and 30. Serious persons only. Minimum to no lost. Should’ve able to trade secondly rapidly and daily . Should only enter winning trades

Информация о проекте

Бюджет
100+ USD