Tarea técnica
Seeking an experienced algorithmic trading developer to build an Expert Advisor (EA) based on a momentum reversal strategy using the Commodity Channel Index (CCI) and Relative Strength Index (RSI) indicators. The system must detect price exhaustion points, dynamically track key price levels, and execute trades accordingly.
KEY FUNCTIONALITIES
-
MOMENTUM REVERSAL DETECTION
- The EA must continuously monitor price movement to identify oversold and overbought conditions.
- CCI (≤ -100) and RSI (≤ 30) should confirm an oversold market, while CCI (≥ 100) and RSI (≥ 70) should validate an overbought scenario.
- A HORIZONTAL TREND LINE must be drawn at the lowest or highest price of the day, updating dynamically when new extremes form.
-
TRADE EXECUTION CRITERIA
- BUY SETUP: A pending buy order should be placed 40 pipettes above the lowest price once CCI exits the oversold zone (>-100) and RSI recovers (>30).
- SELL SETUP: A pending sell order should be positioned 40 pipettes below the highest price once CCI exits the overbought zone (<100) and RSI drops below 70.
-
ORDER MANAGEMENT & VALIDATION
- Trades should only activate within the designated trade zone and must not trigger if indicators signal continued momentum exhaustion.
- Pending orders should update dynamically as new highs or lows form within the trading day.
-
RISK & PROFIT MANAGEMENT
- A one-step trailing stop must be implemented to lock in profits as price moves favorably.
- Inputs for lot size, stop loss, and take profit should be customizable.
-
TIME-BASED TRADING CONTROL
- A feature must allow traders to enable or disable trading at specific times.
- The system should reset daily, ensuring it adapts to fresh market conditions.
The EA must be designed for MQL4, ensuring precision, efficiency, and adaptability to real-time market fluctuations.
BUY CONDITION
STEP 1
IF CCI <= -100 AND RSI <= 30 TO CONFIRM AN OVERSOLD CONDITION
TRACK THE LOWEST LOW PRICE OF THE DAY DYNAMICALLY USING CCI DURING VOLATILITY AND DRAW A HORIZONTAL TREND LINE WHICH MUST BE UPDATED EVERYTIME PRICE MAKES A NEW LOW.
STEP 2
IF CCI IS BETWEEN -100 AND 100 (IF (-100 <= CCI && CCI <= 100)) STOP TRACKING
IN OTHER WORDS, STOPS TRACKING ONCE CCI EXITS THE OVERBOUGHT ZONE AND DO THE FOLLOWING
- UPDATE LOW PRICE OF THE DAY
- PLACE A PENDING ORDER 40 PIPPETTE ABOVE THE LOW OF THE DAY TO BE ACTIVATED IF STEP 3 CONDITION IS MET
STEP 3
IF PRICE IS ANY VALUE BETWEEN THE LOW PRICE OF THE DAY AND 40 PIPPETTE ABOVE THE LOW OF THE DAY
AND CCI IS NOT IN OVERSOLD CONDITION, AND RSI IS NOT IN OVERSOLD CONDITION (CCI > -100 && RSI > 30)
ACTIVATE THE BUY ORDER
SELL CONDITION
STEP 1
IF CCI >= 100 AND RSI >= 70 TO CONFIRM AN OVERBOUGHT CONDITION
TRACK THE HIGHEST HIGH PRICE OF THE DAY DYNAMICALLY USING CCI DURING VOLATILITY AND DRAW A HORIZONTAL TREND LINE WHICH MUST BE UPDATED EVERYTIME PRICE MAKES A NEW HIGH.
STEP 2
IF CCI IS BETWEEN 100 AND -100 (IF (100 >= CCI && CCI >= -100)) STOP TRACKING
IN OTHER WORDS, STOP TRACKING ONCE CCI EXITS THE OVERSOLD ZONE AND DO THE FOLLOWING
- UPDATE HIGH PRICE OF THE DAY
- PLACE A PENDING ORDER 40 PIPPETTE BELOW THE HIGH OF THE DAY TO BE ACTIVATED IF STEP 3 CONDITION IS MET
STEP 3
IF PRICE IS ANY VALUE BETWEEN THE HIGH PRICE OF THE DAY AND 40 PIPPETTE BELOW THE HIGH OF THE DAY
AND CCI IS NOT IN OVERSOLD CONDITION, AND RSI IS NOT IN OVERSOLD CONDITION (CCI > -100 && RSI > 30)
ACTIVATE THE SELL ORDER
NOTE THE FOLLOWING
- TRADE MUST ONLY BE ACTIVATED WITHIN THE TRADE ZONE WHICH IS 40 PIPPETTE ABOVE THE LOW OF THE DAY
- NO TRADE MUST BE TAKEN IF RSI/CCI CONFIRMS OVERSOLD/OVERBOUGHT CONDITION
CCI MAIN FUNCTION IS TO UPDATE THE TRADE ZONE AS IT REACTS FASTER THAN RSI - THE TREND LINES MUST NOT BE INFINITE, MUST NOT EXCEED THE DAY PERIOD
- ADD INPUT OPTION TO ALLOW TRADER TUNE THE FOLLOWING
- DISABLE TRADING AT A SPECIFIED TIME. START TIME AND STOP TIME
- CHANGE TRADE ZONE VALUE (DEFAULT: 40 PIPPETTE)
- SET STOP, TP AND LOT SIZE
- ENSURE THE PROCESS LOOPS TO RE-CHECK THE INDICATORS AND ADJUST LOW/HIGH OF THE DAY BASED ON MOST RECENT MARKET CONDITIONS.
- ENSURE THE SYSTEM RE-CHECKS THE TRADE ZONE IS CONSTANTLY UPDATED FOLLOWING LOW/HIGH OF THE DAY BASED ON MOST RECENT MARKET CONDITIONS.
- ADD ONE STEP TRAILING STOP
- ORDER UPDATE: WHEN A NEW DAILY HIGH OR LOW FORMS, CANCEL ANY EXISTING LIMIT ORDER AND PLACE A NEW ONE BASED ON THE UPDATED PRICE.
- RE-ENTRY: AFTER A TRADE CLOSES, THE EA MUST WAIT FOR THE FULL SETUP SEQUENCE TO REOCCUR BEFORE OPENING A NEW POSITION.
- MAX TRADES: ONLY ONE TRADE CAN BE OPEN AT A TIME.
- TRADE ZONE: TRADES ARE RESTRICTED TO THE AREA BETWEEN THE DAILY HIGH/LOW AND 40 PIPETTES BELOW THE DAILY HIGH/LOW. ORDERS ACTIVATE ONLY IF PRICE IS WITHIN THIS RANGE AND STEP 3 CONDITIONS ARE MET.