Miscellaneous
0
Views
0
Downloads
0
Favorites
ExCandles
//+------------------------------------------------------------------+
//| ExCandles.mq4 |
//| Copyright © 2006, Alex Sidd (Executer) |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Alex Sidd (Executer)"
#property link "mailto:work_st@mail.ru"
//----
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black
//---- input parameters
int ExPeriod = 10;
//---- buffers
double CCodeBuffer[];
//+------------------------------------------------------------------+
//| initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
IndicatorBuffers(1);
SetIndexStyle(0, DRAW_NONE);
SetIndexBuffer(0, CCodeBuffer);
SetIndexDrawBegin(0, ExPeriod);
short_name = "ExCandles";
IndicatorShortName(short_name);
SetIndexLabel(0, short_name);
//----
return(0);
}
//+------------------------------------------------------------------+
//| deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll(0, OBJ_ARROW);
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsViselnik(int i1, int i2)
{
if((Open[i1] - Close[i1] > 0) &&
((High[i1] - Open[i1])*100 / (Open[i1] - Close[i1] + 0.0000001) < 15) &&
((Close[i1] - Low[i1])*100 / (Open[i1] - Close[i1] + 0.0000001) > 200) &&
(Open[i2] - Close[i2] < 0))
return(true);
else
return(false);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsHummer(int i1, int i2)
{
if((Open[i1] - Close[i1] < 0) &&
((High[i1] - Close[i1])*100 / (Close[i1] - Open[i1] + 0.0000001) > 200) &&
((Open[i1] - Low[i1])*100 / (Close[i1] - Open[i1] + 0.0000001) < 15) &&
(Open[i2] - Close[i2] > 0))
return(true);
else
return(false);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsBear(int i1, int i2, int i3)
{
if((Open[i2] - Close[i2] > 0) &&
(Open[i2] >= Close[i3]) &&
(Close[i2] <= Open[i3]) &&
(Open[i3] - Close[i3] < 0) &&
((Open[i2] - Close[i2]) / (Close[i3] - Open[i3] + 0.0000001) > 1.5))
return(true);
else
return(false);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsBull(int i1, int i2, int i3)
{
if((Open[i2] - Close[i2] < 0) &&
(Open[i3] - Close[i3] > 0) &&
(Close[i2] >= Open[i3]) &&
(Open[i2] <= Close[i3]) &&
((Close[i2] - Open[i2]) / (Open[i3] - Close[i3] + 0.0000001) > 1.5))
return(true);
else
return(false);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool Zavesa_black(int i1, int i2)
{
if((Open[i1] - Close[i1] > 0) &&
(Open[i2] - Close[i2] < 0) &&
((Close[i2] - Open[i2]) / (High[i2] - Low[i2]) > 0.6) &&
(Open[i1] > High[i2]) &&
(Close[i1] < (Open[i2] + (Close[i2] - Open[i2])/2)))
return(true);
else
return(false);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool Prosvet(int i1, int i2, int i3)
{
if((Open[i1] - Close[i1] < 0) &&
(Open[i2] - Close[i2] > 0) &&
((Open[i2] - Close[i2]) / (High[i2] - Low[i2]) > 0.6) &&
(Open[i1] < Low[i2]) &&
(Close[i1] > (Close[i2] + (Open[i2] - Close[i2]) / 2)))
return(true);
else
return(false);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool morning_star(int i1, int i2, int i3)
{
if((Open[i3] - Close[i3] > 0) &&
(Close[i2] - Open[i2] > 0) &&
(Close[i1] - Open[i1] > 0) &&
(Close[i2] < Close[i3]) &&
(Open[i1] > Close[i2]) &&
(((MathAbs(Open[i3] - Close[i1]) + MathAbs(Open[i1] - Close[i3])) /
(Open[i3] - Close[i3] + 0.0000001)) < 0.1) &&
((Open[i3] - Close[i3]) / (High[i3] - Low[i3]) > 0.8) &&
((Close[i2] - Open[i2]) / (High[i2] - Low[i2]) < 0.3) &&
(Close[i1] - Open[i1]) / (High[i1] - Low[i1]) > 0.8)
return(true);
else
return(false);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool evening_star(int i1, int i2, int i3)
{
if((Open[i3] - Close[i3] < 0) &&
(Close[i2] - Open[i2] < 0) &&
(Close[i1] - Open[i1] < 0) &&
(Close[i2] > Close[i3]) &&
(Open[i1] < Close[i2]) &&
(((MathAbs(Open[i3] - Close[i1]) + MathAbs(Open[i1] - Close[i3])) /
(Close[i3] - Open[i3] + 0.0000001)) < 0.1) &&
((Close[i3] - Open[i3]) / (High[i3] - Low[i3]) > 0.8) &&
((Open[i2] - Close[i2]) / (High[i2] - Low[i2]) < 0.3) &&
((Open[i1] - Close[i1]) / (High[i1] - Low[i1]) > 0.8))
return(true);
else
return(false);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsEveningDodgiStar(int i1, int i2, int i3)
{
if((Open[i3] - Close[i3] < 0) &&
(Close[i2] - Open[i2] == 0) &&
(Close[i1] - Open[i1] < 0) &&
(Close[i2] >= Close[i3]) &&
(Open[i1] <= Close[i2]) &&
(((MathAbs(Open[i3] - Close[i1]) + MathAbs(Open[i1] - Close[i3])) /
(Open[i3] - Close[i3] + 0.0000001)) < 0.1))
return(true);
else
return(false);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsMorningDodgiStar(int i1, int i2, int i3)
{
if((Open[i3] - Close[i3] > 0) &&
(Close[i2] - Open[i2] == 0) &&
(Close[i1] - Open[i1] > 0) &&
(Close[i2] <= Close[i3]) &&
(Open[i1] >= Close[i2]) &&
(((MathAbs(Open[i3] - Close[i1]) + MathAbs(Open[i1] - Close[i3])) /
(Open[i3] - Close[i3] + 0.0000001)) < 0.1))
return(true);
else
return(false);
}
//+------------------------------------------------------------------+
//| Executer Candles Indicator |
//+------------------------------------------------------------------+
int start()
{
int i, counted_bars = IndicatorCounted();
double negative = 0, positive = 0;
//----
if(Bars <= ExPeriod)
return(0);
if(counted_bars < 1)
for(i = 1; i <= ExPeriod; i++)
CCodeBuffer[Bars-i] = 0.0;
//----
i = Bars - ExPeriod - 1;
if(counted_bars >= ExPeriod)
i = Bars - counted_bars - 1;
while(i >= 0)
{
if(IsViselnik(i, i + 1) == true)
{
ObjectCreate("Âèñåëüíèê" + i, OBJ_ARROW, 0, Time[i], High[i] + 20*Point);
ObjectSet("Âèñåëüíèê" + i, OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN);
ObjectSet("Âèñåëüíèê" + i, OBJPROP_COLOR, Red);
CCodeBuffer[i] = 1;
}
if(IsHummer(i, i + 1) == true)
{
ObjectCreate("Ìîëîò" + i, OBJ_ARROW, 0, Time[i], Low[i] - 20*Point);
ObjectSet("Ìîëîò" + i, OBJPROP_ARROWCODE, SYMBOL_ARROWUP);
ObjectSet("Ìîëîò" + i, OBJPROP_COLOR, Blue);
CCodeBuffer[i] = 2;
}
if(IsBear(i - 1, i, i + 1) == true)
{
ObjectCreate("Ìåäâåæüå ïîãëîùåíèå" + i, OBJ_ARROW, 0, Time[i], High[i] + 20*Point);
ObjectSet("Ìåäâåæüå ïîãëîùåíèå" + i, OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN);
ObjectSet("Ìåäâåæüå ïîãëîùåíèå" + i, OBJPROP_COLOR, Red);
CCodeBuffer[i] = 3;
}
if(IsBull(i - 1, i, i + 1) == true)
{
ObjectCreate("Áû÷üå ïîãëîùåíèå" + i, OBJ_ARROW, 0, Time[i], Low[i] - 20*Point);
ObjectSet("Áû÷üå ïîãëîùåíèå" + i, OBJPROP_ARROWCODE, SYMBOL_ARROWUP);
ObjectSet("Áû÷üå ïîãëîùåíèå" + i, OBJPROP_COLOR, Blue);
CCodeBuffer[i] = 4;
}
if(Zavesa_black(i, i + 1) == true)
{
ObjectCreate("Çàâåñà èç òåìíûõ îáëàêîâ" + i, OBJ_ARROW, 0, Time[i],
High[i] + 20*Point);
ObjectSet("Çàâåñà èç òåìíûõ îáëàêîâ" + i, OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN);
ObjectSet("Çàâåñà èç òåìíûõ îáëàêîâ" + i, OBJPROP_COLOR, Red);
CCodeBuffer[i] = 5;
}
if(Prosvet(i - 1, i, i + 1) == true)
{
ObjectCreate("Ïðîñâåò â îáëàêàõ" + i, OBJ_ARROW, 0, Time[i], Low[i] - 20*Point);
ObjectSet("Ïðîñâåò â îáëàêàõ" + i, OBJPROP_ARROWCODE, SYMBOL_ARROWUP);
ObjectSet("Ïðîñâåò â îáëàêàõ" + i, OBJPROP_COLOR, Blue);
CCodeBuffer[i] = 6;
}
if(evening_star(i - 1, i, i + 1) == true)
{
ObjectCreate("Âå÷åðíÿÿ çâåçäà" + i, OBJ_ARROW, 0, Time[i], High[i] + 20*Point);
ObjectSet("Âå÷åðíÿÿ çâåçäà" + i, OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN);
ObjectSet("Âå÷åðíÿÿ çâåçäà" + i, OBJPROP_COLOR, Red);
CCodeBuffer[i] = 7;
}
if(morning_star(i - 1, i, i + 1) == true)
{
ObjectCreate("Óòðåííÿÿ çâåçäà" + i, OBJ_ARROW, 0, Time[i], Low[i] - 20*Point);
ObjectSet("Óòðåííÿÿ çâåçäà" + i, OBJPROP_ARROWCODE, SYMBOL_ARROWUP);
ObjectSet("Óòðåííÿÿ çâåçäà" + i, OBJPROP_COLOR, Blue);
CCodeBuffer[i] = 8;
}
if(IsEveningDodgiStar(i - 1, i, i + 1) == true)
{
ObjectCreate("Âå÷åðíÿÿ äîäæè çâåçäà" + i, OBJ_ARROW, 0, Time[i], High[i] + 20*Point);
ObjectSet("Âå÷åðíÿÿ äîäæè çâåçäà" + i, OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN);
ObjectSet("Âå÷åðíÿÿ äîäæè çâåçäà" + i, OBJPROP_COLOR, Red);
CCodeBuffer[i] = 9;
}
if(IsMorningDodgiStar(i - 1, i, i + 1) == true)
{
ObjectCreate("Óòðåííÿÿ äîäæè çâåçäà" + i, OBJ_ARROW, 0, Time[i], Low[i] - 20*Point);
ObjectSet("Óòðåííÿÿ äîäæè çâåçäà" + i, OBJPROP_ARROWCODE, SYMBOL_ARROWUP);
ObjectSet("Óòðåííÿÿ äîäæè çâåçäà" + i, OBJPROP_COLOR, Blue);
CCodeBuffer[i] = 10;
}
i--;
}
//----
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
---