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
209
61%
Arbitration
10
80%
/
0%
Overdue
0
Free
Published: 1 code
2
Rating
Projects
363
30%
Arbitration
37
27%
/
65%
Overdue
10
3%
Loaded
Published: 10 codes
3
Rating
Projects
38
21%
Arbitration
5
0%
/
60%
Overdue
0
Free
4
Rating
Projects
515
19%
Arbitration
35
46%
/
31%
Overdue
34
7%
Working
5
Rating
Projects
20
10%
Arbitration
4
50%
/
50%
Overdue
5
25%
Free
6
Rating
Projects
649
53%
Arbitration
35
63%
/
20%
Overdue
7
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
491
75%
Arbitration
6
67%
/
17%
Overdue
0
Working
14
Rating
Projects
184
25%
Arbitration
25
16%
/
76%
Overdue
16
9%
Free
15
Rating
Projects
741
34%
Arbitration
49
53%
/
39%
Overdue
15
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
83
45%
Arbitration
27
11%
/
70%
Overdue
8
10%
Free
19
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Working
Similar orders
I need an experienced MQL5 developer to build a simple, reliable Expert Advisor for MetaTrader 5. Trading Strategy Symbol: EURUSD (configurable) Timeframe: M15 (configurable) Buy Conditions: Candle 2 closes below the lower Bollinger Band. Candle 1 closes back above the lower Bollinger Band. Enter BUY at the first available tick of the next candle. Sell Conditions: Candle 2 closes above the upper Bollinger Band
Decrypt ex4 file for mt4 and recreate EA for mt4
30 - 50 USD
i have existing EA but its decrypted i dont have its source code , i want you to decrypt the EA and give me the original source code of it
MT5 to MEXC web trading
50+ USD
Hi gentlemen, I want MT5 market orders placed (open and close orders) on MEXC trading through web browser. MEXC doesnt allow algo trading. - Need source code budget: USD 50 (quote me your price and delivery time) I need this at the earliest and this job is only for mexc.com, not binance or any other exchange I look forward to your price offer and your suggestions. Appreciate
Creat a EA
200 - 1000 USD
FREELANCER JOB ORDER: DEVELOPMENT OF A MULTI-ASSETS EXPERT ADVISOR (EA) 1. Project Title Development of a Professional, Configurable MT5 Expert Advisor for Forex, Gold, Silver and Commodities 2. Project Overview I am seeking an experienced MQL5 developer to design and develop a professional automated trading system (Expert Advisor) for MetaTrader 5 (MT5). The EA must be designed to operate across multiple
I am interested in developing a custom Expert Advisor (EA) similar to the following MQL5 product: Reference EA: https://www.mql5.com/en/market/product/199258 Project Requirements Before starting development, I want you to carefully study and analyze the reference EA in detail. Please examine its available description, trading strategy, entry and exit logic, risk management, position management, trading behavior, and
MT5 Expert Advisor – EMA Crossover Trading Robot
70 - 120 USD
I need an experienced MQL5 developer to create a simple automated trading Expert Advisor for MetaTrader 5. Trading Strategy Platform: MetaTrader 5 (MQL5). Symbol: EURUSD. Timeframe: M15. Indicators: EMA 20 (fast) and EMA 50 (slow), calculated using closing prices. Entry Rules Buy: EMA 20 crosses above EMA 50 on a completed candle. Sell: EMA 20 crosses below EMA 50 on a completed candle. All signals must be confirmed
I'
5000+ USD
من یک معامله گر روزانه نینجا هستم و با شرکتی به نام Legendary Trader کار کرده ام و از استراتژی های مشخص شده و خودکار آن ها برای معامله استفاده می کنم
Automate this Video Strategy
35 - 100 USD
https://www.youtube.com/watch?v=xMNx8f-aGQE& ;t=56s risk 1% per trade watch the video carefully and automate the trade setups in XAUUSD i prefer picking the least drawdown and good return expert advisor do not use overfitting(Strict) account type : hedging
Vb flesh
30+ USD
#property strict #property version "1.00" #include <Trade/Trade.mqh> CTrade trade; // ===== ROBOT SETTINGS ===== input double Lots = 0.01; input int FastEMA = 9; // Blue line input int SlowEMA = 21; // Red line input int StopLossPoints = 300; input int TakeProfitPoints = 600; input ulong MagicNumber = 123456; // ===== INDICATOR HANDLES ===== int blueHandle; int redHandle; datetime lastBar = 0;
Bonjour , je cherche quelqu’un capable de crée un bot sur le gold type HFT , ouverture de plusieurs positions en quelques secondes , robot agressif , je cherche un robot qui marche sur du réel , qui a déjà était tester avec des résultats, pas basé que sur des backtest
Project information
Budget
100+ USD