Welcome back, fellow traders! Today, I’m excited to introduce you to the SymbolSynthesizer for MetaTrader 4. It’s based on the same concept as the Triangle Hedge (Symbol Synthesizer for MT5), but it’s specifically designed for chart display in MT4.
This nifty tool synthesizes any symbol as long as you have the source symbols in your Market Watch window. It then generates a real-time offline chart similar to the Period_Converter_Opt.mq4.
So, if you're familiar with the Period Converter, you're already halfway there! Let’s get into the nitty-gritty details.
Parameter Settings Overview
Here are the key differences in parameter settings:
- Spread:
extern int spread = 0;
This setting represents the spread in points for the attached chart symbol (sSym01). A value of 0 means it’ll use the current spread.
Since MetaTrader 4 doesn’t store historical spread data, we need this to accurately determine the Ask price when calculating virtual prices.
- Digits for Synthesized Symbol:
extern int vDigits = 5;
This parameter sets the digits for the synthesized symbol and replaces the OmitDigit from the Period Converter.
- Synthesized Symbol Name:
extern string vSymbol = "EURUSD_v";
This is the name you want for your generated symbol. Feel free to get creative, but keep it under 11 characters!
- Source Symbol #1:
string sSym01 = "EURGBP";// (Not external variable)
This is your first source symbol, which is automatically set from the attached chart symbol. Make sure to attach this tool to the correct symbol chart to avoid the dreaded "Insufficient Data Error" when using daily data.
- Source Symbol #2:
extern string sSym02 = "GBPUSD";
Your second source symbol. Ensure it matches exactly with what’s in the Market Watch, including any prefixes or suffixes.
- Synthesis Calculation:
extern string sCal = "M";
This defines how to synthesize the symbols. "M" stands for Multiply, while "D" means Divide. If you can calculate the virtual price of vSymbol by multiplying sSym01 and sSym02, go with "M".
For example:
- vSymbol="EURUSD", sSym01="EURGBP", sSym02="GBPUSD"
- vSymbol="EURJPY", sSym01="EURGBP", sSym02="GBPJPY"
- vSymbol="BTCJPY", sSym01="BTCUSD", sSym02="USDJPY"
Keep in mind that sSym01 and sSym02 can be swapped when multiplying, but the first symbol should be more actively traded.
If sSym02 divided by sSym01 gives you the virtual price of vSymbol, you’d choose "D" for your calculation.
For instance:
- vSymbol="USDJPY", sSym01="EURUSD", sSym02="EURJPY"
- vSymbol="ZARJPY", sSym01="USDZAR", sSym02="USDJPY"
Note that with division, you cannot switch sSym01 and sSym02.

Related Posts
- How to Use the Change Chart Symbol Menu for MetaTrader 4
- Unlocking MetaCOT 2: Your Ultimate CFTC Indicator Toolkit for MT4
- Unlocking the Power of Master Tools for MetaTrader 4
- Unlock Trading Insights with Volume Profile + Range v6.0 for MetaTrader 5
- Mastering the FE Fibonacci Expansion Indicator for MetaTrader 4