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.
Features:
- Specify your own Custom Indicators or MT4 In-Built indicators which have an 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:
- Indicators which don’t provide buffer values are not supported.
- Changing Properties of Custom Indicators. You can change properties directly in mq4. Or, 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.
Be Careful:
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.
Free Demo:
Please try out the free Demo before buying. Demo only works for AUDUSD,EURUSD,GBPUSD pairs.
Free Scanner:
Video Tutorial
How To Use:
Set Variables:
You can set a total of 20 Variables.
Format:
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.
Indicator:
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:
TDI/Traders_Dynamic_Index
Buffer:
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:
Timeframe for which you need the variable value for. HTF needs to be of this format.
Default is current timeframe if this is left blank and nothing is specified.
Get chart timeframe values from:
https://docs.mql4.com/constants/chartconstants/enum_timeframes
Only use Standard timeframes.
Here are some examples of what variables should look like in this TDI Indicator:
Shift:
Find values for the buffer for this bar number. Suppose Shift is 0, it will check current bar which is still ongoing.
Default is Shift 1 if nothing is specified. And left blank.
Set Conditions:
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
Predefined Variables:
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
Separators:
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.
Examples:
Variable1:
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
It’s fine.
But if you have RSI < MBL & RSI < TSL & TSL < MBL & TSL < VB_DOWN
Then indicator won’t load.
Other Settings:
You can keep Max Spread. In case you want to ignore signals if spread is too high. 0 means no check.
Alerts:
- Popup Alerts by default is true.
- Push Notification
- Files (or Custom File name)
Info:
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
Scanner:
Read about common scanner settings here:
https://abiroid.com/indicators/abiroid-scanner-dashboard-common-settings
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.
Highlight Open Orders: Based on Buy/Sell or based on Profit/Loss
No highlight. Or HightLight Buy (green) / Sell (red). Or HighLight Profit (green) / Loss (red)
Best Customizer Strategies:
Darvas Boxes Strategy:
Customizer Sample Wrappers:
https://abiroid.com/indicators/customizer-sample-wrappers
Changelog:
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
v1.5 Highlight Open Orders: Added option to Highlight based on Buy/Sell or based on Profit/Loss
No highlight. Or HightLight Buy (green) / Sell (red). Or HighLight Profit (green) / Loss (red)
v1.6 Added a Shift option in variable string
This is a for sure one of the greatest product ever. And thank you for make it free for us.
I have one question about the Timeframe of “Var = UniqueName | Indicator | Buffer | Timeframe”
Is it possible to write for example “+1” for next mt4 standard higher TF, “+2” for over next, and so on?.
So we can call like iCustoms function a not-multi-timeframe indicator in higher timeframe.
For example with “+1” and setting “M5,M15,M30,H1”. I can call an indicator in TF “M15,M30,H1,H4”
I’m glad you like it 🙂
About Timeframes, I’m afraid it’s not possible. Only Timeframe values are supported. Like 1 or 5 or 15 etc.
I don’t want to make the settings and conditions too complex 🙂
Any complex calculations can be done in wrapper indicators.
In wrapper, you could get the current timeframe, and find next higher timeframe and get values in buffers using iCustom.
I have added a sample wrapper here:
https://abiroid.com/indicators/customizer-sample-wrappers
It uses MA as an example. But you can use any indicator using iCustom.
Email me if you need help modifying the wrapper.
Thank you Abir.
A further question: can user combine more than 2 conditions in the “Conditions”? For example “(RIS > 80 , CCI > 50) | (TMASlope >0.3 | HMASlope >0.3)”, like common programming language?
Hi,
Yes, you can combine max 3 conditions.
And I have replaced comma by & to make things more clearer.
So, use & for AND and | for OR
If you are combining AND, OR conditions, then it will check it just like in programming languages:
A & B & C
means all should be true
A & B | C
means A and B true or else C true
So basically it will check like
(A & B) | C
A | B & C will be:
A or B true and C true:
(A | B) & C
Combining AND OR will be confusing, so be careful with that.
If you have multiple conditions, try to keep things as simple as possible.
I would recommend combining only OR conditions, and use AND conditions in separate lines.
So what you sent could be like:
Buy Condition1:
RSI > 80 | TMASLope > 0.3 | HMASlope > 0.3
Buy Condition 2:
CCI > 50
Since you need RSI and CCI both mandatory.
And Slope checks as OR conditions.
Thanks Abir.
i have one question. Does it support condition like price cross indicator. for example price cross MA , and how to write this condition.
thanks for your support!
Hi,
It actually does not support in-built indicators. Only Custom Indicators.
You can check out the section: “What it Doesn’t Support”
So, for in-built indicators, you can write a wrapper indicator. Where if price crosses MA, it will give a value in a buffer.
Here are some wrapper examples:
https://abiroid.com/indicators/customizer-sample-wrappers
Here is a price cross MA indicator:
https://www.mql5.com/en/forum/185284
It has cross up in buffer 0 and cross down in buffer 1.
So, variables will be like:
var1:
UpArr | price_ma_cross_alert | 0
var2:
DnArr | price_ma_cross_alert | 1
And, Buy/Sell conditions would be like:
Buy1:
UpArr != EMPTY_VALUE
Sell1:
DnArr != EMPTY_VALUE
price_ma_cross_alert.mq4 isn’t my indicator.
I haven’t really studied it’s code. But just used it as an example 🙂
Hope it gives you a starting point.
thanks!
Hello how i can set up on conditionals, negative numbers?
Hi,
Yes. It’s possible. I replied to your email. And sent you a demo version which should have full features till end of this month.
For example you sent, no need for brackets. Just check:
ex1 = -1
ex1 = 1
Hi
I’m using arrow Based indicator (Half Trend), Does it Work Based on arrow ?
Can i Get Demo For Abiroid Customizer Arrows and Scanner ?
Hi,
Sure. I emailed you a demo version with full features for 2 weeks. Yes, you can use any indicator which has buffer values. It will use those values for comparisons in conditions.