Price Data Components
0
Views
0
Downloads
0
Favorites
ColorCandles
//+------------------------------------------------------------------+
//| MultiColorCandles.mq4 |
//| Copyright © 2010, Vladimir Hlystov |
//| http://cmillion.narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Vladimir Hlystov"
#property link "http://cmillion.narod.ru"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 White
#property indicator_style1 0
#property indicator_width1 2
extern string òèï_âûâîäà ="0-ñâå÷è 1-áàðû 2-ëèíèÿ";
//+------------------------------------------------------------------+
extern int DrawCandle = 1;
extern string simbol="";//"SIH0";//GCJ0";//"SILVER";//ÅÑËÈ "" òî òåêóùèé
//+------------------------------------------------------------------+
datetime TekTime;
double price[];
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(1);
SetIndexBuffer(0,price);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID);
TekTime=Time[0];
if (DrawCandle<3)
{
string name="0";ObjectCreate(name,OBJ_LABEL,0,0,0);ObjectSet(name, OBJPROP_CORNER, 3);
ObjectSet(name, OBJPROP_XDISTANCE,5);ObjectSet(name, OBJPROP_YDISTANCE,120);
ObjectSetText(name,"ðàçìåð áàð",8,"Times New Roman",Gray);
for (int i=10; i<=100; i=i+10)
{ name=DoubleToStr(i,0);ObjectCreate(name,OBJ_LABEL,0,0,0);ObjectSet(name, OBJPROP_CORNER, 3);
ObjectSet(name, OBJPROP_XDISTANCE,5);ObjectSet(name, OBJPROP_YDISTANCE,5+i);
name=name+"M";ObjectCreate(name,OBJ_LABEL,0,0,0);ObjectSet(name, OBJPROP_CORNER, 3);
ObjectSet(name, OBJPROP_XDISTANCE,30);ObjectSet(name, OBJPROP_YDISTANCE,5+i);}
}
if (simbol=="") simbol=Symbol();
SetIndexLabel(0,simbol);
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
if (DrawCandle<3) del(simbol);
for (int i=0; i<=100; i=i+10)
{ObjectDelete(DoubleToStr(i,0)); ObjectDelete(DoubleToStr(i,0)+"M");}
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int BarsWind=WindowFirstVisibleBar();
double High_Win = High[iHighest(NULL,0,MODE_HIGH,BarsWind,0)];
double Low_Win = Low[iLowest(NULL,0,MODE_LOW,BarsWind,0)];
double H = iHigh(simbol,0,iHighest(simbol,0,MODE_HIGH,BarsWind,0));
double L = iLow(simbol,0,iLowest(simbol,0,MODE_LOW,BarsWind,0));
double OpenBar,CloseBar,LowBar,HighBar;
string nameCandle;
int Digit = MarketInfo(simbol,MODE_DIGITS);
if (DrawCandle<3) del(simbol);
if (true)
{
double maxCandl,Candl;
for(int i=BarsWind; i>=0; i--) //íàõîäèì ìàêñèìàëüíóþ ñâå÷ó
{
Candl = (High[i]-Low[i])/Point;
if (maxCandl<Candl) maxCandl=Candl;
}
}
color color1;
if (DrawCandle<3)
{
for (i=10; i<=100; i=i+10){
ObjectSetText(DoubleToStr(i,0),DoubleToStr(maxCandl*i/100,0),8,"Times New Roman",BLUE(i));
ObjectSetText(DoubleToStr(i,0)+"M",DoubleToStr(maxCandl*i/100,0),8,"Times New Roman",RED(i));}
}
for(i=BarsWind; i>=0; i--)
{
OpenBar = iOpen (simbol,0,i);
CloseBar= iClose(simbol,0,i);
LowBar = iLow (simbol,0,i);
HighBar = iHigh (simbol,0,i);
if (DrawCandle<3)
{
if (i==0) nameCandle=simbol;
else nameCandle=StringConcatenate(simbol," ",TimeToStr(Time[i],TIME_MINUTES),"\n",
"O ",DoubleToStr(OpenBar,Digit),"\n",
"H ",DoubleToStr(HighBar,Digit),"\n",
"L ",DoubleToStr(LowBar,Digit),"\n",
"C ",DoubleToStr(CloseBar,Digit));
if (OpenBar>CloseBar) color1 = BLUE(((HighBar-LowBar)/Point)*100/maxCandl);
else color1 = RED(((HighBar-LowBar)/Point)*100/maxCandl);
}
OpenBar =(OpenBar -L)/(H-L)*(High_Win-Low_Win)+Low_Win;
CloseBar=(CloseBar-L)/(H-L)*(High_Win-Low_Win)+Low_Win;
LowBar =(LowBar -L)/(H-L)*(High_Win-Low_Win)+Low_Win;
HighBar =(HighBar -L)/(H-L)*(High_Win-Low_Win)+Low_Win;
price[i] = (OpenBar+CloseBar+LowBar+HighBar)/4;
if (DrawCandle==0)
{
ObjectCreate(nameCandle, OBJ_TREND, 0,Time[i],HighBar,Time[i],LowBar);
ObjectSet (nameCandle, OBJPROP_COLOR, color1);
ObjectSet (nameCandle, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet (nameCandle, OBJPROP_BACK, false);
ObjectSet (nameCandle, OBJPROP_RAY, false);
ObjectSet (nameCandle, OBJPROP_WIDTH, indicator_width1);
nameCandle=StringConcatenate(nameCandle,".");
ObjectCreate(nameCandle, OBJ_TREND, 0,Time[i+1],OpenBar,Time[i],OpenBar);
ObjectSet (nameCandle, OBJPROP_COLOR, color1);
ObjectSet (nameCandle, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet (nameCandle, OBJPROP_BACK, false);
ObjectSet (nameCandle, OBJPROP_RAY, false);
ObjectSet (nameCandle, OBJPROP_WIDTH, indicator_width1);
nameCandle=StringConcatenate(nameCandle,"_");
ObjectCreate(nameCandle, OBJ_TREND, 0,Time[i],CloseBar,Time[i]+Period()*60,CloseBar);
ObjectSet (nameCandle, OBJPROP_COLOR, color1);
ObjectSet (nameCandle, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet (nameCandle, OBJPROP_BACK, false);
ObjectSet (nameCandle, OBJPROP_RAY, false);
ObjectSet (nameCandle, OBJPROP_WIDTH, indicator_width1);
}
if (DrawCandle==1)
{
ObjectCreate(nameCandle, OBJ_TREND,0,Time[i],LowBar,Time[i],HighBar,0,0);
ObjectSet (nameCandle, OBJPROP_WIDTH, 1);
ObjectSet (nameCandle, OBJPROP_COLOR, color1);
ObjectSet (nameCandle, OBJPROP_RAY, false);
nameCandle=StringConcatenate(nameCandle," Body");
ObjectCreate(nameCandle, OBJ_TREND,0,Time[i],OpenBar,Time[i],CloseBar,0,0);
ObjectSet (nameCandle, OBJPROP_WIDTH, 4);
ObjectSet (nameCandle, OBJPROP_COLOR, color1);
ObjectSet (nameCandle, OBJPROP_RAY, false);
}
if (DrawCandle==2)
{
ObjectCreate(nameCandle, OBJ_TREND,0,Time[i+1],price[i+1],Time[i],price[i],0,0);
ObjectSet (nameCandle, OBJPROP_WIDTH, indicator_width1);
ObjectSet (nameCandle, OBJPROP_COLOR, color1);
ObjectSet (nameCandle, OBJPROP_RAY, false);
}
}
return(0);
}
//+------------------------------------------------------------------+
color BLUE(int i)
{
int BB=i*2.55;
return((BB<<16)^(0<<8)^(50));
}
//+------------------------------------------------------------------+
color RED(int i)
{
int RR=i*2.55;
return((50<<16)^(0<<8)^(RR));
}
//+------------------------------------------------------------------+
int del(string tekst)
{
for(int n=ObjectsTotal()-1; n>=0; n--)
{
string Obj_Name=ObjectName(n);
if (StringFind(Obj_Name,tekst,0) != -1)
{
ObjectDelete(Obj_Name);
}
}
return;
}
//+------------------------------------------------------------------+
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
---