Spezifikation
//+------------------------------------------------------------------+
//| XAUUSD Ultimate Institutional EA |
//| Features: |
//| - True swing-based market structure |
//| - BOS sniper entries on M5 |
//| - Liquidity sweep filter |
//| - Partial TP + breakeven |
//| - Visual BOS, swings, liquidity |
//| - ATR-based dynamic SL |
//| - Trailing stop |
//| - Session filter (London + NY) |
//| - Risk management (1% per trade) |
//+------------------------------------------------------------------+
#property strict
#include <Trade/Trade.mqh>
CTrade trade;
//================ INPUTS =================
input double RiskPercent = 1.0; // % risk per trade
input double RR = 2.0; // Target RR
input double PartialClosePercent = 50.0; // % to close at first TP
input int SL_Buffer_Points = 400; // SL buffer (XAU volatility)
input int MaxSL_Points = 3000; // Skip trades if SL too wide
input ENUM_TIMEFRAMES HTF = PERIOD_H1; // Higher timeframe
input ENUM_TIMEFRAMES LTF = PERIOD_M5; // Lower timeframe
input int LondonStart = 10; // London session start
input int LondonEnd = 13; // London session end
input int NYStart = 15; // NY session start
input int NYEnd = 18; // NY session end
input bool UseNewsFilter = true; // Toggle news filter
input int NewsPauseBefore = 30; // Minutes before news
input int NewsPauseAfter = 30; // Minutes after news
input int FractalDepth = 2; // For true swing detection
input int ATR_Period = 14; // ATR period
input double ATR_Multiplier = 1.5; // ATR multiplier for SL
input double TrailingStart = 1.0; // RR ratio to start trailing
input double TrailingStep = 50; // Points per trailing move
//================ GLOBALS =================
datetime LastTradeDay;
bool PartialTaken = false;
bool BuyLiquidityTaken = false;
bool SellLiquidityTaken = false;
double LastSwingHigh = 0;
double PrevSwingHigh = 0;
double LastSwingLow = 0;
double PrevSwingLow = 0;
//================ SESSION CHECK =================
bool InSession()
{
int h = TimeHour(TimeCurrent());
return (h>=LondonStart && h<=LondonEnd) || (h>=NYStart && h<=NYEnd);
}
//================ TRUE SWING DETECTION =================
void DetectSwings()
{
for (int i = 5; i < 100; i++)
{
double fh = iFractals(_Symbol, HTF, MODE_UPPER, i);
double fl = iFractals(_Symbol, HTF, MODE_LOWER, i);
if (fh != 0)
{
PrevSwingHigh = LastSwingHigh;
LastSwingHigh = fh;
}
if (fl != 0)
{
PrevSwingLow = LastSwingLow;
LastSwingLow = fl;
}
if (PrevSwingHigh > 0 && PrevSwingLow > 0) break;
}
}
//================ MARKET STRUCTURE =================
bool BullishStructure()
{
DetectSwings();
return (LastSwingHigh > PrevSwingHigh &&
LastSwingLow > PrevSwingLow);
}
bool BearishStructure()
{
DetectSwings();
return (LastSwingHigh < PrevSwingHigh &&
LastSwingLow < PrevSwingLow);
}
//================ LOT CALCULATION =================
double LotByRisk(double sl_points)
{
double bal = AccountInfoDouble(ACCOUNT_BALANCE);
double riskMoney = bal * RiskPercent / 100.0;
double tickVal = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tickSz = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double lot = riskMoney / (sl_points * tickVal / tickSz);
return NormalizeDouble(lot, 2);
}
//================ LIQUIDITY SWEEP =================
void DetectLiquiditySweep(double ltf_low, double ltf_high, double close)
{
BuyLiquidityTaken = (ltf_low < LastSwingLow && close > LastSwingLow);
SellLiquidityTaken = (ltf_high > LastSwingHigh && close < LastSwingHigh);
// Visualize sweeps
if(BuyLiquidityTaken)
DrawLabel("LIQ_SWEEP_BUY", TimeCurrent(), LastSwingLow, "Sell-side Liquidity Taken", clrDodgerBlue);
if(SellLiquidityTaken)
DrawLabel("LIQ_SWEEP_SELL", TimeCurrent(), LastSwingHigh, "Buy-side Liquidity Taken", clrOrangeRed);
}
//================ DRAWING FUNCTIONS =================
void DrawLine(string name, datetime t1, double p1, datetime t2, double p2, color clr)
{
ObjectDelete(0, name);
ObjectCreate(0, name, OBJ_TREND, 0, t1, p1, t2, p2);
ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
ObjectSetInteger(0, name, OBJPROP_WIDTH, 2);
}
void DrawLabel(string name, datetime t, double p, string text, color clr)
{
ObjectDelete(0, name);
ObjectCreate(0, name, OBJ_TEXT, 0, t, p);
ObjectSetText(name, text, 10, "Arial", clr);
}
//================ ATR =================
double ATR(int period, ENUM_TIMEFRAMES tf)
{
return iATR(_Symbol, tf, period, 0);
}
//================ PARTIAL TP + BREAKEVEN =================
void ManagePosition()
{
if (!PositionSelect(_Symbol)) return;
double entry = PositionGetDouble(POSITION_PRICE_OPEN);
double sl = PositionGetDouble(POSITION_SL);
double tp = PositionGetDouble(POSITION_TP);
double vol = PositionGetDouble(POSITION_VOLUME);
int type = PositionGetInteger(POSITION_TYPE);
double price = (type==POSITION_TYPE_BUY) ? SymbolInfoDouble(_Symbol, SYMBOL_BID)
: SymbolInfoDouble(_Symbol, SYMBOL_ASK);
double risk = MathAbs(entry - sl);
double oneR = (type==POSITION_TYPE_BUY) ? entry + risk : entry - risk;
// Partial TP
if (!PartialTaken &&
((type==POSITION_TYPE_BUY && price >= oneR) ||
(type==POSITION_TYPE_SELL && price <= oneR)))
{
trade.PositionClosePartial(_Symbol, vol * PartialClosePercent / 100.0);
trade.PositionModify(_Symbol, entry, tp); // move SL to breakeven
PartialTaken = true;
}
// Trailing Stop
double rrAchieved = (type==POSITION_TYPE_BUY) ? (price - entry)/risk : (entry - price)/risk;
if(rrAchieved >= TrailingStart)
{
double new_sl;
if(type==POSITION_TYPE_BUY)
new_sl = price - TrailingStep*_Point;
else
new_sl = price + TrailingStep*_Point;
if((type==POSITION_TYPE_BUY && new_sl > sl) ||
(type==POSITION_TYPE_SELL && new_sl < sl))
{
trade.PositionModify(_Symbol, new_sl, tp);
}
}
}
//================ NEWS FILTER PLACEHOLDER =================
bool NewsSafe()
{
if(!UseNewsFilter) return true;
// Placeholder: safe, can integrate news API
return true;
}
//================ MAIN LOGIC =================
void OnTick()
{
if(_Symbol != "XAUUSD") return;
if(!InSession()) return;
if(!NewsSafe()) return;
ManagePosition();
if(PositionsTotal() > 0) return;
double close = iClose(_Symbol, LTF, 1);
double prevHigh = iHigh(_Symbol, LTF, 2);
double prevLow = iLow(_Symbol, LTF, 2);
DetectLiquiditySweep(prevLow, prevHigh, close);
double atr = ATR(ATR_Period, LTF);
//================ BUY =================
if(BullishStructure() && BuyLiquidityTaken && close > prevHigh)
{
double entry = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
double sl = entry - atr * ATR_Multiplier;
double sl_points = (entry - sl)/_Point;
if(sl_points > MaxSL_Points) return;
double tp = entry + (entry - sl) * RR;
double lot = LotByRisk(sl_points);
trade.Buy(lot, _Symbol, entry, sl, tp);
PartialTaken = false;
DrawLine("BOS_BUY", iTime(_Symbol,LTF,2), prevHigh, iTime(_Symbol,LTF,1), close, clrLime);
DrawLabel("BOS_BUY_LABEL", iTime(_Symbol,LTF,1), close, "BOS BUY", clrLime);
}
//================ SELL =================
if(BearishStructure() && SellLiquidityTaken && close < prevLow)
{
double entry = SymbolInfoDouble(_Symbol, SYMBOL_BID);
double sl = entry + atr * ATR_Multiplier;
double sl_points = (sl - entry)/_Point;
if(sl_points > MaxSL_Points) return;
double tp = entry - (sl - entry) * RR;
double lot = LotByRisk(sl_points);
trade.Sell(lot, _Symbol, entry, sl, tp);
PartialTaken = false;
DrawLine("BOS_SELL", iTime(_Symbol,LTF,2), prevLow, iTime(_Symbol,LTF,1), close, clrRed);
DrawLabel("BOS_SELL_LABEL", iTime(_Symbol,LTF,1), close, "BOS SELL", clrRed);
}
}
Bewerbungen
1
Bewertung
Projekte
34
53%
Schlichtung
1
100%
/
0%
Frist nicht eingehalten
1
3%
Frei
2
Bewertung
Projekte
0
0%
Schlichtung
0
Frist nicht eingehalten
0
Frei
3
Bewertung
Projekte
3
0%
Schlichtung
0
Frist nicht eingehalten
0
Frei
4
Bewertung
Projekte
0
0%
Schlichtung
0
Frist nicht eingehalten
0
Frei
5
Bewertung
Projekte
3
33%
Schlichtung
2
0%
/
100%
Frist nicht eingehalten
0
Frei
6
Bewertung
Projekte
15
13%
Schlichtung
6
0%
/
67%
Frist nicht eingehalten
2
13%
Frei
7
Bewertung
Projekte
8
0%
Schlichtung
8
13%
/
88%
Frist nicht eingehalten
0
Frei
8
Bewertung
Projekte
20
40%
Schlichtung
3
0%
/
67%
Frist nicht eingehalten
3
15%
Frei
9
Bewertung
Projekte
1
0%
Schlichtung
3
0%
/
100%
Frist nicht eingehalten
1
100%
Frei
10
Bewertung
Projekte
5
60%
Schlichtung
1
0%
/
0%
Frist nicht eingehalten
2
40%
Frei
Veröffentlicht: 1 Beispiel
11
Bewertung
Projekte
144
46%
Schlichtung
21
38%
/
24%
Frist nicht eingehalten
32
22%
Frei
12
Bewertung
Projekte
0
0%
Schlichtung
1
0%
/
100%
Frist nicht eingehalten
0
Frei
13
Bewertung
Projekte
0
0%
Schlichtung
0
Frist nicht eingehalten
0
Frei
Ähnliche Aufträge
Hi, I need an experienced NinjaTrader 8/NinjaScript developer to finish or rebuild an automated futures strategy, ideally by the end of this week. I already have the complete TradingView Pine Script reference strategy, an existing ~2,000-line NinjaScript implementation, Playback logs, and known historical benchmark trades. MOST IMPORTANT REQUIREMENT: TRADINGVIEW ↔ NINJATRADER PARITY. The Pine Script is the reference
PHANTOM PROTOCOL V1
35 - 150 USD
PHANTOM PROTOCOL V1 – MT5 EXPERT ADVISOR SPECIFICATION Develop a professional MetaTrader 5 (MT5) Expert Advisor named “PHANTOM PROTOCOL V1”. PRIMARY MARKET: - XAUUSD (Gold) - Designed primarily for M15 and H1 timeframes. - The EA must work with both 3-digit and 2-digit gold pricing where applicable. TRADING LOGIC: Use pure price-action and market-structure analysis rather than relying on a single indicator. The EA
I need an experienced MQL5 developer to build a prototype MT5 Expert Advisor called RiskLock. The software should enforce user-defined trading risk rules before trades are executed. It should support risk percentage or fixed monetary risk, calculate position size using account equity, entry price, stop loss, tick value and contract specifications, block or reduce oversized trades, and include daily loss limits
MQL5 Quantitative Research & EA Optimization Project
280 - 2000 USD
Project Overview I have an existing MT5 Expert Advisor (EA) written in MQL5. The source code ( .mq5 ) will be provided. The underlying strategy is a trend-following system that performs well during trending market conditions, but requires professional quantitative research to improve its ability to identify and avoid highly sideways/range-bound market conditions. The objective of this project is not to build a new EA
Most of the expert is already coded . Create a panel to show the Ratio for the Range . Trigger is based on ratio . Show Distribution / project starts after we clear Distribution
Title: Simple background trading bot for my Oanda account (v20 REST API) Overview Hi, I need a simple, lightweight event based standalone trading bot that connects directly to my Oanda account using broker’s standard REST API (V20 account) via VPS The bot just needs to look at group of 5 currency pairs (manually selectable and adjustable) in different 4 baskets, do some basic percentage math every period, and place
Gold hunter v5
30+ USD
*TITLE:* 5 Trades EA - EMA20/50 + RSI - Safe for Small Account *SPECIFICATION:* I need MT5 EA - Source Code .mq5 *Logic:* Buy: EMA20 > EMA50 and RSI(14) 45-70 Sell: EMA20 < EMA50 and RSI(14) 30-55 Timeframe M15, Symbol XAUUSD and all Forex *Trade Management:* Max 5 trades at same time. Fixed lot 0.01. No martingale. No lot increase. Distance between trades 150 points. Do not open all 5 at same price. Max 5 total
I need an Expert Advisor (EA) developed for MetaTrader 5 (MT5) tailored for trading on Exness accounts. Account & Server Details: Trading Platform: MetaTrader 5 (MT5) Broker: Exness Execution Type: Market / Pending Orders Account Type: [Specify: Standard / Pro / Raw Spread / Zero] Target Instruments: [Specify pairs, e.g., XAUUSD, EURUSD, BTCUSD] Strategy Requirements: Entry Rules: [Insert your buy/sell entry
Account size 50$ to 100$ or 5000USC to 10000USC ( Account $ Size may not matter ) Max Leverage 1000-2000 Min Lot 0.01 [ if averaging possible ] Averaging + Shift TP Faster Required if Trend Direction is Clear Account Protection Maxx Profit Max Loss Key Based Activation News Filter Need Expert to handle this to avoid false entry [ Developer can suggest extra additional filters inputs here ] as i mentioned I have no
Tradingview strategy develop
30+ USD
i need some tradingview strategy that i want to use as a tester, i have something that i am working on currently and i need someone that can provide me with tradingview strategies that doesn't have a win rate, the one with 1:1 RR it need to have low win rate like 10% or 5% profitability, i am not paying $30 for,i dont have up to that for this cause i only want to use it as a test, if anyone have any to send me please
Projektdetails
Budget
300+ USD
Ausführungsfristen
von 1 bis 10 Tag(e)