Custom MT4 Multi-Session Opening Range / Breakout Box Indicator

MQL4 Indicadores

Trabajo finalizado

Plazo de ejecución 28 días

Tarea técnica

Custom MT4 Multi-Session Opening Range / Breakout Box Indicator

Project overview

I require a custom MetaTrader 4 (MT4 / MQL4) indicator for plotting configurable opening-range boxes for different trading sessions.

The core concept is similar to an opening-range breakout / No Trading Zone methodology.

For each configured session, the indicator must:

  1. Observe price during a specified start/end time.

  2. Calculate the actual highest high and lowest low during that period.

  3. Draw a box representing that range.

  4. Calculate the box height in pips.

  5. Determine whether the box is valid according to configurable minimum and maximum pip ranges.

  6. After the box closes, project configurable TP levels above and below the box based on multiples of the actual box height.

This is an indicator only at this stage. It does NOT need to automatically place or manage trades.


1. Multiple independent session boxes

The indicator must support at least 5 independent boxes per trading day.

Each box must have its own settings.

Example:

Box 1

  • Enabled = True

  • Name = London Opening

  • Start Time = 07:00

  • End Time = 08:00

Box 2

  • Enabled = True

  • Name = New York Pre-Open

  • Start Time = user configurable

  • End Time = user configurable

Box 3

  • Enabled = True

  • Name = New York Cash Open

  • Start Time = user configurable

  • End Time = user configurable

Boxes 4 and 5 must also be completely configurable.

I do not want session names or times hard-coded.


2. Time handling

Accurate time handling is very important.

The indicator should allow either:

Option A — Broker/server time

The user enters all box times according to MT4 broker/server time.

OR preferably:

Option B — Time-zone offset

Provide an input allowing the user to specify an offset between the desired session time and broker/server time.

For example:

TimeOffsetHours = 2

If possible, I would also like support for fractional offsets if required.

The indicator must work correctly when historical charts are loaded.

Please explain clearly how the time handling has been implemented.


3. Box calculation

For every enabled box:

Between:

BoxStartTime

and

BoxEndTime

the indicator calculates:

BoxHigh = highest traded price during the period

BoxLow = lowest traded price during the period

and:

BoxRange = BoxHigh - BoxLow

The indicator must convert this into true pips, correctly accounting for 4/5-digit Forex brokers and 2/3-digit JPY pricing.

Example:

EUR/USD:

High = 1.17550
Low = 1.17380

Range = 17 pips

not 170 pips.


4. Minimum and maximum box size

This is a critical requirement.

Every individual box must have its own independently configurable minimum and maximum range in pips.

For example:

London Opening

MinBoxPips = 10

MaxBoxPips = 30

New York Opening

MinBoxPips = 15

MaxBoxPips = 35

These must NOT be global settings shared between all boxes.

After the box period finishes:

If:

BoxRange >= MinBoxPips

AND

BoxRange <= MaxBoxPips

then:

Box = VALID

Otherwise:

Box = INVALID


5. Valid and invalid boxes

The indicator must visually distinguish valid from invalid boxes.

For example:

ValidBoxColour = user configurable

InvalidBoxColour = user configurable

ShowInvalidBoxes = True/False

The completed box should display a label containing at least:

Session name + range in pips

Example:

London Opening — 18.4 pips

If invalid, preferably:

London Opening — 34.7 pips — INVALID


6. Entry levels

For a valid box, draw:

Long breakout level

LongEntry = BoxHigh + EntryBuffer

Short breakout level

ShortEntry = BoxLow - EntryBuffer

Each box must have a configurable:

EntryBufferPips

Example:

Box High = 1.17550

EntryBuffer = 1 pip

Long Entry = 1.17560

Entry buffer must be independently configurable for each box.

Allow:

EntryBufferPips = 0

if the user wants entry exactly at the box boundary.


7. Stop-loss reference

