Spread of Symbols Indicator
Info
The Spread of Symbols Indicator is a Indicator for MetaTrader 5 that this indicator calculates and displays the price difference between two trading symbols as a chart. Indicator Input Parameters:- symbol1 and symbol2: Symbols for price difference calculation and chart display.
Usage
This tool is typically used for enhancing chart analysis and decision making.
Platform
This Indicator works exclusively on MetaTrader 5 (both build 600+ and newer versions).
Setup
Place the downloaded file in MQL5/Indicators folder via File ? Open Data Folder in MetaTrader 5.
How to Install and Use Spread of Symbols Indicator
1. Installation: Place your file in the MQL/Indicators folder via "Open Data Folder" and restart your terminal.
2. Loading: Find the indicator in the Navigator, drag it onto your chart, and configure the input parameters in the popup window.
3. Customization: Press Ctrl+I to open the indicator list, select your tool, and click "Properties" to change colors, levels, or visual styles.
4. Updating: Replace the old file in the Indicators folder with the new version and restart the platform to apply changes.
Frequently Asked Questions
Q: Why is my indicator not showing? A: Verify the file is in the MQL/Indicators folder, or try right-clicking the "Indicators" tree in the Navigator and clicking "Refresh."
Q: Do custom indicators slow down the platform? A: Too many complex indicators can impact performance; remove unused ones via the "Indicator List" (Ctrl+I).
Q: Can I use MT4 indicators on MT5? A: No, MQL4 and MQL5 are distinct languages; ensure the indicator is compiled specifically for your platform version.
What this tool does
This indicator calculates and displays the price difference between two trading symbols as a chart.
Typical Use Case
This Indicator excels in automated trading and technical analysis on MetaTrader 5.
Compatible Platform & Setup
This Indicator works on MetaTrader 5. Place the file in the MQL5/Indicators folder and restart the terminal.
Description & Settings
Related: Spread Monitor: Analyze Market Spread in Real-Time - another powerful indicator for MetaTrader 5 traders.
This indicator calculates and displays the price difference between two trading symbols as a chart.Also recommended: Clock (Spread) Indicator for MT5 - similar indicator with strong performance on MetaTrader 5.
Indicator Input Parameters:
- symbol1 and symbol2: Symbols for price difference calculation and chart display. Default values are AUDUSD and NZDUSD.
- mass_of_symbol1 and mass_of_symbol2: Quantitative ratio of trading symbols. Both parameters default to 1. Set mass_of_symbol2 to -1 to calculate the sum of symbols, useful for evaluating negative correlation in pairs trading.
Image:
The image shows the AUDUSD chart at the top, the NZDUSD chart in the middle, and the Spread of Symbols indicator at the bottom.
You may also like: Spread Monitor Panel: Live Spread and Spike Alerts - excellent alternative for indicator users on MetaTrader 5.
Source Code
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots 1
#property indicator_label1 "label1"
#property indicator_type1 draw_line
#property indicator_color1 clrred
#property indicator_style1 style_solid
#property indicator_width1 1
input string symbol1="audusd";
input string symbol2="nzdusd";
input double mass_of_symbol1=1;
input double mass_of_symbol2=1;
int i,r1,r2,j;
double s,prs,k1,k2,d1,d2;
double ind1[];
int oninit()
{
setindexbuffer(0,ind1,indicator_data);
return(0);
}
int oncalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
arraysetasseries(time,true);arraysetasseries(open,true);arraysetasseries(high,true);arraysetasseries(low,true);
arraysetasseries(close,true);arraysetasseries(tick_volume,true);arraysetasseries(volume,true);arraysetasseries(spread,true);
arraysetasseries(ind1,true);
mqlrates rates1[]; arraysetasseries(rates1,true);
mqlrates rates2[]; arraysetasseries(rates2,true);
if(prev_calculated<rates_total)
{
for(i=0;i<rates_total;i++)
{
copyrates(symbol1,0,time[i],1,rates1);
copyrates(symbol2,0,time[i],1,rates2);
ind1[i]=mass_of_symbol1*rates1[0].close-mass_of_symbol2*rates2[0].close;
}
}
return(rates_total);
}
.......
⚠ Limitations & Risk Warning
- This tool is provided for educational and testing purposes only.
- Past performance does not guarantee future results.
- Trading involves substantial risk of loss. Use on a demo account first.
- Results may vary depending on market conditions, broker, and settings.
- We recommend thorough backtesting and forward testing before using with real funds.