Техническое задание
e are upgrading the existing SUNRISE EA into SUNRISE ADVANCED.
The existing core logic should remain:
- Define Asian session high/low.
- Wait for trade window.
- Enter when candle closes outside the Asian range.
- Use ATR-based stop-loss.
- Use risk % position sizing.
- Use optional MA filter.
- Use TP by Risk/Reward.
The new job is to add advanced quality filters and entry modes.
1. Asian Range Quality Filter
Add optional filters to control whether the Asian range is suitable for trading.
Inputs
- Use_Min_Asian_Range_Filter = true/false
- Min_Asian_Range_Points = number
- Use_Max_Asian_Range_Filter = true/false
- Max_Asian_Range_Points = number
- Use_ATR_Relative_Range_Filter = true/false
- ATR_Range_Period = number
- Min_Range_ATR_Multiple = number
- Max_Range_ATR_Multiple = number
Logic
At the end of the Asian session / start of trade window, calculate:
- Asian high
- Asian low
- Asian range size = Asian high - Asian low
- ATR value at that moment
Only allow trading for that session if the Asian range passes the selected filters.
ATR-relative example:
Asian range must be between X × ATR and Y × ATR.
Important:
This condition should be checked once only at the start of the trade window, not every signal.
2. Breakout Candle Strength Filter
Add an optional breakout candle quality filter.
Inputs
- Use_Breakout_Candle_Filter = true/false
- Min_Body_Percent = number
- Close_Position_Percent = number
- Breakout_Buffer_Points = number
Logic
For the candle that closes outside the Asian range:
- Candle range = High - Low
- Candle body = absolute value of Close - Open
- Body % = Candle body / Candle range × 100
Trade is valid only if:
Long
- Candle closes above Asian high.
- Close is at least Breakout_Buffer_Points above Asian high.
- Candle body % is at least Min_Body_Percent .
- Close is in the top Close_Position_Percent of the candle range.
Short
- Candle closes below Asian low.
- Close is at least Breakout_Buffer_Points below Asian low.
- Candle body % is at least Min_Body_Percent .
- Close is in the bottom Close_Position_Percent of the candle range.
Example:
If Close_Position_Percent = 25 , then:
- Long close must be in the top 25% of candle range.
- Short close must be in the bottom 25% of candle range.
3. Entry Mode Options
Add selectable entry modes.
Input
Entry_Mode options:
- Breakout_Close
- Retest
- Split_Entry
Mode 1 — Breakout Close
This is the current default logic.
Long
Enter after candle closes above Asian high and passes all filters.
Short
Enter after candle closes below Asian low and passes all filters.
Mode 2 — Retest Entry
Do not enter immediately on breakout close.
First, wait for a valid breakout candle close outside the Asian range.
Then wait for price to retest the broken Asian level.
Long Retest
- Breakout candle closes above Asian high.
- Price then pulls back to/near Asian high.
- Enter long after confirmation.
Short Retest
- Breakout candle closes below Asian low.
- Price then pulls back to/near Asian low.
- Enter short after confirmation.
The retest level is:
- Asian high for longs.
- Asian low for shorts.
Not the Asian midline.
Retest Inputs
- Retest_Tolerance_Points = number
- Max_Candles_To_Wait_For_Retest = number
- Require_Retest_Confirmation_Candle = true/false
Retest Confirmation Logic
If confirmation candle is required:
Long
After price retests Asian high, enter only if a candle closes bullish / back above the retest level.
Short
After price retests Asian low, enter only if a candle closes bearish / back below the retest level.
If no retest occurs within Max_Candles_To_Wait_For_Retest , cancel the setup for that session.
Mode 3 — Split Entry
Split the trade into two parts:
- First entry on breakout close.
- Second entry on retest confirmation.
Inputs
- Split_First_Entry_Percent = number
- Split_Second_Entry_Percent = number
Example:
- First entry = 50%
- Second entry = 50%
Total combined risk should still equal the selected risk %, e.g. 0.5%.
If the retest does not happen, only the first breakout entry remains active.
4. Pending Order Mode
Do not use pending orders as default.
For this version, entries should remain based on candle-close confirmation.
Optional future mode can be added if simple:
- Use_Pending_Order_Entry = true/false
But default should be:
Candle close outside Asian range, not wick-based pending order trigger.
Reason: pending orders may trigger on false wick breakouts.
5. Higher Timeframe Trend Filter
Add optional higher timeframe MA filter.
Inputs
- Use_HTF_MA_Filter = true/false
- HTF_MA_Timeframe = M15/M30/H1/H4/D1
- HTF_MA_Length = number
- HTF_MA_Method = SMA/EMA
- HTF_MA_Applied_Price = Close/Open/High/Low/etc.
- HTF_MA_Condition = Above/Below/Both Directional
Logic
Directional example:
- Longs only allowed if price is above HTF MA.
- Shorts only allowed if price is below HTF MA.
This should work separately from the existing MA filter.
6. Volatility Regime Filter
Add optional ATR / ADX volatility filters.
ATR Rising Filter Inputs
- Use_ATR_Rising_Filter = true/false
- ATR_Rising_Period = number
- ATR_Rising_Lookback = number
Logic
Only allow trades if:
Current ATR > ATR value X candles ago.
ATR vs ATR Average Filter Inputs
- Use_ATR_Average_Filter = true/false
- ATR_Average_Period = number
- ATR_Average_MA_Period = number
Logic
Only allow trades if:
Current ATR > ATR moving average.
ADX Filter Inputs
- Use_ADX_Filter = true/false
- ADX_Period = number
- Min_ADX_Value = number
Logic
Only allow trades if:
ADX is above minimum value.
7. Direction Controls
Add direction options.
Input
Trade_Direction options:
- Both
- Long Only
- Short Only
- HTF Bias Only
Logic
- Long Only = only take Asian high breakouts.
- Short Only = only take Asian low breakouts.
- Both = take either side.
- HTF Bias Only = direction controlled by HTF MA filter.
8. One Trade Per Day / Session
Add strict trade limit options.
Inputs
- One_Trade_Per_Day = true/false
- Stop_After_First_Loss = true/false
- Stop_After_First_Win = true/false
Logic
If One_Trade_Per_Day = true , only one completed trade is allowed per session/day.
If first trade loses and Stop_After_First_Loss = true , stop trading until next session.
If first trade wins and Stop_After_First_Win = true , stop trading until next session.
9. Time-Based Exit Rules
Add optional exit controls.
Inputs
- Use_Close_By_Time = true/false
- Close_By_Time = time
- Use_Min_Progress_Exit = true/false
- Min_Progress_R = number
- Min_Progress_Candles = number
- Use_Return_Inside_Range_Exit = true/false
Logic
Close By Time
Close any open trade at the selected time.
Minimum Progress Exit
Example:
If Min_Progress_R = 1 and Min_Progress_Candles = 4 :
If trade has not reached +1R within 4 candles, close the trade.
Return Inside Range Exit
If trade breaks out but then closes back inside the Asian range, close the trade.
10. Baseline Settings To Preserve
Please preserve all current SUNRISE settings and add the new options without removing existing functionality.
Current working baseline to test from:
- Symbol: GBPUSD
- Timeframe: M30
- Asian session: 01:00–09:00 broker time
- Trade window: 09:00–11:00 broker time
- MA length: 200
- MA method: EMA
- ATR period: 20
- ATR multiplier: 2.5
- TP mode: Risk/Reward
- TP: 3R
- Risk: 0.5%
11. Important Notes
- All new filters should be optional and default to false .
- The EA should still work exactly like the current SUNRISE EA if all advanced filters are disabled.
- Broker server time should remain supported.
- Filters should be visible and easy to optimise in MT5 Strategy Tester.
- Please keep input names clear and grouped logically.
also NYBOX additional 50% rule input:
Please add a new stop-loss management input to the NYBOX EA.
Feature name:
Reduce Risk at % to TP
Purpose:
After a trade is opened, once price reaches a set percentage of the way to the take profit, the EA should move the stop loss closer to entry to reduce the remaining risk.
Inputs:
-
Enable Reduce Risk at % to TP: true/false
-
Trigger % to TP: default 50%
-
Remaining Risk %: default 50%
Logic:
When a trade is opened, the EA should calculate the original risk distance between entry price and stop loss.
Then, when price reaches 50% of the distance from entry to take profit, the EA should move the stop loss so that only 50% of the original risk remains.
Example for BUY:
-
Entry: 100
-
Original SL: 90
-
TP: 120
-
Original risk = 10 points
-
50% to TP = price reaches 110
-
Move SL from 90 to 95
-
Remaining risk is now 5 points
Example for SELL:
-
Entry: 100
-
Original SL: 110
-
TP: 80
-
Original risk = 10 points
-
50% to TP = price reaches 90
-
Move SL from 110 to 105
-
Remaining risk is now 5 points
Important:
-
This should only happen once per trade
-
It should not move SL to breakeven
-
It should reduce the original risk by the selected percentage
-
It should work for both buy and sell trades
-
Existing TP should remain unchanged
-
The feature should be optional and controlled by inputs
Default:
-
Enabled: false
-
Trigger % to TP: 50%
-
Remaining Risk %: 50%