The indicator should optionally plot an SL reference on the opposite side of the box.

For a long:

LongSL = BoxLow - SLBufferPips

For a short:

ShortSL = BoxHigh + SLBufferPips

Provide:

ShowSL = True/False

and an independently configurable:

SLBufferPips

Again, this indicator does not execute trades. These are visual levels only.


8. Take-profit projections

This is another critical requirement.

The indicator must use the actual height of the completed box to calculate projected TP levels.

If:

BoxRange = R

then for a long breakout:

TP1 Long = BoxHigh + (R × TP1Multiplier)

TP2 Long = BoxHigh + (R × TP2Multiplier)

TP3 Long = BoxHigh + (R × TP3Multiplier)

TP4 Long = BoxHigh + (R × TP4Multiplier)

For a short:

TP1 Short = BoxLow - (R × TP1Multiplier)

TP2 Short = BoxLow - (R × TP2Multiplier)

etc.

Default values:

TP1Multiplier = 1.0

TP2Multiplier = 2.0

TP3Multiplier = 3.0

TP4Multiplier = 4.0

However, all TP multipliers must be configurable.

For example, I may later want:

TP1 = 0.75 × Box

TP2 = 1.50 × Box

TP3 = 2.00 × Box

TP4 = 3.00 × Box

The indicator must support decimal multipliers.


9. TP calculation example

If a completed opening box is:

High = 1.17500

Low = 1.17300

Range = 20 pips

Then the long projections using 1×, 2×, 3× and 4× must be:

TP1 = 1.17700

TP2 = 1.17900

TP3 = 1.18100

TP4 = 1.18300

The corresponding short projections must be calculated below the box low.

This calculation must be completely automatic.


10. TP lines

Each TP level should have a label such as:

London TP1

London TP2

London TP3

London TP4

or:

NY Open TP1

etc.

Line:

  • colour

  • style

  • width

should preferably be user configurable.


11. Level extension

Entry, SL and TP levels should extend to a configurable time.

For example:

LevelsEndTime = 17:00

or preferably:

ExtendHours = X

If practical, provide both options or use whichever implementation is more robust.

The previous day's levels must not interfere visually with today's session.

There should also be an option:

ShowHistoricalDays = X

Example:

ShowHistoricalDays = 20

This would display the boxes and projections for the previous 20 trading days.


12. Historical accuracy

This is extremely important because I intend to visually backtest the strategy.

Historical boxes must be calculated using the actual historical bars within the specified time windows.

A completed historical box must never change/repaint because new price data arrives.

The high, low, range, validity and projected TP levels for a completed historical box must remain fixed.


13. Alerts

Please provide optional alerts.

Box completion alert

Example:

EURUSD London Opening box complete — Range 18.6 pips — VALID

Invalid box alert

Example:

EURUSD London Opening box complete — Range 34.2 pips — INVALID

Long breakout alert

When price first reaches/crosses the Long Entry level:

EURUSD London Opening LONG breakout

Short breakout alert

When price first reaches/crosses the Short Entry level:

EURUSD London Opening SHORT breakout

Alerts should occur once per event, not repeatedly on every tick.

Preferably support:

  • MT4 popup alert

  • sound

  • push notification

with individual True/False controls.

Email alert is optional.


14. Box information displayed on chart

I would like the following information available visually:

Session Name

Box Range: XX.X pips

VALID / INVALID

Optionally:

Box High

Box Low

The display should remain clean and readable.


15. Independent settings are essential

This point is important.

Every session box must be independently configurable.

For example:

Parameter London US Pre-Open NY Cash Open
Start 07:00 12:30 14:30
End 08:00 13:30 15:00
Min Range 10 12 8
Max Range 30 35 25
Entry Buffer 1 1.5 1
TP1 1× 1× 0.75×
TP2 2× 2× 1.5×
TP3 3× 3× 2×
TP4 4× 4× 3×

The numbers above are examples only and must not be hard-coded.


