Refresh 28 Charts Expert Advisor For MT4
WE IMPROVED THIS EXPERT ADVISOR FOR YOU!!!
PLEASE NOTE: This expert advisor was publicly available for free usage on other websites and is not programmed by us. We explain the functionality and possible improvements of the EA. Furthermore, we are convinced that fully automatic Expert Advisors will fail in the long run. On the other hand, our semi-automatic approach with detecting the best setups and then activating our Expert Advisors (e.g. V-Power EA, EdgeZone EA) produced many successful traders and some of them even got prop traders at prop trading firms. Therefore, we added a similar semi-automatic trading feature (to allow only buy or only sell trades) to the free Expert Advisors. You can download the modified version here and enjoy!
Table Of Contents:
- Refresh 28 Charts Expert Advisor For MT4
- The Refresh 28 Charts Expert Advisor For MT4 – Entry Criteria
- The Refresh 28 Charts Expert Advisor For MT4 – Exit Criteria
- The Refresh 28 Charts Expert Advisor For MT4 – Room for Improvement
The Refresh 28 Charts Expert Advisor is a simple program that opens the 28 foreign exchange major pairs on the MetaTrader4 client terminal and updates them on a regular basis. This program can be used by traders running expert advisors that are designed to trade multiple symbols but applied only in one chart. With the 28 symbols open in the terminal, their data are updated in real time and can be easily extracted without errors by any trading system.
As shown in the image above, the moment the expert advisor is dropped on a chart, a big rectangular button in gold is shown on the upper-left part of the main chart containing the text “Rates will be updated in 15 minutes.” The number of minutes is the value of the variable available in Inputs. Putting such an apparent display on the chart will make users aware of the existence of this expert advisor.
The Refresh 28 Charts Expert Advisor For MT4 – Entry Criteria
The creator of the Refresh 28 Charts Expert Advisor specified the symbol names of the 28 major pairs in the code so that they can be opened with ease the first time the robot is applied on the chart. While opening each chart, the expert advisor stores the handle or chart ID of each one in an array to be used later when updating and closing charts. When all the charts are opened, a big text is displayed to inform users that the expert advisor is working and should not be interrupted.
The user can only see and work with one variable in expert settings (i.e., RefreshTime). By the name itself, this variable is the time interval for each update of data in series arrays and predefined variables. Its default value is 15, meaning 15 minutes. Therefore, data is updated in every 15 minutes, which most users might consider practically sufficient. Updating the data more often will subject the expert advisor and the client terminal into so much pressure and might affect the operation of other expert advisors running on the same trading account. Also, there is no need to update the data more frequently.
As an expert advisor, the program does not immediately run the timer function after running the initialization function. This is one of the differences between a script, indicator and expert advisor. For a script every command is carried out in one go, while for an indicator, the start function is run right away after the initialization phase even if there is no incoming tick. For an expert advisor, the program runs the initialization function and waits for a new tick to come in before executing the start function.
The expert advisor under discussion goes a little further. Because of the timer function, the program waits for 15 minutes before executing the main function, and this time period is not equal to the 15-minute time duration when candles or bars form on the 15-minute chart. The timer keeps on counting time even if no tick is received. This expert advisor did not run the start function at all. If someone wants to match the updating of data with the timing of candle development on the 15-minute chart or any other period, the timer function must be forgone and timing will be monitored in the start function.
When the timer begins its iteration, it changes the text in the display to “RUNNING. DO NOT DISTURB.” This is to warn users not to disturb the client terminal or the active chart where the robot is attached while the timer operation is working. This is because the program loops through each of the 28 major pairs and opens each of the nine symbols one at a time (1 minute, 5 minutes, 15 minutes, 30 minutes, 1 hour, 4 hours, daily, weekly and monthly).
When checking each timeframe, the program sleeps for 500 milliseconds (or half a minute) before moving on to the next timeframe. Because there are 28 pairs and 9 periods, it takes at least 126 seconds or 2.1 minutes to complete this operation. It is best not to disturb the robot or the terminal at any point in this process so that the terminal or the robot does not hang up. When the operation is complete, the text displayed changes to “NOT RUNNING. RATES UPDATED.” From this point, the robot is not busy and is not using memory or computer resources so the user can safely work on the client terminal.
The Refresh 28 Charts Expert Advisor For MT4 – Exit Criteria
The Refresh 28 Charts Expert Advisor performs certain actions when the user attempts to remove the program from the chart. These actions are carried out just before the robot is completely terminated. What the program does is it deletes the buttons displayed on the chart, kills the timer, and closes the 28 charts opened at the beginning. This is to avoid the necessity of manually closing the 28 charts which can be laborious and time-consuming on the part of the user. The expert advisor also performs this action when the current chart to which it is attached is being closed manually by the user.
The Refresh 28 Charts Expert Advisor For MT4 – Room for Improvement
The Refresh 28 Charts Expert Advisor is a cool little program that carries out its functions seamlessly. However, there is still a room for improvement. One noticeable issue occurs when the user changes the timeframe on the chart where the robot is attached. Doing so would rerun the initialization function, resulting in closing and reopening of the 28 major pairs, which can be annoying and time-wasting. The code must be revisited to resolve this issue. If possible, code is added or modified to remove the possibility of changing timeframes. It might be difficult to do but workable. Many advanced scalping systems are doing this.
One major change that can be done not to make the operation of the expert advisor better but to improve the performance of the computer and the client terminal is to convert the expert advisor into a custom indicator. An indicator can also perform all the functions currently fulfilled by this expert advisor without any issues. This is definitely possible because this expert advisor does not perform trade operations, such as sending trade requests, modifying orders, deleting pending orders and closing open trades. Plus, indicators are known to be lighter than expert advisors in terms of memory use. This conversion is really easy to do and will not take so much time.
If the user wants, the program can be set to play a sound or two when it performs its main function of navigating to each symbol and timeframe to update the data on each chart. The purpose is to alert the user that the expert advisor is doing its role even if the user is away or not looking at the chart. Some users might find this feature interesting, but others might find it annoying.
If possible, a countdown must be displayed alongside the button or inside the button to show the user how much time is left before the expert advisor cycles through the symbols and timeframes again. This is not only pleasing to the eyes, but is also useful information. Additionally, the program editor might consider changing the background color of the button when the program is not working and when it is not. For example, when the program is running, the background color should be red, and when it is idle, the background color should be green.