İş tamamlandı

Tamamlanma süresi: 8 gün

İş Gereklilikleri

//+------------------------------------------------------------------+
//|                                           SpikeHunterX.mq5       |
//|                   Proprietary Boom & Crash Spike Indicator       |
//|         Multi-Layer Signal System - Trap Zones, Liquidity, etc. |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots   0
#include <Math\Stat\StdDev.mqh>

//+------------------------------------------------------------------+
//| Explanation:
//| This indicator is designed for Boom and Crash indices (MT5).
//| It detects engineered spikes using 5 filters:
//| 1. Volatility Compression Zone (Trap Box)
//| 2. Liquidity Pool Scanner (Equal Highs/Lows)
//| 3. Spike Pattern Recognition (based on candle behavior)
//| 4. Volume Anomaly Detection (non-linear volume spikes)
//| 5. Time Filter (high-probability spike times)
//|
//| If all filters align, it draws a BUY or SELL spike arrow on chart.
//+------------------------------------------------------------------+

//--- Adjustable Parameters
input double VolatilityThreshold     = 0.3;   // StdDev threshold for compression zone
input int    LiquidityTolerancePips  = 3;     // Max pip distance for equal highs/lows
input double VolumeMultiplier        = 2.0;   // Volume spike threshold
input int    SpikeCheckShiftStart    = 10;
input int    SpikeCheckDepth         = 50;

//+------------------------------------------------------------------+
//| Volatility Compression Zone Detection
//+------------------------------------------------------------------+
bool IsCompressionZone()
{
   double std_dev = iStdDev(_Symbol, _Period, 10, MODE_SMA, PRICE_CLOSE, 0);
   double boll_upper = iBands(_Symbol, _Period, 20, 2.0, 0, PRICE_CLOSE, MODE_UPPER, 0);
   double boll_lower = iBands(_Symbol, _Period, 20, 2.0, 0, PRICE_CLOSE, MODE_LOWER, 0);
   double boll_range = boll_upper - boll_lower;
   double atr = iATR(_Symbol, _Period, 14, 0);

   return (std_dev < VolatilityThreshold && boll_range < atr);
}

//+------------------------------------------------------------------+
//| Liquidity Pool Detection (Equal Highs/Lows)
//+------------------------------------------------------------------+
bool IsEqualLow(int shift)
{
   double low1 = Low[shift];
   double low2 = Low[shift + 1];
   double low3 = Low[shift + 2];
   double tolerance = LiquidityTolerancePips * _Point;
   return (MathAbs(low1 - low2) <= tolerance && MathAbs(low2 - low3) <= tolerance);
}

bool IsEqualHigh(int shift)
{
   double high1 = High[shift];
   double high2 = High[shift + 1];
   double high3 = High[shift + 2];
   double tolerance = LiquidityTolerancePips * _Point;
   return (MathAbs(high1 - high2) <= tolerance && MathAbs(high2 - high3) <= tolerance);
}

//+------------------------------------------------------------------+
//| Broker Spike Pattern Detection (3-candle setup)
//+------------------------------------------------------------------+
bool IsBearishSpikePattern(int shift)
{
   return (Close[shift+2] > Open[shift+2] &&
           Close[shift+1] > Open[shift+1] &&
           Close[shift]   < Open[shift]);
}

bool IsBullishSpikePattern(int shift)
{
   return (Close[shift+2] < Open[shift+2] &&
           Close[shift+1] < Open[shift+1] &&
           Close[shift]   > Open[shift]);
}

//+------------------------------------------------------------------+
//| Volume Anomaly Detector
//+------------------------------------------------------------------+
bool IsVolumeAnomaly(int shift)
{
   double avgVol = 0;
   for(int i = 1; i <= 10; i++)
      avgVol += Volume[shift + i];
   avgVol /= 10;

   return (Volume[shift] > avgVol * VolumeMultiplier);
}

//+------------------------------------------------------------------+
//| Time Filter (Specific Spike Minutes)
//+------------------------------------------------------------------+
bool IsSpikeTime()
{
   datetime now = TimeCurrent();
   int minute = TimeMinute(now);
   return (minute == 5 || minute == 20 || minute == 45);
}

