Price Data Components
Indicators Used
1
Views
0
Downloads
0
Favorites
#Bid_View1.5
//+------------------------------------------------------------------+
//| BID_VIEW.mq4 |
//| Copyright © 2008, "OTCFX" |
//| Revision 1.6 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008 OTCFX"
#property indicator_separate_window
extern bool Bid_Colors = True;
extern string FontType=" Sans MS";
extern color ColorHeading = Gainsboro ;
extern color ColorValue = CadetBlue ;
extern int TimeFrame = 1440;
extern int Trend_Bars = 10;
extern bool show.Trend = true ;
extern int price.x.offset= 50;
extern int price.y.offset= 10;
color ColorPrice = CadetBlue;
int MAP =1;
int Spread;
int Local_Time;
string labelNames;
string shortName;
int corner;
int totalLabels;
int window;
int nDigits;
int pZX;
int PTL;
double O_P;
double O_P1;
double O_P2;
int F_Offset=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
corner = 0;
shortName = MakeUniqueName("BT ","");
labelNames = shortName;
IndicatorShortName(shortName);
string S = Symbol();
if(S=="GBPJPY" ||S=="EURJPY" || S=="USDJPY" || S=="GOLD" )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")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;
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;
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;
string S = Symbol();
if(S=="GBPJPY" ||S=="EURJPY" || S=="USDJPY" || S=="GOLD" || S=="ES"|| S=="FGBL") {pZX = 100000;} else{pZX = 1000;}
if(S=="FTSE" ||S=="FDAX" || S=="FESX" || S=="YM"){PTL = 1;} else {PTL = 100;}
R77 =(iClose(NULL,PERIOD_D1,0)-iOpen(NULL,PERIOD_D1,0))/Point;
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;
Spread=NormalizeDouble((Ask-Bid)/Point,0);
if(Spread<0) Spread=0;
if (Bid_Colors == True)
{
if (Close[i] > O_P) ColorPrice = DodgerBlue;
if (Close[i] < O_P) ColorPrice = LightGray;
O_P = Close[i];
}
color ColorCT709;
if( Close[i] < O_P2 ) { ColorCT709 =Red;}
O_P2 = Close[i];
color ColorCT708;
if( Close[i] > O_P1 ) { ColorCT708 =Lime;}
O_P1 = Close[i];
string Market_Price = DoubleToStr(Close[i], Digits);
color ColorCH704 ;
if(R77 >= 0 ) { ColorCH704 =LimeGreen ; }
color ColorCH705 ;
if(R77 < 0 ) { ColorCH705 =Red ; }
///////ARROWS>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
setObject(next(),"^",115+price.x.offset, 2+price.y.offset,ColorCT708 ,"Arial Bold",20+F_Offset,0);
setObject(next(),"^",127+price.x.offset, 32+price.y.offset,ColorCT709 ,"Arial Bold",20+F_Offset,180);
setObject(next(),"^",227+price.x.offset, 2+price.y.offset,ColorCH704 ,"Arial Bold",18+F_Offset,0);//
setObject(next(),"^",240+price.x.offset, 32+price.y.offset,ColorCH705 ,"Arial Bold",18+F_Offset,180);//
//////// Value inputs>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
setObject(next(),Market_Price ,140+price.x.offset, 5+price.y.offset,ColorPrice ,FX_T,16+F_Offset);
setObject(next(),StringSubstr(Symbol(),0),22+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,13+F_Offset);
setObject(next(),DoubleToStr(DO ,Digits),383+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,13+F_Offset);
setObject(next(),DoubleToStr(HD ,Digits),472+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,13+F_Offset);
setObject(next(),DoubleToStr(DL ,Digits),555+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,13+F_Offset);
setObject(next(),DoubleToStr(R77 ,0),247+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,13+F_Offset);
setObject(next(),TimeToStr(CurTime(),TIME_SECONDS),777+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,13+F_Offset);
setObject(next(),TimeToStr(LocalTime(),TIME_MINUTES),880+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,13+F_Offset);
setObject(next(),DoubleToStr(Spread ,Digits-3),970+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,13+F_Offset);
setObject(next(),DoubleToStr(Perc ,nDigits),300+price.x.offset, 5+price.y.offset,ColorValue ,FX_T,13+F_Offset);
///>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//HEADINGS>>>>>
setObject(next(),"Name",45+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
setObject(next(),"Last",157+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
setObject(next(),"Change",237+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
setObject(next(),"%CH",317+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
setObject(next(),"Open",398+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
setObject(next(),"High",484+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
setObject(next(),"Low",571+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
setObject(next(),"BidTime",795+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
setObject(next(),"LocalTime",880+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
setObject(next(),"Spread",970+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
setObject(next(),"1",630+price.x.offset, -10+price.y.offset,ColorHeading ,"Verdana",8+F_Offset);
setObject(next(),DoubleToStr(Trend_Bars ,0),755+price.x.offset, -10+price.y.offset,ColorHeading ,"Verdana",8+F_Offset);
setObject(next(),"Trend",695+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
setObject(next(),StringSubstr((T),0),655+price.x.offset, -10+price.y.offset,ColorHeading ,FX_T,9+F_Offset);
/////BORDERS>>>>>>>>>>>>>>>>>>>>
setObject(next(),SpacerText1,88+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
setObject(next(),SpacerText1,199+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
setObject(next(),SpacerText1,270+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
setObject(next(),SpacerText1,350+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
setObject(next(),SpacerText1,430+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
setObject(next(),SpacerText1,520+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
setObject(next(),SpacerText1,600+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
setObject(next(),SpacerText1,745+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
setObject(next(),SpacerText1,840+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
setObject(next(),SpacerText1,930+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
setObject(next(),SpacerText1,1002+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
setObject(next(),SpacerText1,-25+price.x.offset, 30+price.y.offset,DarkGray ,FX_T,17+F_Offset,90);
/////////LINES>>>>>>>>>>>>>>>>
setObject(next(),SpacerText2,0+price.x.offset, -5+price.y.offset, DarkGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,250+price.x.offset, -5+price.y.offset,DarkGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,450+price.x.offset, -5+price.y.offset,DarkGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,650+price.x.offset, -5+price.y.offset,DarkGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,650+price.x.offset, 21+price.y.offset,DarkGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,380+price.x.offset, 21+price.y.offset,DarkGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText2,100+price.x.offset, 21+price.y.offset,DarkGray ,FX_T,6+F_Offset);
setObject(next(),SpacerText1,0+price.x.offset, 21+price.y.offset,DarkGray ,FX_T,6+F_Offset);
////BIDTREND>>>>>>>>>>>>>>>>>>>>>>>>>
//if(show.Trend){
color LabelColor;
int SpX = 615, SpX2=7;
for(i=0;i<=Trend_Bars;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, 25+price.y.offset,LabelColor ,FX_T,30,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=10,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
---