16. Optional average-range functionality

Please quote this separately if it materially increases development cost.

I would like the indicator optionally to calculate the current box as a percentage of the historical average box size for that same session.

Example:

Previous 20 London opening boxes average = 20 pips.

Today's London box = 14 pips.

Therefore:

CurrentBox / AverageBox = 70%

Display:

London — 14.0 pips — 70% of 20-day average

Input:

AverageLookback = 20

Ideally each session should calculate its own historical average.

This should be switchable:

ShowAverageRange = True/False


17. Optional percentile functionality

Please also quote this separately.

Rather than only comparing the box with its mean, I would eventually like to know where today's range falls within the historical distribution for that session.

For example:

London Box = 16.2 pips — 32nd percentile of previous 100 sessions

Inputs:

PercentileLookback = 100

ShowPercentile = True/False

This is not essential for Version 1 if it significantly increases development time/cost.


18. No automatic trading

For clarity:

This project is NOT an Expert Advisor.

The indicator must NOT:

  • open positions;

  • close positions;

  • change orders;

  • calculate lots;

  • access trading permissions.

It is a visual/research indicator only.

I may commission a separate EA later after the strategy has been properly backtested.


19. Performance requirements

The indicator should:

  • work on standard MT4 Forex charts;

  • work correctly on 4/5-digit brokers;

  • work correctly with JPY pairs;

  • not noticeably slow MT4;

  • avoid excessive chart objects;

  • correctly remove/update its own objects when settings change;

  • not interfere with other indicators;

  • not repaint completed boxes.

It should work regardless of the chart timeframe where reasonably possible.

I will primarily use intraday charts.


20. Source code and ownership

Delivery must include:

1. Compiled .ex4 file

2. Complete editable .mq4 source code

The source code must not be locked, encrypted or intentionally obfuscated.

No external DLL dependencies.

No account-number locking.

No expiry date.

No licence server.

No requirement for an internet connection.

I require the ability to modify or extend the indicator in the future.


21. Testing before completion

Before accepting the project I will test:

  • multiple Forex pairs;

  • 5-digit pair such as EURUSD;

  • JPY pair;

  • several chart timeframes;

  • historical boxes;

  • multiple sessions on the same chart;

  • different Min/Max ranges;

  • decimal TP multipliers;

  • different broker/server times;

  • valid and invalid boxes;

  • TP calculations;

  • alerts;

  • historical non-repainting behaviour.

Any calculation or display bugs identified during this testing should be corrected before final acceptance.


22. Acceptance example

A simple test case:

Session:

07:00–08:00

High:

1.15000

Low:

1.14800

Therefore:

Range = 20 pips

Settings:

MinBox = 10

MaxBox = 30

EntryBuffer = 1 pip

TP1 = 1×

TP2 = 2×

TP3 = 3×

TP4 = 4×

The indicator should classify the box:

VALID — 20 pips

Long Entry:

1.15010

Short Entry:

1.14790

Long projections from the box high:

TP1 = 1.15200

TP2 = 1.15400

TP3 = 1.15600

TP4 = 1.15800

Short projections from the box low:

TP1 = 1.14600

TP2 = 1.14400

TP3 = 1.14200

TP4 = 1.14000

If the same session instead produces a 35-pip range with:

MaxBox = 30

it must be marked INVALID and, depending on the setting selected, either display the invalid box without trading levels or hide it.


Deliverables

Please include in your proposal:

  1. Fixed price for the project

  2. Estimated delivery time

  3. Confirmation that you have previous MQL4 indicator development experience

  4. Confirmation that the full .mq4 source code is included

  5. Confirmation that completed historical boxes will not repaint

  6. Confirmation that all 5 boxes can have independent times, Min/Max pip ranges and TP multipliers

  7. Cost of adding the 20-session average-range calculation

  8. Cost of adding the historical percentile calculation

  9. Length of post-delivery bug-fix/support period

