Price Data Components
Indicators Used
0
Views
0
Downloads
0
Favorites
Bid_View2.0M
//+------------------------------------------------------------------+
//| BID_VIEW-2.0.mq4 |
//| Copyright © 2008, "OTCFX" |
//| Revision 2.0 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008 OTCFX"
#property indicator_separate_window
extern bool Bid_Colors = True;
extern string FontType=" Sans MS";
extern color ColorHeading = Gainsboro ;
extern int TimeFrame = 1440;
extern color ColorValue = CadetBlue ;
extern int Trend_Bars = 10;
extern bool show.Trend = false ;
extern bool show.CTrend = true ;
extern int price.x.offset= 40;
extern int price.y.offset= 10;
color ColorPrice = CadetBlue;
extern int myArrowSize = 15 ;
int MAP =1;
int Spread;
int Local_Time;
string labelNames;
string shortName;
int corner;
int totalLabels;
int window;
int nDigits;
int pZX;
int PTL;
int EROS;
int EROB;
double O_P;
double O_P1;
double O_P2;
int F_Offset=0;
string Arrow12 = "é"; // 12 oclock 225
string Arrow12_2 = "ñ"; // 12 oclock
string Arrow6 = "ê"; // 6 oclock 226
string Arrow6_2 = "ò"; // 6 oclock
extern color N_color = Lime;
extern color S_color = Red;
double xREV;
double xREV1;
int BidDir, R77Dir;
string PriceDir;
string PriceDir1;
color CloseColor ;
color CloseColor1 ;
int NormalSpread, NormalStopLevel;
color fColor( double i)
{
color rColor ;
if ( i == 1 ) rColor = N_color ; else {
//if ( i >= 4 ) rColor = NE_color ; else {
//if ( i == 3 ) rColor = E_color ; else {
if ( i == 0 ) rColor = S_color ; else {
rColor = S_color ; } }
return ( rColor );
}
int fDirection( double i, double j)
{
int rColor ;
if ( i > j ) rColor = 1;
else {
if ( i < j ) rColor = 0;
else rColor = 0; }
return ( rColor );
}
string fCompass( double i )
{
string rCompass ;
if ( i == 1 ) rCompass = Arrow12 ; else {
if ( i == 0 ) rCompass = Arrow6 ; else {
rCompass = Arrow6 ; } }
return ( rCompass );
}
/////////////////////////////>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.....#2
color tColor( double i)
{
color tColor ;
if ( i == 1 ) tColor = N_color ; else {
if ( i == 0 ) tColor = S_color ; else {
tColor = S_color ; } }
return ( tColor );
}
int gDirection( double i, double j)
{
int tColor ;
if ( i > j ) tColor = 1;
else {
if ( i < j ) tColor = 0;
else tColor = 0; }
return ( tColor );
}
string gCompass( double i )
{
string gCompass ;
if ( i == 1 ) gCompass = Arrow12 ; else {
if ( i == 0 ) gCompass = Arrow6 ; else {
gCompass = Arrow6 ; } }
return ( gCompass );
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
corner = 0;
shortName = MakeUniqueName("MT ","");
labelNames = shortName;
IndicatorShortName(shortName);
NormalSpread=MarketInfo(Symbol(),MODE_SPREAD);
NormalStopLevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
start();
string S = Symbol();
if(S=="ER2" ||S=="FESX" || S=="FTSE" || S=="FDAX") nDigits = 1;
if(S=="GBPJPY" ||S=="EURJPY" || S=="USDJPY" || S=="GOLD" || S=="AUDJPY"||S=="FGBL"||
S=="NZDJPY"|| S=="CADJPY" ||S== "CHFJPY" || S=="BRN" ||S=="WTI" || S=="NQ" || S=="ES"|| S=="XAU") nDigits = 2;
if(S=="GBPUSD" || S=="EURUSD" ||S=="NZDUSD" || S=="USDCHF" ||
S=="USDCAD" ||S=="AUDUSD" || S=="EURUSD" ||S=="EURCHF" || S=="EURGBP"
|| S=="EURCAD" ||S=="EURAUD" || S=="AUDNZD"|| S== "GBPCHF"|| S=="EURAUD"||
S=="GBPAUD"|| S== "AUDCAD" || S=="AUDCHF"|| S=="NZDCHF"|| S=="NZDCAD" ||S=="NZDCHF"||
S=="EURNZD"|| S=="CADCHF"|| S=="EURCAD"|| S=="USDNOK"|| S=="USDDKK") nDigits = 4;
int result;
if (TimeFrame == 0)
result = Period();
else
{
switch(TimeFrame)
{
case 1 : result = PERIOD_M1; break;
case 5 : result = PERIOD_M5; break;
case 15 : result = PERIOD_M15; break;
case 30 : result = PERIOD_M30; break;
case 60 : result = PERIOD_H1; break;
case 240 : result = PERIOD_H4; break;
case 1440 : result = PERIOD_D1; break;
case 7200 : result = PERIOD_W1; break;
case 28800: result = PERIOD_MN1; break;
default : result = Period(); break;
}
}
return(result);
}
int deinit()
{
while (totalLabels>0) { ObjectDelete(StringConcatenate(labelNames,totalLabels)); totalLabels--;}
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
window = WindowFind(shortName);
ObjectsDeleteAll( window, 21);
ObjectsDeleteAll( window, 22);
ObjectsDeleteAll( window, 23);
int i=0;
int R77=0,CD=0,AM=0,Mval=0;
double CC7,CC2,CC3,CC4,CC5,CC6;
double HY1,HY2,HZ1,HZ2,SC1;
double C7_7,C2_2,C3_3,C4_4,C5_5,C6_6;
double HD,DL,BTX1,BTX1_1,BTX2,BTX2_2,BTX3,BTX3_3,BTX4,BTX4_4,BTX5,BTX5_5;
double BTX6,BTX6_6,BTX7,BTX7_7,BTX8,BTX8_8,BTX9,BTX9_9,BTX10,BTX10_10,DC,DO;
double PercentUp,Perc,Per;
double R77T,R77T1, R77T2;
string FX_T="Verdana Bold";
string T= TimeFrame;
if (TimeFrame==0) TimeFrame=Period();
int yPos = 24, xPos = 10;
int xSpacer = 140;
string SpacerText1 = "__________________________";
string SpacerText2 = "__________________________________________________________________________________________________________";
if(F_Offset>0) F_Offset=0;
if(Trend_Bars>15) Trend_Bars=15;
if(price.y.offset<10) price.y.offset=10;
if(price.y.offset>20) price.y.offset=20;
if(price.x.offset<0) price.x.offset=0;
if(myArrowSize>15) myArrowSize=13;
if ( show.Trend == true) show.CTrend = false ;
string S = Symbol();
if( S=="ES"|| S=="WTI" || S=="XAU" || S=="GOLD") {EROS=11;}else {EROS=14;}
if( S=="ES"||S=="WTI"||S=="XAU"||S=="GOLD") {EROB=11;}else {EROB=11;}
if(S=="ER2" ||S=="FESX" || S=="FTSE" || S=="FDAX") {pZX =1000000 ;}
if(S=="GBPJPY" ||S=="EURJPY" || S=="USDJPY" || S=="GOLD"|| S=="AUDJPY"||S=="FGBL"||
S=="NZDJPY"|| S=="CADJPY" ||S== "CHFJPY" || S=="BRN" ||S=="WTI" || S=="NQ" || S=="ES"||
S=="XAU"||S=="XAG") {pZX = 100000;}
if(S=="GBPUSD" || S=="EURUSD" ||S=="NZDUSD" || S=="USDCHF" ||
S=="USDCAD" ||S=="AUDUSD" || S=="EURUSD" ||S=="EURCHF" || S=="EURGBP"
|| S=="EURCAD" ||S=="EURAUD" || S=="AUDNZD"|| S== "GBPCHF"|| S=="EURAUD"||
S=="GBPAUD"|| S== "AUDCAD" || S=="AUDCHF"|| S=="NZDCHF"|| S=="NZDCAD" ||S=="NZDCHF"||
S=="EURNZD"|| S=="CADCHF"|| S=="EURCAD"|| S=="USDNOK"|| S=="USDDKK"){pZX = 1000;}
CC2 =iClose(NULL,PERIOD_M5,0);
C2_2= iOpen(NULL,PERIOD_M5,0);
CC3 =iClose(NULL,PERIOD_M15,0);
C3_3= iOpen(NULL,PERIOD_M15,0);
CC4 =iClose(NULL,PERIOD_M30,0);
C4_4= iOpen(NULL,PERIOD_M30,0);
CC5 =iClose(NULL,PERIOD_H1,0);
C5_5= iOpen(NULL,PERIOD_H1,0);
CC6 =iClose(NULL,PERIOD_H4,0);
C6_6= iOpen(NULL,PERIOD_H4,0);
CC7 =iClose(NULL,PERIOD_D1,0);
C7_7= iOpen(NULL,PERIOD_D1,0);
R77 =(iClose(NULL,PERIOD_D1,0)-iOpen(NULL,PERIOD_D1,0))/Point;
if(R77<-99) {Mval=242;}else {Mval=246;}
DO = iOpen(NULL,PERIOD_D1,0);
DC =iClose(NULL,PERIOD_D1,0);
HD = iHigh(NULL,PERIOD_D1,0);
DL = iLow(NULL,PERIOD_D1,0);
//open0 = iOpen(NULL,PERIOD_D1,0);
PercentUp = ((R77)/(DC))/100;
Per = PercentUp*pZX;
Perc = Per/1000;
RefreshRates();
int ActualSpread=(Ask-Bid)/Point;
int ActualStopLevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
if (ActualSpread>NormalSpread) {SC1=2;}else {SC1=0; }
color ColorCH7044;
if(SC1 >1 ) { ColorCH7044 =Red ;} else { ColorCH7044 =ColorHeading;}
Spread=NormalizeDouble((Ask-Bid)/Point,0);
if(Spread<0) Spread=0;
R77 =(iClose(NULL,PERIOD_D1,0)-iOpen(NULL,PERIOD_D1,0))/Point;
if(R77<-99) {Mval=242;}else {Mval=246;}
if (Bid_Colors == True)
{
if (Close[i] > O_P) ColorPrice = DodgerBlue;
if(Close[i] > O_P ) {HY1=2;}
if (Close[i] < O_P) ColorPrice = Silver;
if(Close[i] < O_P) {HY2=0;}
O_P = Close[i];
}
color ColorCT709;
if( Close[i] < O_P2 ) { ColorCT709 =Red;}
O_P2 = Close[i];
if(Close[i] < O_P2 ) //{BP1=False;}
color ColorCT708;
if( Close[i] > O_P1 ) { ColorCT708 =Lime;}
string Market_Price = DoubleToStr(Close[i], Digits);
color ColorCH704 ;
if(R77 >= 0 ) { ColorCH704 =LimeGreen ; }
if(R77 >= 0 ) {HZ1=2;}
color ColorCH705 ;
if(R77 < 0 ) { ColorCH705 =Silver ; }else { ColorCH705 =ColorValue ; }
if(R77 >= 0 ) {HZ2=0;}
BidDir = fDirection( HY1,HY2 ) ;
R77Dir = gDirection( HZ1,HZ2) ;
xREV = BidDir ;
xREV1 = R77Dir ;
CloseColor = fColor( xREV ) ;
CloseColor1 = tColor( xREV1 ) ;
PriceDir = fCompass( xREV ) ;
PriceDir1 = gCompass( xREV1 ) ;
setObject(next(),PriceDir,69+price.x.offset, 8+price.y.offset,CloseColor ,"Wingdings",myArrowSize+F_Offset,0);
//setObject(next(),"^",129+price.x.offset, 32+price.y.offset,ColorCT709 ,"Arial Bold",20+F_Offset,180);
setObject(next(),PriceDir1,167+price.x.offset, 8+price.y.offset,CloseColor1 ,"Wingdings",myArrowSize+F_Offset,0);
//setObject(next(),"^",240+price.x.offset, 32+price.y.offset,ColorCH705 ,"Arial Bold",18+F_Offset,180);
setObject(next(),Market_Price ,87+price.x.offset, 5+price.y.offset,ColorPrice ,FX_T,EROS+F_Offset); //price(last)
setObject(next(),StringSubstr(Symbol(),0), 4+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,9+F_Offset);
setObject(next(),DoubleToStr(DO ,Digits),295+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,EROB+F_Offset);
setObject(next(),DoubleToStr(HD ,Digits),360+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,EROB+F_Offset);
setObject(next(),DoubleToStr(DL ,Digits),425+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,EROB+F_Offset);
setObject(next(),DoubleToStr(R77 ,0), 195+price.x.offset, 5+price.y.offset,ColorCH705 ,FX_T,EROB+F_Offset);
// setObject(next(),DoubleToStr(R77 ,0),Mval+price.x.offset, 5+price.y.offset,ColorCH705 ,FX_T,EROB+F_Offset);
// setObject(next(),DoubleToStr(R77T2 ,nDigits),247+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,13+F_Offset);
setObject(next(),TimeToStr(CurTime(),TIME_SECONDS),620+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,9+F_Offset);
setObject(next(),TimeToStr(LocalTime(),TIME_MINUTES),710+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,9+F_Offset);
setObject(next(),DoubleToStr(Spread ,Digits-3),780+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,9+F_Offset);
setObject(next(),DoubleToStr(Perc ,nDigits),230+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,9+F_Offset);
setObject(next(),"Name",18+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);
setObject(next(),"Last",87+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);
setObject(next(),"Change",177+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);
setObject(next(),"%CH",240+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);
setObject(next(),"Open",308+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);
setObject(next(),"High",364+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);
setObject(next(),"Low",430+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);
setObject(next(),"BidTime",625+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);
setObject(next(),"LocalTime",700+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);
setObject(next(),"Spread",770+price.x.offset, -10+price.y.offset,ColorCH7044 ,FX_T,8+F_Offset);
if(show.Trend){
setObject(next(),"1",600+price.x.offset, -10+price.y.offset,ColorHeading ,"Verdana",8+F_Offset);
setObject(next(),DoubleToStr(Trend_Bars ,0),490+price.x.offset, -10+price.y.offset,ColorHeading ,"Verdana",8+F_Offset);
setObject(next(),"Trend",560+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);
setObject(next(),StringSubstr((T),0),510+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);}
setObject(next(),SpacerText1, 50+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText1,149+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText1,210+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText1,275+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText1,340+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText1,405+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText1,470+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText1,600+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText1,680+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText1,750+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText1,800+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText1,-15+price.x.offset, 30+price.y.offset,SlateGray ,FX_T,10+F_Offset,90);
setObject(next(),SpacerText2,0+price.x.offset, -5+price.y.offset, SlateGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,170+price.x.offset, -5+price.y.offset,SlateGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,420+price.x.offset, -5+price.y.offset,SlateGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,437+price.x.offset, -5+price.y.offset,SlateGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,437+price.x.offset, 21+price.y.offset,SlateGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,320+price.x.offset, 21+price.y.offset,SlateGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,40+price.x.offset, 21+price.y.offset,SlateGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText1,0+price.x.offset, 21+price.y.offset,SlateGray ,FX_T,6+F_Offset);
color ColorCX105 ;
if(CC2 >= C2_2 ) { ColorCX105 =LimeGreen ; }else { ColorCX105 =Red ; }
color ColorCX106 ;
if(CC3 >= C3_3 ) { ColorCX106 =LimeGreen ; }else { ColorCX106 =Red ; }
color ColorCX107 ;
if(CC4 >= C4_4 ) { ColorCX107 =LimeGreen ; }else { ColorCX107 =Red ; }
color ColorCX108 ;
if(CC5 >= C5_5 ) { ColorCX108 =LimeGreen ; }else { ColorCX108 =Red ; }
color ColorCX109 ;
if(CC6 >= C6_6 ) { ColorCX109 =LimeGreen ; }else { ColorCX109 =Red ; }
color ColorCX110 ;
if(CC7 >= C7_7 ) { ColorCX110 =LimeGreen ; }else { ColorCX110 =Red ; }
if(show.CTrend){
setObject(next(),"-",475+price.x.offset, 24+price.y.offset,ColorCX105 ,FX_T,30+F_Offset,90);
setObject(next(),"-",495+price.x.offset, 24+price.y.offset,ColorCX106 ,FX_T,30+F_Offset,90);
setObject(next(),"-",515+price.x.offset, 24+price.y.offset,ColorCX107 ,FX_T,30+F_Offset,90);
setObject(next(),"-",535+price.x.offset, 24+price.y.offset,ColorCX108 ,FX_T,30+F_Offset,90);
setObject(next(),"-",555+price.x.offset, 24+price.y.offset,ColorCX109 ,FX_T,30+F_Offset,90);
setObject(next(),"-",575+price.x.offset, 24+price.y.offset,ColorCX110 ,FX_T,30+F_Offset,90);
setObject(next(),"5",490+price.x.offset, 13+price.y.offset,ColorValue ,"Verdana",6+F_Offset);
setObject(next(),"15",508+price.x.offset, 13+price.y.offset,ColorValue ,"Verdana",6+F_Offset);
setObject(next(),"30",528+price.x.offset, 13+price.y.offset,ColorValue ,"Verdana",6+F_Offset);
setObject(next(),"60",548+price.x.offset, 13+price.y.offset,ColorValue ,"Verdana",6+F_Offset);
setObject(next(),"H4",568+price.x.offset, 13+price.y.offset,ColorValue ,"Verdana",6+F_Offset);
setObject(next(),"D1",588+price.x.offset, 13+price.y.offset, ColorValue ,"Verdana",6+F_Offset);
setObject(next(),"Candle Color",510+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,8+F_Offset);}
color LabelColor;
int SpX = 495, SpX2=7;
for(i=Trend_Bars; i>=0; i--)
{
BTX1 =iMA(S, TimeFrame,MAP,0,1,1,i);
BTX1_1 =iMA(S, TimeFrame,MAP,0,0,0,i);
LabelColor =Red;
if(BTX1_1 > BTX1) LabelColor =Lime;
SpX = SpX+ SpX2;
if(show.Trend){
setObject(next(),"-",SpX+price.x.offset, 21+price.y.offset,LabelColor ,FX_T,20,90);}
}
return(0);
}
string next() { totalLabels++; return(totalLabels); }
string MakeUniqueName(string first, string rest)
{
string result = first+(MathRand()%1001)+rest;
while (WindowFind(result)> 0)
result = first+(MathRand()%1001)+rest;
return(result);
}
void setObject(string name,string text,int x,int y,color theColor, string font = "Arial",int size=8,int angle=0)
{
string labelName = StringConcatenate(labelNames,name);
if (ObjectFind(labelName) == -1)
{
ObjectCreate(labelName,OBJ_LABEL,window,0,0);
ObjectSet(labelName,OBJPROP_CORNER,corner);
if (angle != 0)
ObjectSet(labelName,OBJPROP_ANGLE,angle);
}
ObjectSet(labelName,OBJPROP_XDISTANCE,x);
ObjectSet(labelName,OBJPROP_YDISTANCE,y);
ObjectSetText(labelName,text,size,font,theColor);
//}
//---- done
return(0);
}
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
---