Complex pairs Indicator For MT4
Table Of Contents:
- Complex pairs Indicator For MT4
- Installing the Complex pairs Indicator For MT4
- Parameters of the Complex pairs Indicator For MT4
- Buffers of the Complex pairs Indicator For MT4
- Main Parts Of The Code
The Complex pairs Indicator For MT4 selects each currency from a currency pair, and then measures its performance in relative units (points).
Installing the Complex pairs Indicator For MT4
After you downloaded the indicator via the form above you need to unzip the zip-file. Then you need to copy the file Complex_pairs.mq4 into the folder MQL4\Indicators of your MT4 installation. After that please restart MT4 and then you will be able to see the indicator in the list of indicators.
Parameters of the Complex pairs Indicator For MT4
The Complex pairs Indicator For MT4 has 0 parameters to configure.
Buffers of the Complex pairs Indicator For MT4
The Complex pairs Indicator For MT4 provides 1 buffers.
SetIndexBuffer(0,pair);
Main Parts Of The Code
int start() { int limit; int counted_bars=IndicatorCounted(); double OPEN,HIGH,LOW,CLOSE; //---- ïðîâåðêà íà âîçìîæíûå îøèáêè if(counted_bars lt 0) return(-1); //---- ïîñëåäíèé ïîñ÷èòàííûé áàð áóäåò ïåðåñ÷èòàí if(counted_bars gt 0) counted_bars-=10; limit=Bars-counted_bars; //---- îñíîâíîé öèêë int Price=6; int Mode=3; int per1,per2; switch(Period()) { case 1: per1=m1_per; per2=m1_fast; break; case 5: per1=m5_per; per2=m5_fast; break; case 15: per1=m15_per;per2=m15_fast; break; case 30: per1=m30_per;per2=m30_fast; break; case 60: per1=h1_per; per2=h1_fast; break; case 240: per1=h4_per; per2=h4_fast; break; case 1440: per1=d_per; per2=d_fast; break; case 10080: per1=w_per; per2=w_fast; break; case 43200: per1=mn_per; per2=mn_fast; break; } for(int i=0; i lt limit; i++) { if (Symbol()=="EURUSD") { OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2); HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2); LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2); CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2); } if (Symbol()=="EURGBP") { OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-GBP(Mode,PRICE_OPEN,i,per1,per2); HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-GBP(Mode,PRICE_HIGH,i,per1,per2); LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-GBP(Mode,PRICE_LOW,i,per1,per2); CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-GBP(Mode,PRICE_CLOSE,i,per1,per2); } if (Symbol()=="EURCHF") { OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-CHF(Mode,PRICE_OPEN,i,per1,per2); HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-CHF(Mode,PRICE_HIGH,i,per1,per2); LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-CHF(Mode,PRICE_LOW,i,per1,per2); CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-CHF(Mode,PRICE_CLOSE,i,per1,per2); } if (Symbol()=="EURJPY") { OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-JPY(Mode,PRICE_OPEN,i,per1,per2); HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-JPY(Mode,PRICE_HIGH,i,per1,per2); LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-JPY(Mode,PRICE_LOW,i,per1,per2); CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-JPY(Mode,PRICE_CLOSE,i,per1,per2); } if (Symbol()=="GBPUSD") { OPEN=GBP(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2); HIGH=GBP(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2); LOW=GBP(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2); CLOSE=GBP(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2); } if (Symbol()=="GBPCHF") { OPEN=GBP(Mode,PRICE_OPEN,i,per1,per2)-CHF(Mode,PRICE_OPEN,i,per1,per2); HIGH=GBP(Mode,PRICE_HIGH,i,per1,per2)-CHF(Mode,PRICE_HIGH,i,per1,per2); LOW=GBP(Mode,PRICE_LOW,i,per1,per2)-CHF(Mode,PRICE_LOW,i,per1,per2); CLOSE=GBP(Mode,PRICE_CLOSE,i,per1,per2)-CHF(Mode,PRICE_CLOSE,i,per1,per2); } if (Symbol()=="GBPJPY") { OPEN=GBP(Mode,PRICE_OPEN,i,per1,per2)-JPY(Mode,PRICE_OPEN,i,per1,per2); HIGH=GBP(Mode,PRICE_HIGH,i,per1,per2)-JPY(Mode,PRICE_HIGH,i,per1,per2); LOW=GBP(Mode,PRICE_LOW,i,per1,per2)-JPY(Mode,PRICE_LOW,i,per1,per2); CLOSE=GBP(Mode,PRICE_CLOSE,i,per1,per2)-JPY(Mode,PRICE_CLOSE,i,per1,per2); } if (Symbol()=="USDCHF") { OPEN=USD(Mode,PRICE_OPEN,i,per1,per2)-CHF(Mode,PRICE_OPEN,i,per1,per2); HIGH=USD(Mode,PRICE_HIGH,i,per1,per2)-CHF(Mode,PRICE_HIGH,i,per1,per2); LOW=USD(Mode,PRICE_LOW,i,per1,per2)-CHF(Mode,PRICE_LOW,i,per1,per2); CLOSE=USD(Mode,PRICE_CLOSE,i,per1,per2)-CHF(Mode,PRICE_CLOSE,i,per1,per2); } if (Symbol()=="USDJPY") { OPEN=USD(Mode,PRICE_OPEN,i,per1,per2)-JPY(Mode,PRICE_OPEN,i,per1,per2); HIGH=USD(Mode,PRICE_HIGH,i,per1,per2)-JPY(Mode,PRICE_HIGH,i,per1,per2); LOW=USD(Mode,PRICE_LOW,i,per1,per2)-JPY(Mode,PRICE_LOW,i,per1,per2); CLOSE=USD(Mode,PRICE_CLOSE,i,per1,per2)-JPY(Mode,PRICE_CLOSE,i,per1,per2); } if (Symbol()=="CHFJPY") { OPEN=CHF(Mode,PRICE_OPEN,i,per1,per2)-JPY(Mode,PRICE_OPEN,i,per1,per2); HIGH=CHF(Mode,PRICE_HIGH,i,per1,per2)-JPY(Mode,PRICE_HIGH,i,per1,per2); LOW=CHF(Mode,PRICE_LOW,i,per1,per2)-JPY(Mode,PRICE_LOW,i,per1,per2); CLOSE=CHF(Mode,PRICE_CLOSE,i,per1,per2)-JPY(Mode,PRICE_CLOSE,i,per1,per2); } pair[i]=(OPEN+HIGH+LOW+CLOSE)/4; } //---- return(0); } //+------------------------------------------------------------------+ double USD(int Mode, int Price, int i, int per1, int per2) { return( (iMA("EURUSD",0,per1,0,Mode,Price,i)- iMA("EURUSD",0,per2,0,Mode,Price,i))*10000 + (iMA("GBPUSD",0,per1,0,Mode,Price,i)- iMA("GBPUSD",0,per2,0,Mode,Price,i))*10000 + (iMA("USDCHF",0,per2,0,Mode,Price,i)- iMA("USDCHF",0,per1,0,Mode,Price,i))*10000 + (iMA("USDJPY",0,per2,0,Mode,Price,i)- iMA("USDJPY",0,per1,0,Mode,Price,i))*100 ); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double EUR(int Mode, int Price, int i, int per1, int per2) { return( (iMA("EURUSD",0,per2,0,Mode,Price,i)- iMA("EURUSD",0,per1,0,Mode,Price,i))*10000 + (iMA("EURGBP",0,per2,0,Mode,Price,i)- iMA("EURGBP",0,per1,0,Mode,Price,i))*10000 + (iMA("EURCHF",0,per2,0,Mode,Price,i)- iMA("EURCHF",0,per1,0,Mode,Price,i))*10000 + (iMA("EURJPY",0,per2,0,Mode,Price,i)- iMA("EURJPY",0,per1,0,Mode,Price,i))*100 ); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double GBP(int Mode, int Price, int i, int per1, int per2) { return( (iMA("GBPUSD",0,per2,0,Mode,Price,i)- iMA("GBPUSD",0,per1,0,Mode,Price,i))*10000 + (iMA("EURGBP",0,per1,0,Mode,Price,i)- iMA("EURGBP",0,per2,0,Mode,Price,i))*10000 + (iMA("GBPCHF",0,per2,0,Mode,Price,i)- iMA("GBPCHF",0,per1,0,Mode,Price,i))*10000 + (iMA("GBPJPY",0,per2,0,Mode,Price,i)- iMA("GBPJPY",0,per1,0,Mode,Price,i))*100 ); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double CHF(int Mode, int Price, int i, int per1, int per2) { return( (iMA("USDCHF",0,per1,0,Mode,Price,i)- iMA("USDCHF",0,per2,0,Mode,Price,i))*10000 + (iMA("EURCHF",0,per1,0,Mode,Price,i)- iMA("EURCHF",0,per2,0,Mode,Price,i))*10000 + (iMA("GBPCHF",0,per1,0,Mode,Price,i)- iMA("GBPCHF",0,per2,0,Mode,Price,i))*10000 + (iMA("CHFJPY",0,per2,0,Mode,Price,i)- iMA("CHFJPY",0,per1,0,Mode,Price,i))*100 ); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double JPY(int Mode, int Price, int i, int per1, int per2) { return( (iMA("USDJPY",0,per1,0,Mode,Price,i)- iMA("USDJPY",0,per2,0,Mode,Price,i))*100 + (iMA("EURJPY",0,per1,0,Mode,Price,i)- iMA("EURJPY",0,per2,0,Mode,Price,i))*100 + (iMA("GBPJPY",0,per1,0,Mode,Price,i)- iMA("GBPJPY",0,per2,0,Mode,Price,i))*100 + (iMA("CHFJPY",0,per1,0,Mode,Price,i)- iMA("CHFJPY",0,per2,0,Mode,Price,i))*100 ); } //+------------------------------------------------------------------+