Şartname
//+------------------------------------------------------------------+
//| 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;
}
Yanıtlandı
1
Derecelendirme
Projeler
197
59%
Arabuluculuk
10
80%
/
0%
Süresi dolmuş
0
Serbest
Yayınlandı: 1 kod
2
Derecelendirme
Projeler
316
29%
Arabuluculuk
34
26%
/
65%
Süresi dolmuş
10
3%
Serbest
3
Derecelendirme
Projeler
38
21%
Arabuluculuk
5
0%
/
60%
Süresi dolmuş
0
Serbest
4
Derecelendirme
Projeler
511
19%
Arabuluculuk
33
45%
/
30%
Süresi dolmuş
34
7%
Yüklendi
5
Derecelendirme
Projeler
20
10%
Arabuluculuk
4
50%
/
50%
Süresi dolmuş
5
25%
Serbest
6
Derecelendirme
Projeler
632
53%
Arabuluculuk
32
53%
/
22%
Süresi dolmuş
6
1%
Yüklendi
7
Derecelendirme
Projeler
8
13%
Arabuluculuk
3
0%
/
33%
Süresi dolmuş
2
25%
Serbest
Yayınlandı: 1 kod
8
Derecelendirme
Projeler
13
23%
Arabuluculuk
7
0%
/
71%
Süresi dolmuş
3
23%
Çalışıyor
9
Derecelendirme
Projeler
105
60%
Arabuluculuk
0
Süresi dolmuş
0
Serbest
10
Derecelendirme
Projeler
6
17%
Arabuluculuk
0
Süresi dolmuş
3
50%
Serbest
11
Derecelendirme
Projeler
2
0%
Arabuluculuk
5
0%
/
80%
Süresi dolmuş
1
50%
Serbest
12
Derecelendirme
Projeler
134
66%
Arabuluculuk
36
25%
/
56%
Süresi dolmuş
22
16%
Serbest
Yayınlandı: 10 kod
13
Derecelendirme
Projeler
487
75%
Arabuluculuk
6
67%
/
17%
Süresi dolmuş
0
Serbest
14
Derecelendirme
Projeler
169
24%
Arabuluculuk
23
9%
/
78%
Süresi dolmuş
16
9%
Çalışıyor
15
Derecelendirme
Projeler
655
33%
Arabuluculuk
41
41%
/
46%
Süresi dolmuş
11
2%
Meşgul
16
Derecelendirme
Projeler
1
0%
Arabuluculuk
1
0%
/
100%
Süresi dolmuş
0
Serbest
17
Derecelendirme
Projeler
0
0%
Arabuluculuk
0
Süresi dolmuş
0
Serbest
Yayınlandı: 1 kod
18
Derecelendirme
Projeler
82
44%
Arabuluculuk
27
11%
/
70%
Süresi dolmuş
8
10%
Serbest
19
Derecelendirme
Projeler
0
0%
Arabuluculuk
0
Süresi dolmuş
0
Çalışıyor
Benzer siparişler
I have an existing TradingView Pine Script. I will provide the Pine Script source code after agreement. Goal: Convert the logic into MT5 (MQL5) and build an EA. Phase 1: Create MT5 indicator that matches TradingView signals (M15 only) Phase 2: Build EA with strict execution rules: max 4 trades total one trade per symbol gold lot limit (max 0.02 total) reversal logic (close then open opposite) no re-entry after manual
Requirements 1.Robot for Entry and Exit rules as per my indicators. 2.Back testing which can work on all time frames. 3.A system which i can modify later on as well according to my studies
Fixing a bugged EA
36+ USD
I have been working on an EA that is based on Ichimoku cloud and SMC internal blocks for stop loss. ENTRY BUGS: 1. I have entries issues with the chenkou and price action. It is entering trades when chenkou is poking through the kumo. This shouldn't happen. There should be a candle close with chenkou above kumo or below. 2. Another entry issue with other criteria for tenkan and price action also these entries are
MT5 Dual-Account Hedge Synchronization
100 - 180 USD
MT5 Dual-Account Hedge Synchronization EA I need an Expert Advisor for MetaTrader 5 that runs on two trading accounts (same broker, same VPS). The EA must work in a bidirectional way (both accounts run the same EA). Core Functionality: - Detect when a trade is closed using OnTradeTransaction() - Capture: symbol, closed volume, account ID, timestamp - Send this data to the other account via a shared local file On
Labouchere which transfer Units to Another Serie
30 - 60 USD
Labouchere System has many series and blank series and can transfer the Units to any other Series when needed . The coders who really knows this cancellation sytem can apply. No indicator or chart issues , but it has many mathematical functions and calculations
Universal Indicator EA for MT5
30 - 150 USD
Hello, I need a clear, professional, and strictly rule-based MT5 Expert Advisor. Please follow the specification below exactly as written, without adding extra logic, extra indicators, or personal modifications unless I ask for them later. The goal is to build a universal EA that can work with any custom indicator that provides signals through buffers. PROJECT TITLE Universal Indicator EA for MT5 1) GENERAL IDEA The
Looking for experience profitable manual traders that will be willing to trade my live mt5 account for profit share. Requirements Must have at least 6 months of profitable months. Min 10 percent monthly Send me investor credentials for mt5 or mt4 account. Can be trading Any instruments. Must reply with mt5 credentials or will disregard
Title: Advanced Manual Hedge EA with Multiplier & Multiple Trade Support Project Requirements: I need a professional Expert Advisor (EA) for XAUUSD and Forex to manage manual trades with the following logic: Lot Multiplier: The EA must automatically detect my manual trade size. There should be a "Multiplier" input (e.g., 3.0). If I open 1.0 lot Buy, the EA must auto-place a 3.0 lot Sell Stop at the set Gap
Buying profitable EA(Budget up to $ 3000 USD)
30 - 3000 USD
1. I will pay 3000+ USD (negotiable) for an EA for existing MT4/5 that generates a minimum of 5% or higher a month consistently (provide source code after final deal) 2. Looking for a highly profitable EA 3. Please send demo version directly subject (Buying profitable EA Budget up to $ 3000 USD), past results and optimal settings so I can test, if it performs in a strategy tester i will also need option to forward
Hello, I am looking for a professional programmer to build an EA that can be able to take trades effectively in the correct direction with adequate indices that can help to predict the market move in advance. The EA will also be able to manage multiple trades to ensure that profits activated are closed before any major market reversals. The EA will have a maximum of 3 price indices at the start, and then the
Proje bilgisi
Bütçe
100+ USD