EA_Gold_MNAKOO

MQL4 Experts

Spécifications

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

Dossiers :

Répondu

1
Développeur 1
Évaluation
(156)
Projets
198
59%
Arbitrage
10
80% / 0%
En retard
0
Travail
Publié : 1 code
2
Développeur 2
Évaluation
(258)
Projets
322
30%
Arbitrage
34
26% / 65%
En retard
10
3%
Gratuit
3
Développeur 3
Évaluation
(33)
Projets
38
21%
Arbitrage
5
0% / 60%
En retard
0
Gratuit
4
Développeur 4
Évaluation
(328)
Projets
513
19%
Arbitrage
34
44% / 32%
En retard
34
7%
Chargé
5
Développeur 5
Évaluation
(9)
Projets
20
10%
Arbitrage
4
50% / 50%
En retard
5
25%
Gratuit
6
Développeur 6
Évaluation
(434)
Projets
635
54%
Arbitrage
32
56% / 22%
En retard
6
1%
Travail
7
Développeur 7
Évaluation
(5)
Projets
8
13%
Arbitrage
3
0% / 33%
En retard
2
25%
Gratuit
Publié : 1 code
8
Développeur 8
Évaluation
(12)
Projets
13
23%
Arbitrage
7
0% / 71%
En retard
3
23%
Travail
9
Développeur 9
Évaluation
(102)
Projets
105
60%
Arbitrage
0
En retard
0
Gratuit
10
Développeur 10
Évaluation
(3)
Projets
6
17%
Arbitrage
0
En retard
3
50%
Gratuit
11
Développeur 11
Évaluation
(4)
Projets
2
0%
Arbitrage
5
0% / 80%
En retard
1
50%
Gratuit
12
Développeur 12
Évaluation
(121)
Projets
134
66%
Arbitrage
36
25% / 56%
En retard
22
16%
Gratuit
Publié : 10 codes
13
Développeur 13
Évaluation
(470)
Projets
488
75%
Arbitrage
6
67% / 17%
En retard
0
Gratuit
14
Développeur 14
Évaluation
(107)
Projets
175
25%
Arbitrage
23
13% / 78%
En retard
16
9%
Gratuit
15
Développeur 15
Évaluation
(576)
Projets
668
32%
Arbitrage
42
45% / 45%
En retard
12
2%
Occupé
16
Développeur 16
Évaluation
(2)
Projets
1
0%
Arbitrage
1
0% / 100%
En retard
0
Gratuit
17
Développeur 17
Évaluation
Projets
0
0%
Arbitrage
0
En retard
0
Gratuit
Publié : 1 code
18
Développeur 18
Évaluation
(60)
Projets
82
44%
Arbitrage
27
11% / 70%
En retard
8
10%
Gratuit
19
Développeur 19
Évaluation
Projets
0
0%
Arbitrage
0
En retard
0
Travail
Commandes similaires
Hi, I am looking to purchase an existing MT5 EA for Forex currency pairs . I am not looking to develop a new strategy from scratch , so please read carefully before applying. Requirements: Existing and working MT5 Forex EA Must trade on currency pairs Source code (.mq5) must be included Must have proven results I need to run my own backtest and demo testing before purchase Demo trial or testing access is required
Labouchere System has many series and can transfer the Units to any other Series when needed (this function is very important). The coders who really knows this cancellation sytem can apply. Also the coder should have practical usage of phyton language to translate this strategy into phyton to use it in crypto markets. No indicator or chart issues , but it has many mathematical functions and calculations . the code
Hello everyone, I’m looking for someone who can help me develop an Expert Advisor (EA) for Boom and Crash markets. I need a developer who has proven experience and has already developed at least 10–15 EAs for Boom and Crash. This will help save both your time and my time when filtering developers. The EA will include: EMA crossover strategy Different time filters Additional custom conditions and logic I’m also
I want to find a Developer to perform this work and settle payments in this Application. I undertake not to communicate with Applicants anywhere else except this Application, including third-party messengers, personal correspondence or emails. I understand that violators will be banned from publishing Orders in the Freelance service. I have read the Rules of using the Freelance service and accept them. I agree with
Overview: I would like to create a robot in MT5 (what I use) that when the price or candle touches a moving average it auto- matically gets me into a trade. Details or features I need: 1 a way to tell it how much to trade 0.10 or ten cents per pip or more or do I set this in MT5? 2 a way to limit the number of trades per candle or set it to two or three trades (if the price crosses over the moving average ten times I
Candle bot 30+ USD
A dual-direction breakout stacking EA using previous candle highs/lows as triggers with rolling pending orders and fixed micro take profits. It is suitable for: automation EA development trend capture with repeated entries recovery-style trade management
Szukam doświadczonego programisty do stworzenia dedykowanego doradcy eksperckiego (EA) do tradingu. Programista powinien posiadać solidną wiedzę z zakresu MT5, logiki strategii, wskaźników, zarządzania ryzykiem i backtestingu. Doświadczenie w tworzeniu niezawodnych i profesjonalnych robotów handlowych będzie dodatkowym atutem. Proszę o kontakt, jeśli zrealizowałeś już podobne projekty. wszystkie szczeguły podam w
I am looking to buy a ready-made automated trading robot / EA that works on the Tradovate platform and is proven to pass prop firm challenges for Apex Trader Funding, Tradeify, and Lucid Trading.Key Requirements (must be ready-made or very close to plug-and-play):Fully functional on Tradovate (native or via stable bridge/copier/webhook/API integration – MT5 EA + Tradovate bridge is acceptable if it works reliably)
Alex 1000+ USD
Нужен бот для скальпинга именно на Python. Работа напрямую через API биржи (без привязки к TradingView и MetaTrader). Бот будет запускаться локально на ноутбуке / VPS. Критически важна скорость (использование асинхронности, WebSockets
Looking for an experienced programmer to create a fully automated trading system. The EA must be able to detect SPECIFIC H&Shoulder patterns, identify entry point and open a position. Parameters: Candle Count : EX: 50 - meaning the max amount of candle history to look for a pattern. (user adjustable) RISK: EG "2" Meaning the position that must be opened must be 2% of the Balance of the account (user adjustable). The

Informations sur le projet

Budget
100+ USD