This is a Custom Indicator Signal Generator tool for Metatrader 4 (MT4)
It contains a Scanner and an Arrows Indicator. The properties .set files are interchangeable for both.
Just make sure to set fewer Max Past Bars for scanner. To ensure it runs smoothly. And use different Unique Prefixes.
- Specify your own Custom Indicator ex4
- Specify Buffer values and create Variables
- Use those Variables to create your own Buy/Sell Conditions
- Get Arrows Up/Down Signals
- See Arrows Signals in Scanners and how many bars back Signal occurred
- Get Alerts on New Signals (Popup, Push, File or Email)
This is a complex but very useful tool. Please read the description carefully before buying.
As, I won’t be able to add any complex types of conditions or comparisons. Only bug fixes and product support will be available.
Hope you enjoy using it 🙂
What it Doesn’t Support:
- Inbuilt MT4 Indicators not supported. To use them please write your own wrapper indicator and create buffer values.
- Changing Properties of Custom Indicators. For this as well, you could create your own wrapper indicators. With changed property values inside the indicator itself.
- No complex calculations allowed in conditions. Just left and right values and comparison.
If your Custom Indicators are too heavy, they might hang the scanner or give you memory issues. So be careful and only load number of pairs/timeframes and MaxPastBars that your Metatrader app can handle.
Please try out the free Demo before buying. Demo only works for AUDUSD,EURUSD,GBPUSD pairs.
How To Use:
You can set a total of 20 Variables.
UniqueName | Indicator | Buffer | Timeframe
UniqueName: A unique name of variable which should not clash with any other name
Example don’t set one var name “RSI” and another var name “RSI_A”
In this case RSI name is not unique.
Your custom Indicator name without the .ex4 extension. In case your Custom indicator is inside a folder, then specify it with the folder name.
Example your custom Indicator is Traders_Dynamic_Index.ex4 and it’s inside TDI folder, then specify it as:
Buffer number where it should take the value from. Buffers start from 0.
Note that some indicators have hidden buffers. So, if you take Buffer Values from Data Window, and are getting incorrect values, then also verify from mq4 code.
And check SetIndexBuffer functions in Init function. And make sure Buffer numbers are correct.
Timeframe for which you need the variable value for. HTF needs to be of this format:
Get chart timeframe values from:
Only use Standard timeframes.
Here are some examples of what variables should look like in this TDI Indicator:
You can set a total of 7 Buy and 7 Sell Conditions.
If you have multiple conditions that you want to run on the same bar then set them all in same Condition text.
If you want to check conditions on different bars, then set them separately on “BuyCondition 1” and “BuyCondition 2” and so on.
Wait Bars For All Conditions: It will check all conditions to be true within given number of bars
Is Condition Check Sequential: If true, then it will check all conditions sequentially.
“BuyCondition 1” first. Then “BuyCondition 2” and so on.
Only simple conditions are allowed. No complex math calculations. Only Comparison conditions available.
What each Conditions means:
- Equal: RSI = 30
- Not equal: RSI != 30
- More than or “More than or Equal”
- x > 10 means x is more than 10
- x >= 10 means x is more than or equal to 10
- Less than or “Less than or Equal”
- x < 10 means x is less than 10
- x <= 10 means x is less than or equal to 10
- Value crosses Up and Down: RSI >< 70 means RSI crossed above 70 in previous bar and is now below 70 in current bar
- Value crosses Down and Up: RSI <> 30 means RSI crossed below 30 in previous bar and is now above 30 in current bar
You can also use these:
PRICE_OPEN: Means Open price for that bar.
PRICE_CLOSE: Close price for that bar.
PRICE_HIGH: High for that bar.
PRICE_LOW: Low for that bar.
EMPTY_VALUE: If a value is not set for a buffer. Then it’s empty. Empty value is integer: 2147483647
Delimeter(&): Means AND
Condition1 & Condition2
means check if Condition1 is true AND then check if Condition2 is true
Delimiter (|): Means OR
Condition1 | Condition2
means check Condition1 is true OR check if Condition2 is true
Max Sequential Conditions allowed in a single Condition are 3. Anything more and Indicator won’t load.
Buy Condition1: RSI<>32 | RSI <> VB_DOWN
Buy Condition2: RSI < MBL & RSI < TSL
Means check for RSI goes below 32 in previous bar and above it in current bar OR RSI goes below the lower Volatility Band and above it.
If either of these conditions is true then the whole Buy Condition 1 is true.
Next check if RSI (green line) is less than MBL (red line). This Buy Condition2 should become true within “Wait Bars” number of bars.
If sequential check is true, then Condition1 should become true before Condition2.
This shows when all conditions meet:
Max 3 Conditions:
E.g.: If you have RSI < MBL & RSI < TSL & TSL < MBL
But if you have RSI < MBL & RSI < TSL & TSL < MBL & TSL < VB_DOWN
Then indicator won’t load.
You can keep Max Spread. In case you want to ignore signals if spread is too high. 0 means no check.
- Popup Alerts by default is true.
- Push Notification
- Files (or Custom File name)
This will show you all possible set conditions in a corner on your chart like this:
Debug Messages and Arrows:
Show Values in Journal: To see variable values in your Experts tab logs.
Show Debug Text: Shows Debug Text messages on chart as to which conditions were met on which bar. e.g.: B1 for BuyCondition1. S1 for Sell Condition1 and so on.
Debug Detailed: Shows bar number as well along with debug message
Read about common scanner settings here:
Most scanner settings are same as Arrows settings. And .set files for both are interchangeable. Make sure to use Unique different prefixes for both.
And fewer Max Past bars for scanner.
Info Panel is on Right-Upper Corner by default:
Refresh Number of Ticks (0 means off):
Refresh Scanner every number of ticks. If 0, it means scanner will refresh every new bar based on the chart timeframe on which it is loaded.
Shift: In case you are using Shift 0 and need to refresh dash at specific intervals, then use this value.
For Shift 1 and above, keep Refresh Ticks to 0. As it’s not needed as indicators value will only change on new bar anyway.
Scanner shows which conditions have matched and which still remain.
If Buy Condition matched, it will turn green.
If Sell Condition matched, it will turn red.
Yellow means condition unmatched and still waiting.
Box highlight color will match the last arrow it had received. Regardless of which signal check is currently ongoing.
MaxPastBars: Scanner will search for MaxPastBars number of bars. And show an Arrow and how many bars back the arrow occurred in brackets.
PastBars_BackAlerts: In case an arrow had occurred scanner will show an alert within these bars. Set it to 1 if you only want last closed bar signal alerts.
If you want even older alerts, set it to your preferred number.
Recalculate Past Bars: If you are using any repainting custom indicators which need to be recalculated every few bars, then set this. Else leave it to 0.
Best Customizer Strategies:
Darvas Boxes Strategy:
Customizer Sample Wrappers:
v1.0 Base Version
v1.1 Redesign. Added 7 Conditions options
v1.2 Added Info about Conditions
– Recalculate past bars
v1.3 Added Show Values In Journal Option
v1.4 – Changed AND Conditions to use & operator
– Added support for 3 sequential conditions in a single Buy/Sell Condition