I’ve replaced the ComparisonBasis parameter with ColorAndSymbolOverrides.
The latter overrides the symbols specified in PlotTheseCurrencies, and the colors in PlotTheseImpacts, as follows:
You can specify up to 50 entries, separated by commas. Each entry must be of the form
[criteria]=[value]
Tests may change either the Wingdings symbol code or the symbol color, and are performed from left to right across the parameter text. If two or more tests turn out to be true, a later result overrides a previous result. The examples below should clarify this.
[criteria] determines the test that will be applied, and may be any one of the following:
>F : actual value is greater than the forecast value
<F : actual value is less than the forecast value
>P : actual value is greater than the previous value
<P : actual value is less than the previous value
>R : actual value is greater than the ‘revised from’ value (if there is no ‘revised from’ value, then the previous value is used)
<R : actual value is less than the ‘revised from’ value (if there is no ‘revised from’ value, then the previous value is used)
! (exclamation point) : it is an ‘unvalued’ news event (i.e. there are no values in any of the actual, forecast, previous and ‘revised from’ fields)
(anything else) : is assumed to be text in the news description field (case insensitive). If the text exists anywhere within the description, the test criteria passes as true; if not, it is false.
[value] determines the action that will be taken, if the test criteria passes as true.
--- If [value] is simply a number, then the symbol itself will be changed (overridden) by the Wingdings symbol that corresponds to [value], which should be greater than 32 and less than 255 (Wingdings symbol table here).
--- If [value] is a valid MT4 color token (e.g. Orange, LimeGreen, SaddleBrown, DarkSlateGray etc) or an RedGreenBlue color combo, e.g. R75G33B211, then the symbol's color will be changed accordingly.
If you want to override both the symbol type, and its color, include the same [criteria] in two different tests, e.g.
>F=225,>F=DodgerBlue
In the case of [criteria] being any one of >F, <F, >P, <P, >R or <R, these apply only if the news currency is one of the two currencies applicable to the current MT4 chart. If applicable to the second named currency, the > or < is effectively reversed. For example, if the current chart is AUDUSD and ColorAndSymbolOverrides is set to
>F=225,<F=226
THEN:
--- if actual>forecast for an AUD-based news event, Wingdings character 225 (up-arrow) will be plotted
--- if actual<forecast for an AUD-based news event, Wingdings character 226 (down-arrow) will be plotted
BUT
--- if actual<forecast for a USD-based news event, Wingdings character 225 (up-arrow) will be plotted
--- if actual>forecast for a USD-based news event, Wingdings character 226 (down-arrow) will be plotted
i.e. an actual>forecast situation is assumed to be good for the first currency in the pair, and bad for the second; and vice versa for actual<forecast. For some news events (e.g. unemployment), the opposite may be true, but the indicator is not intelligent enough to understand this, hence you’ll need to hover the mouse cursor near the top of the symbol to see the description of the event, and form your own opinion.
If the news event applies to a currency other than either of those in the chart pair (e.g. a CHF-based event on a AUDJPY chart), then the [criteria] test will return false, and the symbol/color override will not be applied.
Example: the ColorAndSymbolOverrides setting
>F=225,<F=226,day=DimGray,speak=DarkGreen,meeting=DarkGreen
will do the following:
#1. The actual vs forecast tests will be applied, and the symbol changed to 225 (up-arrow) or 226 (down-arrow), exactly as described above.
#2. If the text ‘day’ occurs anywhere in the news description (e.g. [All day], holiday, daylight saving etc), the symbol color will be changed to DimGray.
#3. If the text ‘speak’ or ‘meeting’ appears anywhere in the news description, the symbol color will be changed to DarkGreen.
If (for example) both tests #2 and #3 were true, then the symbol color would be changed to DarkGreen, because the last entered test/action takes precedence over any previous test/action. In other words, the last symbol type and color in any test that returns true, will be applied.
If none of the tests pass as true, then the symbols in PlotTheseCurrencies, and the colors in PlotTheseImpacts, will be applied, i.e. the way that the indicator worked previously.
INSTALLATION
--- Download the .ex4 file to your ....(MT4)/experts/indicators folder.
--- Download the .txt file to your ....(MT4)/experts/files folder.
--- Then exit and restart MT4.
[NOTE: this indicator is of no use to anybody who doesn't already have FFcal.EXE v3.23 (which is needed to download the news items from FF calendar).
If you don't have this, please don't ask; I won't be replying to any messages]
Attached File(s)
1