指定
EA_MT5_CTF_SS2_v1
An EA to generate MT5 Custom Timeframes,
Handle Robust Data Downloading,
and Write SS2 Global Variables Every X Seconds.
Hi Raymond,
The MT5 version of the SS2 indicator you converted is in the folder. This indicator currently works on all of the 21 native included MT5 timeframes.
As the result of this Job, I would please like you to create an EA capable of doing the following things:
1) Create 28 CustomTimeframes based on the settings in the EA User Interface.
2) Check that enough bar data exists to correctly run the SS2 data and attempt to download it if not enough data exists in local memory.
3) Write SS2 global variable values for each of the 28 currency pairs.
4) Update these SS2 values every X seconds, where X is a number of seconds set in the user interface.
1) Create 28 CustomTimeframes based on the settings in the EA User Interface.
When this indicator is placed on a chart I would like it to automatically create 28 new custom time frames based on the information in the BaseTimeFrame: and the TimeFrameMulti: inputs in the EA user interface section.
BaseTimeFrame: DropDownBox -> SelectOne
01M
02M
03M
04M
05M
06M
10M
12M
15M
30M
01H
02H
03H
04H
06H
08H
12H
01D
01W
MN1 is not an option here.
TimeFrameMulti: This field takes an Integer between 1 and 99
A number above 99 generates a pop up box saying: Only integers < 99
Lets suppose the user is interested in creating a 45 Min timeframe.
They select 15M with a multiplier of 3.
The indicator takes these two inputs and Prints
"Attempting to create 28 00045 timeframes."
Where the number with three leading zeros and a 45 represents a 45 Min timeframe.
As a second example:
A Week is 10080 Min, so selecting a Week TimeFrame with a multiplier of 2 would produce a statement like this:
"Attempting to create 28 20160 timeframes."
2) Check that enough bar data exists to correctly run
the SS2 data and attempt to download it if not enough data exists in local memory.
Please check that enough data is available in each of the 28 custom time frames to accurately create the SS2 values for each of the 28 currencies. If not enough data is available, the indicator should attempt to get more data from the server and gracefully report success or failure of the downloading attempt.
If enough data is available to produce the SS2 values, the EA should next print:
"Enough data exists to accurately create all 28 SS2 values."
If not enough bar data exists in local memory to accurately create all 28 SS2 values, then the EA should print:
"Not enough data exists to accurately create all 28 SS2 values, attempting to download more data..."
Depending on the result of the download attempt the EA should print one of two statements:
"The additional data request was successful, enough data now exists to create all of the 28 requested SS2 values."
Or:
"The additional data request was unsuccessful, please choose another custom time frame."
Assuming that there is enough data to create the SS2 data on the requested custom time frame, the EA should now generate 28 custom time frames with the custom time frames employing a naming convention that looks like this:
XXXXXX00045
Where XXXXXX stands in for each of the 28 currency pairs that the SS2 indicator deals with by default, for example:
GBPUSD00045
EURUSD00045
+ 26 more custom symbols would all be created in order to set up the 45 Min custom time frame in such a way that it can be accurately used by the SS2 indicator.
3) Write SS2 global variable values for each of the 28 currency pairs.
The SS2 indicator is CPU intensive. Therefore, we would only like to employ a single instance of the indicator for every instance of this EA. For example, for the 00045 min timeframe, the EA should seek a version of the MT5 SS2 indicator (included in the job folder) with the following title:
OMOLG_MT5_SS2_00045
Then, depending on the result of attempting to find the indicator with this specific title in the indicator list , the EA should write:
The indicator OMOLG_MT5_SS2_00045 was successfully found.
Or
Please create a version of the MT5 SS2 indicator with the title OMOLG_MT5_SS2_00045.
The next task of this EA is to write 56 global variables that are titled like this:
gbl_SS2_1_USDCHF00045 (Fixed SS2 Value for Bar 1)
gbl_SS2_0_USDCHF00045 (Currently Updating SS2 Value for Bar 0)
gbl_ -> Indicates that this is a global variable of the terminal
(a positive or negative double value with two digits after the decimal)
SS2_ -> This indicates that the values are the slope values coming from the SS2 indicator
1_ or 0_ -> This indicates that the value is coming from the zero (presently forming) candle or else from the fixed-value 1 candle.
USDCHF-> This indicates one of the 28 currency pairs output by this indicator
00045 -> This five digit number indicates the number of Min that the SS2 slope value is associated with. For example, 00045 would represent the slope of the 45Min timeframe.
4) Update these SS2 values every X seconds,
where X is a number of seconds set in the user interface.
Finally, please include a SecondDelay: section in the user interface that takes an Int indicating the number of seconds that should pass before these 56 custom time frame SS2 values are updated.
SecondDelay: 63
Would mean that the EA updates all 56 global variables every 63 seconds.
After the EA has created all of the 28 custom timeframes, it should create the gbl_ values without first waiting for 63 seconds to pass. In other words, the EA should write these gbl_ values as soon as possible after the timeframes are created, and then every X seconds after that, where X is the integer in the SecondDelay input field.