//+------------------------------------------------------------------+
//| Final Spike Signal Logic (Buy/Sell Conditions)
//+------------------------------------------------------------------+
bool IsBuySpikeSignal(int shift)
{
   return (IsCompressionZone() &&
           IsEqualLow(shift) &&
           IsBullishSpikePattern(shift) &&
           IsVolumeAnomaly(shift) &&
           IsSpikeTime());
}

bool IsSellSpikeSignal(int shift)
{
   return (IsCompressionZone() &&
           IsEqualHigh(shift) &&
           IsBearishSpikePattern(shift) &&
           IsVolumeAnomaly(shift) &&
           IsSpikeTime());
}

//+------------------------------------------------------------------+
//| Draw Arrows on Spike Detection
//+------------------------------------------------------------------+
void DrawSpikeSignal(string label, int shift, bool isBuy)
{
   string name = label + IntegerToString(shift);
   double price = isBuy ? Low[shift] - 10 * _Point : High[shift] + 10 * _Point;
   color clr = isBuy ? clrLime : clrRed;
   int arrow = isBuy ? 233 : 234; // Wingdings up/down

   if(!ObjectCreate(0, name, OBJ_ARROW, 0, Time[shift], price)) return;
   ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
   ObjectSetInteger(0, name, OBJPROP_WIDTH, 2);
   ObjectSetInteger(0, name, OBJPROP_ARROWCODE, arrow);
}

//+------------------------------------------------------------------+
//| Main OnCalculate Loop
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   for(int i = rates_total - SpikeCheckDepth; i >= SpikeCheckShiftStart; i--)
   {
      if (IsBuySpikeSignal(i))
         DrawSpikeSignal("BuySpike", i, true);
      else if (IsSellSpikeSignal(i))
         DrawSpikeSignal("SellSpike", i, false);
   }
   return(rates_total);
}

//+------------------------------------------------------------------+
read it carefull all logic i want you to code into this indicator 
alert trade panel background watermarking of symbol 

“This is a multi-layer advanced spike detection system for Boom & Crash. Each module is modular and explained. It’s based on proprietary edge logic, not retail indicators. Please compile, test on M5 timeframe, and optionally add alerts or dashboard after verifying the core logic.”


📦 What's Included:

  1. Trap Zone Detection (via stddev + Bollinger + ATR)

  2. Liquidity Sweep Zones (Equal Highs/Lows logic)

  3. Candle Pattern Recognition (3-candle spike structure)

  4. Volume Anomaly Filter (custom volume surge)

  5. Time Filter (uses broker timing edge)

  6. Unified Spike Entry Logic (Buy/Sell conditions)

  7. Spike Drawing Engine (arrows on chart with price offset)

This is a proprietary spike detection system for Boom & Crash indices on MT5, designed to detect institutional-style manipulations, not just standard retail indicators. It uses five layered conditions to filter out false signals and only highlight high-probability spike opportunities.


🧩 1. Volatility Compression Zone (Trap Box)

What It Does:

  • Detects when the market is ranging with low volatility (tight candles).

  • Spikes often explode out of these “trap zones.”

How It Works:

  • Uses StdDev and Bollinger Band range to detect a squeeze condition.

  • Compares the Bollinger range to ATR to confirm a volatility drop.

🗣️ “If the candles are small and volatility is low, it means price is about to break out. This sets up the environment for a potential spike.”


🧩 2. Liquidity Pool Scanner (Equal Highs/Lows)

What It Does:

  • Finds Equal Highs or Lows → Where retail traders place stop losses.

  • Spikes are designed to hit those stops (aka liquidity hunts).

How It Works:

  • Checks if 3 recent candles have nearly equal highs (for sell spike) or lows (for buy spike).

  • A pip-based tolerance defines “equal.”

🗣️ “We scan for zones where stop losses are clustered. If price touches that zone during a trap breakout, it's likely to spike.”


🧩 3. Broker Spike Pattern Recognition

What It Does:

  • Detects specific candle patterns brokers often use before triggering a spike.

  • For example: 2 bullish candles followed by a strong bearish candle (spike).

How It Works:

  • Matches a 3-candle formation that historically precedes spikes.

    • For crash (sell): Bull → Bull → Big Bear

    • For boom (buy): Bear → Bear → Big Bull

🗣️ “We reverse-engineered known broker patterns that tend to appear before a spike. We filter based on that sequence.”


🧩 4. Volume Anomaly Detector

What It Does:

  • Detects abnormal tick volume spikes.

  • Spikes usually come with a sudden volume burst.

