Price Data Components
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
USDindex
//+------------------------------------------------------------------+
//| ProjectName |
//| Copyright 2018, CompanyName |
//| http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright "V.Temchenko Skype:vasily.temchenko"
#property link "Mailto:tvp.prog.96@gmail.com"
#property version "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 clrOrange
#property indicator_color2 clrLime
//=================================
input int maPeriod =12;
input string Symbol_1 ="EURUSD";
input double Weight_1 =0.576;
input string Symbol_2 ="USDJPY";
input double Weight_2 =0.136;
input string Symbol_3 ="GBPUSD";
input double Weight_3 =0.119;
input string Symbol_4 ="USDCAD";
input double Weight_4 =0.091;
input string Symbol_5 ="USDSEK";
input double Weight_5 =0.042;
input string Symbol_6 ="USDCHF";
input double Weight_6 =0.036;
input string s="=======================";
input string Symbol_7 ="";
input double Weight_7 =0.001;
input string Symbol_8 ="";
input double Weight_8 =0.001;
input string Symbol_9 ="";
input double Weight_9 =0.001;
input string Symbol_10 ="";
input double Weight_10 =0.001;
input string Symbol_11 ="";
input double Weight_11 =0.001;
input string Symbol_12 ="";
input double Weight_12 =0.001;
//-----------------------------
double Buffer1[];
double Buffer2[];
//-----------
double w1=Weight_1,w2=Weight_2,w3=Weight_3,w4=Weight_4,w5=Weight_5,w6=Weight_6, w7=Weight_7,w8=Weight_8,w9=Weight_9,w10=Weight_10,w11=Weight_11,w12=Weight_12;
double price_1,price_2,price_3,price_4,price_5,price_6, price_7,price_8,price_9,price_10,price_11,price_12;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
IndicatorBuffers(2);
SetIndexBuffer(0,Buffer1);
SetIndexStyle(0,DRAW_HISTOGRAM,0,1);
SetIndexBuffer(1,Buffer2);
SetIndexStyle(1,DRAW_LINE,0,1);
/*
double p;
p=MarketInfo(Symbol_1,MODE_POINT); p=MarketInfo(Symbol_2,MODE_POINT); p=MarketInfo(Symbol_3,MODE_POINT); USDCZK
p=MarketInfo(Symbol_4,MODE_POINT); p=MarketInfo(Symbol_5,MODE_POINT); p=MarketInfo(Symbol_6,MODE_POINT);
p=MarketInfo(Symbol_7,MODE_POINT); p=MarketInfo(Symbol_8,MODE_POINT); p=MarketInfo(Symbol_9,MODE_POINT);
p=MarketInfo(Symbol_10,MODE_POINT); p=MarketInfo(Symbol_11,MODE_POINT); p=MarketInfo(Symbol_12,MODE_POINT);
*/
if(Symbol_1 !="")
if(iOpen(Symbol_1,0,1)<=0)
Print("Error: "+Symbol_1+" - incorrect symbols name or symbol unavailable");
if(Symbol_2 !="")
if(iOpen(Symbol_2,0,1)<=0)
Print("Error: "+Symbol_2+" - incorrect symbols name or symbol unavailable");
if(Symbol_3 !="")
if(iOpen(Symbol_3,0,1)<=0)
Print("Error: "+Symbol_3+" - incorrect symbols name or symbol unavailable");
if(Symbol_4 !="")
if(iOpen(Symbol_4,0,1)<=0)
Print("Error: "+Symbol_4+" - incorrect symbols name or symbol unavailable");
if(Symbol_5 !="")
if(iOpen(Symbol_5,0,1)<=0)
Print("Error: "+Symbol_5+" - incorrect symbols name or symbol unavailable");
if(Symbol_6 !="")
if(iOpen(Symbol_6,0,1)<=0)
Print("Error: "+Symbol_6+" - incorrect symbols name or symbol unavailable");
if(Symbol_7 !="")
if(iOpen(Symbol_7,0,1)<=0)
Print("Error: "+Symbol_7+" - incorrect symbols name or symbol unavailable");
if(Symbol_8 !="")
if(iOpen(Symbol_8,0,1)<=0)
Print("Error: "+Symbol_8+" - incorrect symbols name or symbol unavailable");
if(Symbol_9 !="")
if(iOpen(Symbol_9,0,1)<=0)
Print("Error: "+Symbol_9+" - incorrect symbols name or symbol unavailable");
if(Symbol_10 !="")
if(iOpen(Symbol_10,0,1)<=0)
Print("Error: "+Symbol_10+" - incorrect symbols name or symbol unavailable");
if(Symbol_11 !="")
if(iOpen(Symbol_11,0,1)<=0)
Print("Error: "+Symbol_11+" - incorrect symbols name or symbol unavailable");
if(Symbol_12 !="")
if(iOpen(Symbol_12,0,1)<=0)
Print("Error: "+Symbol_12+" - incorrect symbols name or symbol unavailable");
//---------
int N;
N=StringFind(Symbol_1,"USD",0);
if(N>0)
w1= -w1;
N=StringFind(Symbol_2,"USD",0);
if(N>0)
w2= -w2;
N=StringFind(Symbol_3,"USD",0);
if(N>0)
w3= -w3;
N=StringFind(Symbol_4,"USD",0);
if(N>0)
w4= -w4;
N=StringFind(Symbol_5,"USD",0);
if(N>0)
w5= -w5;
N=StringFind(Symbol_6,"USD",0);
if(N>0)
w6= -w6;
N=StringFind(Symbol_7,"USD",0);
if(N>0)
w7= -w7;
N=StringFind(Symbol_8,"USD",0);
if(N>0)
w8= -w8;
N=StringFind(Symbol_9,"USD",0);
if(N>0)
w9= -w9;
N=StringFind(Symbol_10,"USD",0);
if(N>0)
w10= -w10;
N=StringFind(Symbol_11,"USD",0);
if(N>0)
w11= -w11;
N=StringFind(Symbol_12,"USD",0);
if(N>0)
w12= -w12;
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
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[])
{
//---
if(rates_total<maPeriod-1 || maPeriod<2)
return(0);
if(prev_calculated==0)
{
ArrayInitialize(Buffer1,0);
ArrayInitialize(Buffer2,0);
} //--
int counted_bars = IndicatorCounted();
int i=0, limit=0;
if(prev_calculated==0)
limit=Bars-1;
if(prev_calculated> 0)
limit=prev_calculated-1; // limit=Bars-counted_bars;
//---------------
for(i = limit; i >= 0; i--)
{
if(Symbol_1 !="")
price_1=iOpen(Symbol_1,0,i);
if(Symbol_2 !="")
price_2=iOpen(Symbol_2,0,i);
if(Symbol_3 !="")
price_3=iOpen(Symbol_3,0,i);
if(Symbol_4 !="")
price_4=iOpen(Symbol_4,0,i);
if(Symbol_5 !="")
price_5=iOpen(Symbol_5,0,i);
if(Symbol_6 !="")
price_6=iOpen(Symbol_6,0,i);
if(Symbol_7 !="")
price_1=iOpen(Symbol_7,0,i);
if(Symbol_8 !="")
price_2=iOpen(Symbol_8,0,i);
if(Symbol_9 !="")
price_3=iOpen(Symbol_9,0,i);
if(Symbol_10 !="")
price_4=iOpen(Symbol_10,0,i);
if(Symbol_11 !="")
price_5=iOpen(Symbol_11,0,i);
if(Symbol_12 !="")
price_6=iOpen(Symbol_12,0,i);
//----------- w1=1;
if(price_1 <= 0)
price_1=1;
if(price_2 <= 0)
price_2=1;
if(price_3 <= 0)
price_3=1;
if(price_4 <= 0)
price_4=1;
if(price_5 <= 0)
price_5=1;
if(price_6 <= 0)
price_6=1;
if(price_7 <= 0)
price_7=1;
if(price_8 <= 0)
price_8=1;
if(price_9 <= 0)
price_9=1;
if(price_10 <= 0)
price_10=1;
if(price_11 <= 0)
price_11=1;
if(price_12 <= 0)
price_12=1;
//-----------
double USDx=50.14348112 *
MathPow(price_1, w1) *
MathPow(price_2, w2) *
MathPow(price_3, w3) *
MathPow(price_4, w4) *
MathPow(price_5, w5) *
MathPow(price_6, w6) *
MathPow(price_7, w7) *
MathPow(price_8, w8) *
MathPow(price_9, w9) *
MathPow(price_10, w10)*
MathPow(price_11, w11)*
MathPow(price_12, w12);
Buffer1[i] = USDx;
} //-- for
for(i = limit; i >= 0; i--)
{
double r = iMAOnArray(Buffer1,0,maPeriod,0,MODE_SMA,i) ;
Buffer2[i]=r;
} //--
//--- return value of prev_calculated for next call
return(rates_total);
} //-- OnCalculate
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---