//+------------------------------------------------------------------+
//| VR---EURUSD.mq4 |
//| Copyright 2013, MetaQuotes Software Corp. |
//| http://www.trading-go.ru" |
//+------------------------------------------------------------------+
#property copyright "trading-go."
#property link "http://www.trading-go.ru"
extern color COLOR_RECTANGLE = Black ;
extern color COLOR_UP = Green ;
extern color COLOR_DW = Red ;
extern int Masshtab = 3 ;
extern int MasshtabAll = 40 ;
#property indicator_chart_window
int start()
{
//========================================================================================//
// Ðàñ÷åò ñòàðòîâûõ êîîðäèíàò äëÿ îñíîâíîãî áîêñà
//========================================================================================//
int cor1=iTime(Symbol(),0,WindowFirstVisibleBar()-3);
int cor2=iTime(Symbol(),0,WindowFirstVisibleBar()-72);
double cor11 = WindowPriceMax()-((WindowPriceMax()-WindowPriceMin())/100);
double cor22 = cor11-((WindowPriceMax()-WindowPriceMin())/100);
double ras = (WindowPriceMax()-WindowPriceMin())/100*MasshtabAll;
//========================================================================================//
// Îòðèñîâêà îñíîâíîãî áîêñà è åãî ìîäèôèêàöèÿ
//========================================================================================//
ObjectCreate("Rec",OBJ_RECTANGLE,0,cor1,cor11,cor2,cor22);
ObjectSet ("Rec",OBJPROP_PRICE1,ObjectGet ("Rec",OBJPROP_PRICE2)-ras );
ObjectSet ("Rec",OBJPROP_BACK,false);
ObjectSet ("Rec",OBJPROP_COLOR,COLOR_RECTANGLE);
ObjectSet ("Rec",OBJPROP_WIDTH,2);
//========================================================================================//
// Ìîäèôèêàöèÿ îñíîâíîãî ïðè èçìåíåíèè ïîëîæåíèÿ íà ãðàôèêå ïî âðåìåíè
//========================================================================================//
int bi1=iBarShift(Symbol(),0,ObjectGet ("Rec",OBJPROP_TIME1));
int bi2=iBarShift(Symbol(),0,ObjectGet ("Rec",OBJPROP_TIME2));
if (bi1-bi2!=69)
ObjectSet ("Rec",OBJPROP_TIME2,iTime(Symbol(),0,bi1-69));
//========================================================================================//
// Çàïðîñ êîîðäèíàò îñíîâíîãî áîêñà
//========================================================================================//
double d.cor1=ObjectGet ("Rec",OBJPROP_PRICE1);
double d.cor2=ObjectGet ("Rec",OBJPROP_PRICE2);
int i.tim1=ObjectGet ("Rec",OBJPROP_TIME1);
int i.tim2=ObjectGet ("Rec",OBJPROP_TIME2);
//========================================================================================//
// Ìîäèôèêàöèÿ îñíîâíîãî ïðè èçìåíåíèè ïîëîæåíèÿ íà ãðàôèêå ïî öåíå
//========================================================================================//
if (cor1>i.tim1)
{
ObjectSet ("Rec",OBJPROP_TIME1,cor1);
ObjectSet ("Rec",OBJPROP_TIME2,cor2);
}
//========================================================================================//
// îòðèñîâêà öåíòðàäüíîé ëèíèè
//========================================================================================//
ObjectCreate("Line",OBJ_TREND,0,0,0 );
ObjectSet ("Line",OBJPROP_PRICE1,d.cor2+(d.cor1-d.cor2)/2 );
ObjectSet ("Line",OBJPROP_PRICE2,d.cor2+(d.cor1-d.cor2)/2 );
ObjectSet ("Line",OBJPROP_TIME1,i.tim1+60*60*2 );
ObjectSet ("Line",OBJPROP_TIME2,i.tim2-60*60*2 );
ObjectSet ("Line",OBJPROP_COLOR,COLOR_RECTANGLE );
ObjectSet ("Line",OBJPROP_RAY,false );
ObjectSet ("Line",OBJPROP_WIDTH,2 );
//========================================================================================//
//Çàïðîñ êîîðäèíàò öåíòðàëüíîé ëèíèè
//========================================================================================//
double l.pl = ObjectGet("Line",OBJPROP_PRICE1);
double l.pr = ObjectGet("Line",OBJPROP_PRICE2);
int l.tl = ObjectGet("Line",OBJPROP_TIME1);
int l.tr = ObjectGet("Line",OBJPROP_TIME2);
//========================================================================================//
//Îòðèñîâêà áîêñîâ ãèñòîãðàììû âàëþò
//========================================================================================//
int l.b=iBarShift(Symbol(),0,l.tl);
int o = 0 ;
for(int i=0;i<=10;i++)
{
if (i==0)
o=5;
else
o+=6;
int l.b3=iTime(Symbol(),0,l.b-o+5);
int l.b4=iTime(Symbol(),0,l.b-o);
ObjectCreate("Rec"+i,OBJ_RECTANGLE,0,0,0,0,0 );
ObjectSet ("Rec"+i,OBJPROP_PRICE1,l.pl );
ObjectSet ("Rec"+i,OBJPROP_TIME1,l.b3 );
ObjectSet ("Rec"+i,OBJPROP_TIME2,l.b4 );
ObjectSet ("Rec"+i,OBJPROP_BACK,true );
ObjectSet ("Rec"+i,OBJPROP_WIDTH,2 );
}
//========================================================================================//
//Îòðèñîâêà èìåíè îñíîâíîé âàëþòû
//========================================================================================//
ObjectCreate ("Name1",OBJ_TEXT,0,0,0,0,0 );
ObjectSet ("Name1",OBJPROP_PRICE1,d.cor2+0.0020 );
ObjectSet ("Name1",OBJPROP_TIME1 ,iTime(Symbol(),0,bi1-(bi1-bi2)/2) );
ObjectSetText("Name1", " EUR ", 20, "Times New Roman", COLOR_RECTANGLE);
//========================================================================================//
//Îòðèñîâêà èìåí âàëþò è èõ ïðîöåíòîâ
//========================================================================================//
for(int x=0;x<=10;x++)
{
string dd ="EUR"+ val2(x);
double pp = (d.cor2-d.cor1)*rez(dd)/Masshtab;
ObjectSet ("Rec"+x,OBJPROP_PRICE2,NormalizeDouble(l.pl+pp,Digits) );
int t = ObjectGet("Rec"+x,OBJPROP_TIME1)+60*60*3 ;
ObjectCreate ("tet"+x,OBJ_TEXT,0,0,0,0,0 );
ObjectSet ("tet"+x,OBJPROP_PRICE1,d.cor2 );
ObjectSet ("tet"+x,OBJPROP_TIME1,t );
ObjectCreate ("teta"+x,OBJ_TEXT,0,0,0,0,0 );
ObjectSet ("teta"+x,OBJPROP_PRICE1,d.cor2-0.0008);
ObjectSet ("teta"+x,OBJPROP_TIME1,t );
//========================================================================================//
//Èçìåíåíèå öâåòîâ òåêñòîâ
//========================================================================================//
if (rez(dd)>0)
{
ObjectSet ("Rec"+x,OBJPROP_COLOR,COLOR_UP );
ObjectSetText("tet"+x, val2(x), 8, "Times New Roman", COLOR_UP);
ObjectSetText("teta"+x, " "+DoubleToStr(rez(dd),2)+" ", 8, "Times New Roman", COLOR_UP);
}
else
{
ObjectSet ("Rec"+x,OBJPROP_COLOR,COLOR_DW );
ObjectSetText("tet"+x, val2(x), 8, "Times New Roman", COLOR_DW);
ObjectSetText("teta"+x, " "+DoubleToStr(rez(dd),2)+" ", 8, "Times New Roman", COLOR_DW);
}
}
}
//========================================================================================//
//Ñïèñîê âàëþò
//========================================================================================//
string val2(int num)
{
string txt;
switch(num)
{
case 0: txt="USD"; break;
case 1: txt="CAD"; break;
case 2: txt="GBP"; break;
case 3: txt="NOK"; break;
case 4: txt="DKK"; break;
case 5: txt="SEK"; break;
case 6: txt="CHF"; break;
case 7: txt="AUD"; break;
case 8: txt="JPY"; break;
case 9: txt="NZD"; break;
case 10: txt="SGD"; break;
}
return(txt);
}
//========================================================================================//
//Óäàëåíèå âñåõ îáüåêòîâ
//========================================================================================//
int deinit()
{
ObjectDelete("Rec");
for(int i=0;i<=10;i++)
{
ObjectDelete("Rec"+i);
ObjectDelete("tet"+i);
ObjectDelete("teta"+i);
}
}
//========================================================================================//
//Ðàñ÷åò ïðîöåíòîâ
//========================================================================================//
double rez (string sys)
{
double price=iOpen(sys,1440,0);
double cena =(MarketInfo(sys,MODE_ASK)+MarketInfo(sys,MODE_BID))/2;
double itog =cena*100/price-100;
return(itog);
}
Comments