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
197
59%
Arbitration
10
80%
/
0%
Overdue
0
Free
Published: 1 code
2
Rating
Projects
316
29%
Arbitration
34
26%
/
65%
Overdue
10
3%
Free
3
Rating
Projects
38
21%
Arbitration
5
0%
/
60%
Overdue
0
Free
4
Rating
Projects
511
19%
Arbitration
33
45%
/
30%
Overdue
34
7%
Loaded
5
Rating
Projects
20
10%
Arbitration
4
50%
/
50%
Overdue
5
25%
Free
6
Rating
Projects
632
53%
Arbitration
32
53%
/
22%
Overdue
6
1%
Loaded
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
487
75%
Arbitration
6
67%
/
17%
Overdue
0
Free
14
Rating
Projects
169
24%
Arbitration
23
9%
/
78%
Overdue
16
9%
Working
15
Rating
Projects
655
33%
Arbitration
41
41%
/
46%
Overdue
11
2%
Busy
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
Martingale Hedge Recovery EA
50+ USD
Enters trades using Stochastic + Moving Average signal Applies martingale averaging when price moves against position Activates hedging when floating loss reaches a defined level Supports multi-hedge layering as price continues trending Closes all positions (both martingale + hedge) at: Breakeven + small profit
I want a prop-firm compatible MT5 trading robot, not a fast or aggressive one, for passing Prop firm challenges of any account sizes and also capable of earning profit on funded account after passing the challenge. Objectives: – Pass a prop firm challenge safely within 2–4 weeks, not 1 week. – Focus on capital protection first, profit second. Risk & Money Management: – Risk per trade: 0.25%–0.5% max – No martingale
5 minute Buy Stop and Sell Stop order EA
30 - 200 USD
أبحث عن خبير تداول آلي (EA) أرفقتُ فيديو له. يقوم هذا الخبير بوضع أوامر شراء معلقة وبيع معلقة على بُعد 250 نقطة أعلى وأسفل السعر الحالي كل دقيقة، مع تحديد مستوى وقف الخسارة (SL) عند 300 نقطة ومستوى جني الربح (TP) عند 500 نقطة. إذا تم تفعيل أيٍّ من هذين الأمرين خلال الدقيقة، يتم إلغاء الآخر. لا يقوم الخبير بوضع أي أوامر معلقة حتى يتم الوصول إلى مستوى وقف الخسارة أو جني الربح، ثم يضع مجموعة جديدة من الأوامر المعلقة في
Custom Trade Panel Request
80+ USD
I’m looking for a developer to create a custom trade panel/tool that allows me to execute and manage multiple trades simultaneously with dynamic, risk-based position sizing . Core Concept (Must Be Followed Exactly) • I define a total risk percentage (example: 1% of account balance) • That total risk is split across all trades • Each trade has a different stop loss (in pips) • The system must automatically
MT5 Expert Advisor – Break of Structure Strategy
50 - 300 USD
I need MT5 Expert Advisor (EA) Strategy: - Break of Structure (body close) - Retest - Confirmation (engulfing/rejection) Rules: - Max 2 trades per day - Risk: $50 - TP: 1:2 RR - SL: structure No martingale, no grid XAUUSD M30
Bring in your expertise for specific symbol Prepare expert for Live chart Creating .set for specific symbol Live Chart Optimization , symbol specific Everything is coded already therefore needs Implementations
A simple EA for hedging/scalping MT4
30 - 150 USD
I need an MT4-compatible Expert Advisor coded in MQL4 that applies a pure scalping approach. The robot must open and close positions quickly on XAUUSD, taking advantage of very small intraday price movements, with configurable parameters for lot size, maximum spread, take-profit. With the activation of repeated hedging and the feature to close trades at a specific percentage of profit or loss With chart monitor
I need Russian developer for my multiple project
30 - 150 USD
I could have MetaTrader, NinjaTrader and TradingView project as well as some Automation and Apps development work. For them I require Russian developers. I have worked with many developers but from now I just would like to work with russians. Please apply on the project just Russian developers with mentioning their expertise Note: I do not understand Russian so communication need to do in English
Wisdom forex
30 - 200 USD
I need a bot that will trade to make profit without I losing money , selling when it's time for sell, buying when it's time for buying, manage our profile to gain a big asset
Ninjarader strategy
30+ USD
Due to price constraints, I am shifting what I would like. Would you be able to develop part of a strategy that automatically screens and selects stocks for trading? For example, screens for stocks up 20% with 500k volume for the day, and automatically begin trading them according to the strategy I already use. I use NinjaTrader to day trade my Interactive Brokers account and would like to add an automatic
Project information
Budget
100+ USD