How It Works:

  • Compares the current volume to the average volume of the last 10 candles.

  • If it’s 2x or more (customizable), it's flagged as an anomaly.

🗣️ “When big volume hits suddenly during compression, it’s often a broker-pushed spike — so we confirm this volume burst as a signal condition.”


🧩 5. Time Filter (Spike Hot Minutes)

What It Does:

  • Filters trades to trigger only at known spike-prone times (e.g. :05, :20, :45 past the hour).

How It Works:

  • Uses TimeMinute() to detect whether current broker time matches high-probability windows.

🗣️ “Some brokers push spikes on a pattern — for example, every 15-20 minutes. So we only allow signals during these hot times.”


🎯 Spike Signal Logic

What It Does:

  • Only triggers a Buy/Sell signal if all five conditions are met.

How It Works:

  • Functions like IsBuySpikeSignal() or IsSellSpikeSignal() check:

    1. Compression Zone ✅

    2. Liquidity Pool ✅

    3. Broker Pattern ✅

    4. Volume Anomaly ✅

    5. Spike Time ✅

🗣️ “This is a multi-confirmation system. No signal will appear unless all criteria align — this reduces false signals significantly.”


📈 Spike Drawing on Chart

What It Does:

  • Draws a green or red arrow below or above the candle where spike is expected.

  • Shows the exact candle where signal was detected.

How It Works:

  • Draws OBJ_ARROW using Wingdings code for up/down arrows.

  • Uses ObjectCreate() for chart display with time and price.

🗣️ “Whenever a spike is expected, it draws an arrow so we can visually verify the setup on the chart.”


📂 Developer Summary for Integration

Indicator Requirements:

  • MT5 compatible (MQL5)

  • Works on Boom/Crash  (timeframe: M1 preferred)

  • Self-contained, no buffers — only chart objects (arrows)

Customization Options:

  • Add alerts (optional)

  • Add dashboard (optional)

  • Turn into EA later


✅  Developer:

“I want you to build a fully working MT5 indicator that detects engineered spikes using a proprietary 5-layer filtering system: compression zones, liquidity sweeps, broker candle patterns, volume spikes, and time filters. The signal should only trigger when all 5 align. Arrows should show where the spike is expected. No repainting. I want the code clean, modular, and scalable.”




Yanıtlandı

1
Geliştirici 1
Derecelendirme
(14)
Projeler
17
6%
Arabuluculuk
8
38% / 38%
Süresi dolmuş
2
12%
Yüklendi
2
Geliştirici 2
Derecelendirme
(442)
Projeler
570
37%
Arabuluculuk
106
39% / 33%
Süresi dolmuş
17
3%
Serbest
3
Geliştirici 3
Derecelendirme
(3)
Projeler
2
0%
Arabuluculuk
1
0% / 100%
Süresi dolmuş
0
Serbest
Benzer siparişler
1.Sinyal Perdagangan : Sinyal beli: garis MACD utama memotong garis sinyal ke atas (macd_current>signal_current && macd_previous<signal_previous). Sinyal jual: garis MACD utama memotong garis sinyal ke bawah (macd_current<signal_current && macd_previous>signal_previous). Gambar di bawah menunjukkan kasus beli dan jual. 2. Posisi ditutup pada sinyal yang berlawanan: Posisi beli ditutup pada sinyal jual, dan posisi
Olá, preciso de um programador para montar um indicador com base na sobrevenda do estocastico, volume macd, para uma estrategia de reversão e falso rompimento com regioes de OB validos minimas e maximas de H1, H4, D1 e canais para confluencias, quero que seja didatico visualmente e com cores, sons de alertas e algum sinal de call ou put como setas indicando reversões e falsos rompimentos e continuidade
Subject: Experienced MQL5 Developer | High-Quality Execution & Error Handling "Hello, I am interested in developing your trading system. I specialize in building robust MQL5 Expert Advisors that are not only logically sound but also technically optimized for the MT5 platform. Why work with me? Error-Free Execution: I have deep experience in handling common MT5 execution errors such as Invalid Volume, Not Enough
Hi, I have a specific set of rules and a strategy to execute a trade. I'm looking for a developer to assist me in developing an MQL5 EA based on my strategies

Proje bilgisi

Bütçe
30 - 100 USD
Son teslim tarihi
to 10 gün