Please do not apply if you intend to provide only a compiled EX4 file.

The priority is accuracy, simplicity, historical reliability and clean code, rather than unnecessary graphical features.


Han respondido

1
Desarrollador 1
Evaluación
(401)
Proyectos
519
24%
Arbitraje
61
57% / 25%
Caducado
60
12%
Trabajando
2
Desarrollador 2
Evaluación
Proyectos
0
0%
Arbitraje
1
0% / 100%
Caducado
0
Libre
3
Desarrollador 3
Evaluación
(111)
Proyectos
184
25%
Arbitraje
25
16% / 76%
Caducado
16
9%
Libre
4
Desarrollador 4
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
5
Desarrollador 5
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
6
Desarrollador 6
Evaluación
(21)
Proyectos
27
41%
Arbitraje
3
33% / 67%
Caducado
3
11%
Libre
7
Desarrollador 7
Evaluación
(17)
Proyectos
21
19%
Arbitraje
5
40% / 40%
Caducado
0
Libre
8
Desarrollador 8
Evaluación
(2350)
Proyectos
2956
63%
Arbitraje
125
44% / 26%
Caducado
429
15%
Libre
9
Desarrollador 9
Evaluación
(8)
Proyectos
8
0%
Arbitraje
2
50% / 0%
Caducado
1
13%
Trabaja
10
Desarrollador 10
Evaluación
(40)
Proyectos
39
46%
Arbitraje
12
17% / 50%
Caducado
2
5%
Libre
11
Desarrollador 11
Evaluación
(2676)
Proyectos
3418
68%
Arbitraje
77
48% / 14%
Caducado
343
10%
Trabaja
Ha publicado: 1 ejemplo
12
Desarrollador 12
Evaluación
(184)
Proyectos
198
46%
Arbitraje
4
50% / 25%
Caducado
1
1%
Trabaja
13
Desarrollador 13
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
14
Desarrollador 14
Evaluación
(75)
Proyectos
99
57%
Arbitraje
5
80% / 20%
Caducado
5
5%
Trabajando
15
Desarrollador 15
Evaluación
(2)
Proyectos
2
0%
Arbitraje
1
0% / 100%
Caducado
0
Libre
16
Desarrollador 16
Evaluación
(3)
Proyectos
9
67%
Arbitraje
0
Caducado
0
Trabaja
17
Desarrollador 17
Evaluación
(25)
Proyectos
31
13%
Arbitraje
14
0% / 79%
Caducado
9
29%
Libre
18
Desarrollador 18
Evaluación
(1)
Proyectos
4
0%
Arbitraje
5
20% / 40%
Caducado
2
50%
Libre
19
Desarrollador 19
Evaluación
(369)
Proyectos
459
55%
Arbitraje
24
58% / 17%
Caducado
31
7%
Libre
20
Desarrollador 20
Evaluación
(7)
Proyectos
6
0%
Arbitraje
4
25% / 75%
Caducado
2
33%
Libre
21
Desarrollador 21
Evaluación
(30)
Proyectos
45
16%
Arbitraje
2
0% / 100%
Caducado
4
9%
Libre
22
Desarrollador 22
Evaluación
(11)
Proyectos
18
33%
Arbitraje
0
Caducado
1
6%
Trabaja
23
Desarrollador 23
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
24
Desarrollador 24
Evaluación
(268)
Proyectos
603
34%
Arbitraje
65
22% / 57%
Caducado
146
24%
Trabaja
Ha publicado: 1 artículo, 22 ejemplos
25
Desarrollador 25
Evaluación
(1)
Proyectos
1
0%
Arbitraje
0
Caducado
0
Libre
Ha publicado: 4 ejemplos
26
Desarrollador 26
Evaluación
(106)
Proyectos
129
25%
Arbitraje
25
28% / 56%
Caducado
8
6%
Libre
27
Desarrollador 27
Evaluación
(559)
Proyectos
853
61%
Arbitraje
33
27% / 45%
Caducado
24
3%
Libre
Ha publicado: 1 ejemplo
28
Desarrollador 28
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
29
Desarrollador 29
Evaluación
(15)
Proyectos
15
33%
Arbitraje
1
0% / 100%
Caducado
1
7%
Libre
30
Desarrollador 30
Evaluación
(13)
Proyectos
23
39%
Arbitraje
8
0% / 50%
Caducado
4
17%
Libre
31
Desarrollador 31
Evaluación
(83)
Proyectos
97
32%
Arbitraje
9
22% / 56%
Caducado
5
5%
Trabaja
32
Desarrollador 32
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
Ha publicado: 1 ejemplo
33
Desarrollador 33
Evaluación
(1)
Proyectos
2
50%
Arbitraje
0
Caducado
1
50%
Trabaja
34
Desarrollador 34
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
35
Desarrollador 35
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
36
Desarrollador 36
Evaluación
(20)
Proyectos
26
38%
Arbitraje
6
33% / 50%
Caducado
0
Libre
37
Desarrollador 37
Evaluación
(271)
Proyectos
553
50%
Arbitraje
57
40% / 37%
Caducado
227
41%
Trabaja
38
Desarrollador 38
Evaluación
(13)
Proyectos
20
40%
Arbitraje
1
0% / 100%
Caducado
1
5%
Libre
39
Desarrollador 39
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
40
Desarrollador 40
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
41
Desarrollador 41
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
42
Desarrollador 42
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
43
Desarrollador 43
Evaluación
(319)
Proyectos
574
35%
Arbitraje
83
31% / 45%
Caducado
207
36%
Libre
44
Desarrollador 44
Evaluación
(4)
Proyectos
8
0%
Arbitraje
3
33% / 67%
Caducado
4
50%
Libre
45
Desarrollador 45
Evaluación
(2)
Proyectos
2
50%
Arbitraje
0
Caducado
0
Libre
46
Desarrollador 46
Evaluación
(64)
Proyectos
145
46%
Arbitraje
21
38% / 24%
Caducado
32
22%
Libre
47
Desarrollador 47
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
48
Desarrollador 48
Evaluación
(5)
Proyectos
5
100%
Arbitraje
0
Caducado
0
Libre
49
Desarrollador 49
Evaluación
(34)
Proyectos
35
40%
Arbitraje
0
Caducado
3
9%
Libre
50
Desarrollador 50
Evaluación
(453)
Proyectos
566
26%
Arbitraje
24
42% / 38%
Caducado
85
15%
Libre
Ha publicado: 6 ejemplos
51
Desarrollador 51
Evaluación
(630)
Proyectos
739
34%
Arbitraje
49
53% / 39%
Caducado
15
2%
Trabaja
52
Desarrollador 52
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
53
Desarrollador 53
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
54
Desarrollador 54
Evaluación
(13)
Proyectos
18
44%
Arbitraje
2
50% / 50%
Caducado
0
Libre
55
Desarrollador 55
Evaluación
(78)
Proyectos
246
74%
Arbitraje
7
100% / 0%
Caducado
1
0%
Libre
Ha publicado: 1 artículo
56
Desarrollador 56
Evaluación
(45)
Proyectos
53
57%
Arbitraje
2
100% / 0%
Caducado
1
2%
Libre
Ha publicado: 5 ejemplos
57
Desarrollador 57
Evaluación
(22)
Proyectos
28
7%
Arbitraje
9
33% / 33%
Caducado
1
4%
Trabaja
58
Desarrollador 58
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
59
Desarrollador 59
Evaluación
(1)
Proyectos
1
0%
Arbitraje
0
Caducado
0
Libre
Ha publicado: 3 ejemplos
60
Desarrollador 60
Evaluación
(263)
Proyectos
309
76%
Arbitraje
15
67% / 0%
Caducado
6
2%
Trabajando
61
Desarrollador 61
Evaluación
(4)
Proyectos
5
0%
Arbitraje
0
Caducado
0
Libre
62
Desarrollador 62
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
Ha publicado: 1 ejemplo
63
Desarrollador 63
Evaluación
(10)
Proyectos
14
43%
Arbitraje
0
Caducado
3
21%
Libre
64
Desarrollador 64
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
Solicitudes similares
Hi. I am looking for an experienced MQL5 developer for an advanced XAUUSD MT5 indicator. Before choosing a developer, I would like to see a small proof-of-concept or an example of a similar indicator you have already developed. My final indicator must be written from scratch in MQL5 and I must receive the complete .mq5 source code + compiled .ex5 . Main requirements: XAUUSD MT5 / MQL5 Indicator only — NO AutoTrading
Title: Advanced XAUUSD MT5 Indicator – MQL5 Source Code Required I need a professional MT5 indicator written from scratch in MQL5 (.mq5) for XAUUSD. The indicator must be signals/analysis only — AutoTrading must remain OFF . I need the complete editable .mq5 source code, not only an .ex5 file. The system should analyze multiple timeframes: H4 → H1 → M30 → M15 → M5 → M1 . Required logic: Higher-timeframe
i have indicator for Trading View, also copy for NT, i need someone to improve and check the NT version (indicator is simple is volume density koncept)…. when i put same settings on TV version and NT version i have diffrerent results, but this can be because diffrent market data or fact that TV sending tick info in blocks , not tick by tick like NT8 on both. I(ndicator base on counting volume) so besied that is it
Please may someone assist me with the indicator attached, it has a SERIOUS BUG issue in the sense that when I load it, and activate the template (attached as well) MT4 ALWAYS freezes and then eventually disconnects automatically, ALL THE TIME. It even gets worse to an extent that after disconnecting a number of times mt4 ends up not loading anymore, UNTIL I remove the indicator. Please I WILL NEED A DEMO (FOR A DAY)
‎A trending candle followed by a smaller trending candle which is the second candle with no 5EMA ‎ ‎The 3rd candle is a reversal candle in which it and it's immidiate previous candle must be at least 70% of each other's body or equal body, with no 5EMA touch ‎ ‎the 3rd candle candle is followed immediately by the 4th candle which is the signal candle in which it and the 1st cabdle must be also at least 70% of
LynxMT5algo 30 - 100 USD
An mt5 add on indicator like gainalgo style to show entrance and exit areas for gold silver and Btc scalping. It will be used to make trading more easy for beginners
I have the Fisher Indicator shown below the chart. I need an alert added for when the Fisher Indicator hits the 50 point at the end of each period. GBPUSD and EURUSD 4H charts are provided and I can provide additional
Hello here, I need someone who can work on pinescript and also with Renko charts. My entries for my strategy would be based on stop orders Kindly let me know if you can work on this for me and i will send necessary file and quote in the chat
Freelance Task — EA Recovery Layer Hello. I have a ready-made MQL5 EA. The signals, SL/TP and lot calculation should essentially not be touched. I need a recovery system added. I am not a programmer — below is how the robot should behave. What stays Entry only from an EA signal. Stop-loss is not a new signal. Trailing is already built into my EA — recovery does not implement its own trailing. If trailing is disabled
# SNRZ BOT — SESSION PROGRESS LOG Last updated: 2026-09-16 (local late-evening session) ## SAN BOT (new — cloned from SNRZ) - `MQL5\Experts\AutomatedOrderBot_SAN.mq5` / `.ex5` — v1.0, compiled 0 errors/0 warnings - Signal source: custom indicator "SAN" (InpSANName, buy buf 0 / sell buf 1, target bar 1), same SNRZ-style read, MA fallback if missing - Magic number 234567 (separate from SNRZ 123456 so both bots can run

Información sobre el proyecto

Presupuesto
150+ USD