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;
}
Responded
1
Rating
Projects
201
60%
Arbitration
10
80%
/
0%
Overdue
0
Free
Published: 1 code
2
Rating
Projects
325
30%
Arbitration
35
26%
/
63%
Overdue
10
3%
Busy
3
Rating
Projects
38
21%
Arbitration
5
0%
/
60%
Overdue
0
Free
4
Rating
Projects
513
19%
Arbitration
34
44%
/
32%
Overdue
34
7%
Loaded
5
Rating
Projects
20
10%
Arbitration
4
50%
/
50%
Overdue
5
25%
Free
6
Rating
Projects
637
54%
Arbitration
32
59%
/
22%
Overdue
6
1%
Working
7
Rating
Projects
8
13%
Arbitration
3
0%
/
33%
Overdue
2
25%
Free
Published: 1 code
8
Rating
Projects
13
23%
Arbitration
7
0%
/
71%
Overdue
3
23%
Working
9
Rating
Projects
105
60%
Arbitration
0
Overdue
0
Free
10
Rating
Projects
6
17%
Arbitration
0
Overdue
3
50%
Free
11
Rating
Projects
2
0%
Arbitration
5
0%
/
80%
Overdue
1
50%
Free
12
Rating
Projects
134
66%
Arbitration
36
25%
/
56%
Overdue
22
16%
Free
Published: 10 codes
13
Rating
Projects
490
75%
Arbitration
6
67%
/
17%
Overdue
0
Free
14
Rating
Projects
175
25%
Arbitration
23
13%
/
78%
Overdue
16
9%
Free
15
Rating
Projects
692
33%
Arbitration
43
47%
/
44%
Overdue
12
2%
Working
16
Rating
Projects
1
0%
Arbitration
1
0%
/
100%
Overdue
0
Free
17
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free
Published: 1 code
18
Rating
Projects
82
44%
Arbitration
27
11%
/
70%
Overdue
8
10%
Free
19
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Working
Similar orders
Scalping/HFT EA
30+ USD
I need someone to make an EA that is a HFT that actually works for prop firm or live accounts. Prop firm would be most preferred but it has to be from a prop firm that will allow HFT
I need a professional MT5 (MQL5) Expert Advisor for Gold (XAUUSD) scalping. Main requirements: - Work on M1 and M5 timeframes. - Trend filter using EMA 50 and EMA 200. - Entry confirmation after pullback and candle confirmation. - Open 3 positions per signal. Trade management: - Separate TP1, TP2, and TP3. - One Stop Loss for all positions. - When TP1 is reached: Close Position 1 and move remaining positions to
MC Trader's
30+ USD
If Buy: it must Buy when a conformation is done Bye the candle that would be a bullish engolfing candle or after liqudity swip or when sellers has stepped down the market and the market regains energy and trand upwards, it's stop loss must be below the Buy position and it's take profit must be at the top of all candles
Hi, I need an experienced developer to review and help repair a trading automation project. This is not a request to create a random trading bot from scratch. I already have an existing system called EXU. It uses TradingView alerts, a VPS webhook backend, a decision/guard layer, and an MT5 execution/proof layer. Current project status: * TradingView alerts are reaching the backend. * The clean VPS pipeline works. *
i am looking to upgrade my trading telegram bot and add live data to it and also make it linked to a dashboard where i can trace the users who register in my bot and pay and make them go in my private channel and manages the expiry date of each user
Title: MT4 One Click Trader EA (Custom Development) I am looking for an experienced MQL4 developer to build a custom One Click Trader Expert Advisor for MetaTrader 4. The objective is a fast, reliable, execution-focused trading panel with minimal visual clutter and robust operation on both standard and offline charts. Requirements Trade Panel The EA must provide a simple trading panel containing: Buy button Sell
EliavTrade – Supply & Demand Prop Firm Trading System
250 - 398 USD
Project Name EliavTrade – Supply & Demand Prop Firm Trading System Executive Summary EliavTrade is an MT5 Expert Advisor designed to trade funded accounts and personal retail accounts using a rule-based Supply and Demand methodology combined with institutional risk management. The EA's primary objective is capital preservation and consistent account growth rather than aggressive returns. The system must be capable
Description: I am looking for a highly experienced MT5 developer to build a manual‑execution Expert Advisor called Chain Flow . This project is not suitable for beginners , indicator‑only developers, or anyone who has not previously built complex object‑based systems. The EA relies heavily on chart objects , state machines , and clean UI panel logic . Project Overview (High‑Level): Chain Flow is a manual execution EA
I'm after a solid, ready-to-use indicator (already built — not looking to commission from scratch) with the following: Clear BUY / SELL signals — clean and easy to read on the chart Around 75% accuracy (backtested / proven results preferred) Clear labeling directly on the chart for every signal Built-in Stop Loss levels Smart Take Profit targets (multiple TPs ideal) Fast-reacting — picks up moves quickly without
Sierra chart job
75+ USD
Hello, I am interested in working . I have several strategies that I want to automate. However, I need a developer beforehand to explain the strategies and discuss the next steps
Project information
Budget
100+ USD