Termos de Referência
I need the code for an EA that creates a system to estimate the strength of the resistance/support points based on 3 instances of the ZZ Swing points and their FIBO retracement levels.
See also the ZIP archive attached!!
Important note: the code needs to be very well commented, at every step, so that it is easy to follow and verify. This code is for MT4.
The code needs to be structured, creating and using functions for operating repetitive commands in order to keep the minimize the lines of code.
Phase 1:importing the ZZ points and the FIBO levels
The developer does not need to create ZZ and FIBO levels, as these are already calculated by an indicator which I already own and which I will provide to the developer.
The EA needs to use 3 instances of this indicator, which is based on ZZ Fast Indicator + FIBO retracement levels (with 3 different values of the deviation channel).
The default channel deviation levels of the 3 instances of ZZ Fast we will use will be:
Channel deviation 0.1 applied on H1 timeframe
Channel deviation 0.5 applied on H4 timeframe
Channel deviation 1.5 applied on D1 timeframe
The levels of the channel deviation will be editable from the code and the EA’s properties (so they need to be set up as input variables).
Phase 2: calculating the strength of resistance/support points which are in the proximity
The strength of the support/resistance will be calculated according to the scheme in the attached Excel spreadsheet (inside the ZIP archive). This spreadsheet provides the scores to be attributed in each type of situation.
Phase 3:establishing the perimeters of resistance/support and displaying the score based on current price
We will have 3 variables called “SurroundingPerimeterSize” (this is the prefix), one for each instance of the ZZ, that will store the distances around the points of resistance that will form the areas of resistance/support. These should be input variables, so that I can change their values in the EA’s properties.
For example:
ZZ Fast Channel depth: 0.1 Surrounding perimeter size for ZZ1: 10pips
ZZ Fast Channel depth: 0.5 Surrounding perimeter size for ZZ2: 25pips
ZZ Fast Channel depth: 1.5 Surrounding perimeter size for ZZ3: 100pips
The code will store in a variable and should display on the chart (and print in the journal) the current scores of resistance/support strength (based on the current price).
Examples:
● The score will be 0 if the current price is outside of any resistance/support perimeters.
● The score will be 5 if the current price is at less than 10 pips (see Excel) from the closest ZZ1 Point with Channel depth of 0.1.
● The score will be 12 if the current price is at less than 25 pips (see Excel) from the point where FIBO retracement of the ZZ2 with channel deviation of 0.5 (which is placed on H4) will be 38%
● The score will be 40 if the current price is at less than 40 pips (see Excel) from the point where FIBO retracement of the ZZ3 with channel deviation of 1.5 (which is placed on D1) will be 50%.
Etc.
There will be 3 scores stored in 3 separate variables:
- one for Support Score
- one for Resistance Score
- one for the net score SupportScore-ResistanceScore
These scores need to be updated on every tick when displaying on the chart and on every candle when printing in the journal (so that we don’t overload the journal).
Phase 4: calculating, storing and displaying the current distances to the nearest resistance and support points
The code should use 6 variables (3 for support and 3 for resistance) in which to calculate the distances to the nearest support and resistance points for each of the 3 instances of the ZZ. These should be input variables, so that I can change their values in the EA’s properties.
This information should be displayed on the chart and printed in the journal. For example:
“Distance to the nearest resistance on ZZ Depth 0.1 is 35 pips”
“Distance to the nearest support on ZZ Depth 0.5 is 75 pips”
“Distance to the nearest resistance on ZZ Depth 1.5 is 150 pips”
Etc.
These distances need to be updated on every tick when displaying on the chart and on every candle when printing in the journal (so that we don’t overload the journal).
See also the ZIP archive attached!!