Thobo ea fx

Specification

// === INPUT PARAMETERS ===
input int FastMA = 9;     // Fast moving average for trend
input int SlowMA = 21;    // Slow moving average for trend
input double Risk = 1.0;  // Risk percentage per trade
input int ATRPeriod = 14; // ATR period for dynamic SL/TP
input double ATRMultiplier = 1.5; // Multiplier for ATR-based SL/TP
input int RSI_Period = 14; // RSI period
input int RSI_Overbought = 70;
input int RSI_Oversold = 30;
input int MACD_Fast = 12, MACD_Slow = 26, MACD_Signal = 9; // MACD settings

// === STRUCTURE DETECTION ===
double HighPrev, LowPrev, HighCurrent, LowCurrent;
bool BreakOfStructure;

// === FAIR VALUE GAP DETECTION ===
bool FairValueGapFound(double high1, double low1, double high2, double low2) {
    return (low2 > high1);  // FVG occurs when the second candle's low is above the first candle's high
}

// === ORDER BLOCK DETECTION ===
bool IsOrderBlock(double open1, double close1, double open2, double close2) {
    return (close1 < open1 && close2 > open2); // Bullish order block: Strong rejection from a bearish candle
}

// === MAIN FUNCTION ===
void OnTick() {
    // Get latest candle data
    HighPrev = iHigh(Symbol(), PERIOD_M15, 1);
    LowPrev = iLow(Symbol(), PERIOD_M15, 1);
    HighCurrent = iHigh(Symbol(), PERIOD_M15, 0);
    LowCurrent = iLow(Symbol(), PERIOD_M15, 0);

    // === CHECK FOR BREAK OF STRUCTURE (BOS) ===
    BreakOfStructure = (HighCurrent > HighPrev || LowCurrent < LowPrev);

    // === CHECK FOR FAIR VALUE GAP (FVG) ===
    bool FVG = FairValueGapFound(HighPrev, LowPrev, HighCurrent, LowCurrent);

    // === CHECK FOR ORDER BLOCKS ===
    bool OrderBlock = IsOrderBlock(iOpen(Symbol(), PERIOD_M15, 1), iClose(Symbol(), PERIOD_M15, 1), 
                                   iOpen(Symbol(), PERIOD_M15, 0), iClose(Symbol(), PERIOD_M15, 0));

    // === TREND FILTER USING MOVING AVERAGES ===
    double maFast = iMA(Symbol(), PERIOD_M15, FastMA, 0, MODE_SMA, PRICE_CLOSE, 0);
    double maSlow = iMA(Symbol(), PERIOD_M15, SlowMA, 0, MODE_SMA, PRICE_CLOSE, 0);
    bool Uptrend = (maFast > maSlow);
    bool Downtrend = (maFast < maSlow);

    // === RSI FILTER ===
    double RSI_Value = iRSI(Symbol(), PERIOD_M15, RSI_Period, PRICE_CLOSE, 0);
    bool RSI_Buy = (RSI_Value < RSI_Oversold);
    bool RSI_Sell = (RSI_Value > RSI_Overbought);

    // === MACD FILTER ===
    double macdMain, macdSignal, macdHist;
    iMACD(Symbol(), PERIOD_M15, MACD_Fast, MACD_Slow, MACD_Signal, PRICE_CLOSE, macdMain, macdSignal, macdHist);
    bool MACD_Buy = (macdMain > macdSignal);
    bool MACD_Sell = (macdMain < macdSignal);

    // === ATR for DYNAMIC SL/TP ===
    double ATR_Value = iATR(Symbol(), PERIOD_M15, ATRPeriod, 0);
    double DynamicSL = ATRMultiplier * ATR_Value;
    double DynamicTP = 4 * DynamicSL; // 1:4 Risk-Reward

    // === TRADE CONDITIONS ===
    if (BreakOfStructure && FVG && OrderBlock && Uptrend && RSI_Buy && MACD_Buy && OrdersTotal() == 0) {
        // Buy Setup
        double lotSize = 0.1; 
        double entryPrice = Ask;
        double stopLoss = entryPrice - DynamicSL; 
        double takeProfit1 = entryPrice + (DynamicTP * 0.5); // 50% TP
        double takeProfit2 = entryPrice + (DynamicTP); // 100% TP

        // Place Buy Order
        int orderTicket = OrderSend(Symbol(), OP_BUY, lotSize, entryPrice, 10, stopLoss, takeProfit2, "BUY Order", 0, 0, clrBlue);

        // Set Partial TP
        if (orderTicket > 0) {
            Sleep(5000); // Wait before modifying order
            OrderModify(orderTicket, entryPrice, stopLoss, takeProfit1, 0, clrBlue);
        }
    }

    if (BreakOfStructure && FVG && OrderBlock && Downtrend && RSI_Sell && MACD_Sell && OrdersTotal() == 0) {
        // Sell Setup
        double lotSize = 0.1; 
        double entryPrice = Bid;
        double stopLoss = entryPrice + DynamicSL;
        double takeProfit1 = entryPrice - (DynamicTP * 0.5); // 50% TP
        double takeProfit2 = entryPrice - (DynamicTP); // 100% TP

        // Place Sell Order
        int orderTicket = OrderSend(Symbol(), OP_SELL, lotSize, entryPrice, 10, stopLoss, takeProfit2, "SELL Order", 0, 0, clrRed);

        // Set Partial TP
        if (orderTicket > 0) {
            Sleep(5000);
            OrderModify(orderTicket, entryPrice, stopLoss, takeProfit1, 0, clrRed);
        }
    }
}

Responded

1
Developer 1
Rating
(259)
Projects
324
30%
Arbitration
34
26% / 65%
Overdue
10
3%
Working
2
Developer 2
Rating
(33)
Projects
38
21%
Arbitration
5
0% / 60%
Overdue
0
Free
3
Developer 3
Rating
(23)
Projects
34
53%
Arbitration
1
100% / 0%
Overdue
1
3%
Free
4
Developer 4
Rating
(17)
Projects
21
14%
Arbitration
8
38% / 38%
Overdue
3
14%
Loaded
5
Developer 5
Rating
(328)
Projects
513
19%
Arbitration
34
44% / 32%
Overdue
34
7%
Loaded
6
Developer 6
Rating
(13)
Projects
20
40%
Arbitration
1
0% / 100%
Overdue
1
5%
Free
7
Developer 7
Rating
(62)
Projects
90
29%
Arbitration
24
13% / 58%
Overdue
7
8%
Working
8
Developer 8
Rating
(24)
Projects
26
73%
Arbitration
1
0% / 100%
Overdue
0
Free
9
Developer 9
Rating
(33)
Projects
35
20%
Arbitration
5
40% / 40%
Overdue
0
Free
Published: 1 code
10
Developer 10
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free
11
Developer 11
Rating
(2)
Projects
3
0%
Arbitration
8
13% / 88%
Overdue
1
33%
Free
12
Developer 12
Rating
(597)
Projects
691
33%
Arbitration
43
44% / 44%
Overdue
12
2%
Loaded
13
Developer 13
Rating
(6)
Projects
5
0%
Arbitration
4
25% / 75%
Overdue
2
40%
Free
14
Developer 14
Rating
(200)
Projects
259
21%
Arbitration
22
50% / 18%
Overdue
0
Working
15
Developer 15
Rating
(3)
Projects
1
0%
Arbitration
5
0% / 100%
Overdue
0
Free
16
Developer 16
Rating
(162)
Projects
289
35%
Arbitration
18
22% / 61%
Overdue
43
15%
Free
17
Developer 17
Rating
(77)
Projects
244
74%
Arbitration
7
100% / 0%
Overdue
1
0%
Free
Published: 1 article
18
Developer 18
Rating
(45)
Projects
91
13%
Arbitration
34
26% / 59%
Overdue
37
41%
Free
19
Developer 19
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free
20
Developer 20
Rating
(7)
Projects
8
0%
Arbitration
4
0% / 100%
Overdue
3
38%
Free
21
Developer 21
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free
22
Developer 22
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free
23
Developer 23
Rating
(574)
Projects
945
47%
Arbitration
309
58% / 27%
Overdue
125
13%
Free
Similar orders
Noganda EA 30+ USD
*MQL5 Bot: “HH_HL_Simple.mq5”* Copy → Paste → Compile in MetaEditor. //+------------------------------------------------------------------+ //| HH_HL_Simple.mq5 | //| WARNING: FOR EDUCATION/DEMO ONLY. YOU CAN LOSE MONEY. | //| @kasii_trader_nela - Learn first, trade later | //+------------------------------------------------------------------+ #property copyright "Educational use only" #property strict #include
I need a simple bot for opening range. Simple Entry / Exit rules, to be able to customize the timeframe, time zone (entry candle) and other normal settings like size, etc
Nyctrad1 30+ USD
Free link free land free land free land free land free free land free land free things free land free land free land free land free land free land free land free Finch I will do it
Title Professional AI Automation Trading Bot for Forex & Crypto Solution Language Python (preferred) or MQL5 depending on integration requirements. Categories Expert Advisor (EA) for MetaTrader 5 Automated trading strategies AI/ML-based signal generation Risk management automation Required Skills Strong knowledge of MQL5/Python Experience with MetaTrader API integration Machine learning model deployment
BullyMax Pro 30+ USD
"Act as an expert MQL5 algorithmic trading developer. I want you to create a profitable and efficient Expert Advisor for MetaTrader 5. Do not write the code yet; read the following trading rules, analyze them, and ask me any clarifying questions if needed. Timeframe: [e.g.15 minutes Chart] Entry Logic: [e.g.MACD + RSI + REVERSAL PRICE ACTION. Enter buy when Macd line crosses above the signal line ,RSI above 30 and
I want an indicator that displays the risk reward ratio of each chart candle as a sub window histogram. If the candle closes above the open the histogram displays a green bar above zero the size of which is dependant on the size of the RRR. If the candle closes below the open the histogram displays a red bar below zero the size of which is dependant on the size of the RRR. My attempt that does not work is attached
Hi, I am looking for an experienced MQL5 developer to modify an existing, fully functional MetaTrader 5 Expert Advisor (Source code .mq5 Version 2.62 will be provided). Brief Overview of the EA: It executes trades based on 4 custom Supply/Demand levels (R1, R2, S1, S2) which are inputted manually . It uses two custom indicators for confirmation: SPA (Price Action filter) and AMG (Volume/Momentum filter). The code
I really like this platform. I am interested in trading and need funds for it. I enjoy both crypto and forex trading.I"really appreciate this platform. I am keen on trading and am looking for trading funds. I enjoy trading in both cryptocurrency and forex."
Titan Quantum Algo Engine V2 is an advanced MT5 Expert Advisor designed to identify high-probability market opportunities using trend analysis, breakout detection, and intelligent risk management. The EA automatically executes trades, manages stop-loss and take-profit levels, and helps traders maintain disciplined trading with optimized entry and exit strategies
The striker robot 30 - 2000 USD
I would like a trend and pullback strategy for the robot timeframe:15 minutes(m15) or 1 hour(h1) indicators:50 EMA (Exponential Moving Average)/200 EMA/RSI (14) BUY SET UP 1.Confirm The Trend .50 EMA must be above 200 EMA .Price must be above both EMAs 2.Wait for a pullback .Do not buy when the price shoots up. .Wait for the price to come back near the 50 EMA 3.Confirm entry .ENTER BUY WHEN: .A bullish candlestick

Project information

Budget
30 - 200 USD