Candlestick Pattern
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «candlestick pattern@amazing_owner.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный исходный файл представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник автоматически анализирует свечные паттерны на заданном количестве последних баров и при обнаружении соответствующей формации открывает рыночную сделку в направлении, которое предполагает паттерн. Поддерживаются как бычьи, так и медвежьи модели: молот, падающая звезда, дожи, утренняя/вечерняя звезда, тёмное облачное покрытие, проникающая линия и поглощение. Для каждого паттерна можно отдельно включить или отключить торговлю и звуковое оповещение.
Советник использует стандартные торговые функции MetaTrader 4 для выставления ордеров с заданными стоп-лоссом и тейк-профитом, а также уникальным магическим номером для идентификации своих сделок. Объём сделки задаётся в настройках, но при нулевом или отрицательном значении автоматически рассчитывается как доля от свободной маржи. Смещение цены при открытии ордера регулируется отдельным параметром.
Все входные параметры вынесены в раздел внешних настроек, что позволяет менять их без перекомпиляции. Советник не является библиотекой или индикатором, а представляет собой полноценный торговый робот, работающий по тиковым событиям. В коде отсутствуют пользовательские функции, кроме вспомогательной функции формирования имени, которая не является частью торговой логики.
Настройки программы
| Настройка | Описание |
|---|---|
| StopLoss | Стоп-лосс — Размер стоп-лосса в пунктах от цены открытия. Если значение равно нулю, стоп-лосс не выставляется. |
| TakeProfit | Тейк-профит — Размер тейк-профита в пунктах от цены открытия. Если значение равно нулю, тейк-профит не выставляется. |
| Lots | Объём сделки — Объём сделки в лотах. Если значение меньше или равно нулю, объём рассчитывается автоматически как доля от свободной маржи. |
| Slippage | Проскальзывание — Максимально допустимое отклонение цены в пунктах при открытии ордера. |
| MagicNumber | Магический номер — Уникальный идентификатор, присваиваемый ордерам советника для их отличия от сделок других экспертов. |
| Show_Alert | Показывать оповещение — Включает или отключает общее звуковое оповещение при обнаружении паттерна. |
| Display_ShootStar_2 | Торговать по падающей звезде 2 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Падающая звезда» второго типа. |
| Show_ShootStar_Alert_2 | Оповещать о падающей звезде 2 — Включает или отключает звуковое оповещение при обнаружении паттерна «Падающая звезда» второго типа. |
| Display_ShootStar_3 | Торговать по падающей звезде 3 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Падающая звезда» третьего типа. |
| Show_ShootStar_Alert_3 | Оповещать о падающей звезде 3 — Включает или отключает звуковое оповещение при обнаружении паттерна «Падающая звезда» третьего типа. |
| Display_ShootStar_4 | Торговать по падающей звезде 4 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Падающая звезда» четвёртого типа. |
| Show_ShootStar_Alert_4 | Оповещать о падающей звезде 4 — Включает или отключает звуковое оповещение при обнаружении паттерна «Падающая звезда» четвёртого типа. |
| Color_ShootStar | Цвет падающей звезды — Цвет, которым помечается паттерн «Падающая звезда» на графике. |
| Display_Hammer_2 | Торговать по молоту 2 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Молот» второго типа. |
| Show_Hammer_Alert_2 | Оповещать о молоте 2 — Включает или отключает звуковое оповещение при обнаружении паттерна «Молот» второго типа. |
| Display_Hammer_3 | Торговать по молоту 3 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Молот» третьего типа. |
| Show_Hammer_Alert_3 | Оповещать о молоте 3 — Включает или отключает звуковое оповещение при обнаружении паттерна «Молот» третьего типа. |
| Display_Hammer_4 | Торговать по молоту 4 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Молот» четвёртого типа. |
| Show_Hammer_Alert_4 | Оповещать о молоте 4 — Включает или отключает звуковое оповещение при обнаружении паттерна «Молот» четвёртого типа. |
| Color_Hammer | Цвет молота — Цвет, которым помечается паттерн «Молот» на графике. |
| Display_Doji | Торговать по дожи — Разрешает автоматическое открытие сделок при обнаружении паттерна «Дожи». |
| Show_Doji_Alert | Оповещать о дожи — Включает или отключает звуковое оповещение при обнаружении паттерна «Дожи». |
| Color_Doji | Цвет дожи — Цвет, которым помечается паттерн «Дожи» на графике. |
| Display_Stars | Торговать по звёздам — Разрешает автоматическое открытие сделок при обнаружении паттернов «Утренняя звезда» и «Вечерняя звезда». |
| Show_Stars_Alert | Оповещать о звёздах — Включает или отключает звуковое оповещение при обнаружении паттернов «Утренняя звезда» и «Вечерняя звезда». |
| Star_Body_Length | Длина тела звезды — Максимальная длина тела свечи в пунктах, при которой она считается звездой. |
| Color_Star | Цвет звезды — Цвет, которым помечается паттерн «Звезда» на графике. |
| Display_Dark_Cloud_Cover | Торговать по тёмному облачному покрытию — Разрешает автоматическое открытие сделок при обнаружении паттерна «Тёмное облачное покрытие». |
| Show_DarkCC_Alert | Оповещать о тёмном облачном покрытии — Включает или отключает звуковое оповещение при обнаружении паттерна «Тёмное облачное покрытие». |
| Color_DarkCC | Цвет тёмного облачного покрытия — Цвет, которым помечается паттерн «Тёмное облачное покрытие» на графике. |
| Display_Piercing_Line | Торговать по проникающей линии — Разрешает автоматическое открытие сделок при обнаружении паттерна «Проникающая линия». |
| Show_Piercing_Line_Alert | Оповещать о проникающей линии — Включает или отключает звуковое оповещение при обнаружении паттерна «Проникающая линия». |
| Color_Piercing_Line | Цвет проникающей линии — Цвет, которым помечается паттерн «Проникающая линия» на графике. |
| Display_Bearish_Engulfing | Торговать по медвежьему поглощению — Разрешает автоматическое открытие сделок при обнаружении медвежьего паттерна «Поглощение». |
| Show_Bearish_Engulfing_Alert | Оповещать о медвежьем поглощении — Включает или отключает звуковое оповещение при обнаружении медвежьего паттерна «Поглощение». |
| Color_Bearish_Engulfing | Цвет медвежьего поглощения — Цвет, которым помечается медвежий паттерн «Поглощение» на графике. |
| Display_Bullish_Engulfing | Торговать по бычьему поглощению — Разрешает автоматическое открытие сделок при обнаружении бычьего паттерна «Поглощение». |
| Show_Bullish_Engulfing_Alert | Оповещать о бычьем поглощении — Включает или отключает звуковое оповещение при обнаружении бычьего паттерна «Поглощение». |
| Color_Bullish_Engulfing | Цвет бычьего поглощения — Цвет, которым помечается бычий паттерн «Поглощение» на графике. |
| bars | Количество баров — Количество последних баров, среди которых выполняется поиск свечных паттернов. |
Поиск по коду файла
#property version "1.00"
#property strict
extern int StopLoss = 20;
extern int TakeProfit = 50;
extern double Lots = 0.01;
extern int Slippage = 3;
extern int MagicNumber = 58132134;
extern bool Show_Alert = true;
extern bool Display_ShootStar_2 = true;
extern bool Show_ShootStar_Alert_2 = true;
extern bool Display_ShootStar_3 = true;
extern bool Show_ShootStar_Alert_3 = true;
extern bool Display_ShootStar_4 = true;
extern bool Show_ShootStar_Alert_4 = true;
extern color Color_ShootStar = Red;
int Text_ShootStar = 8;
extern bool Display_Hammer_2 = true;
extern bool Show_Hammer_Alert_2 = true;
extern bool Display_Hammer_3 = true;
extern bool Show_Hammer_Alert_3 = true;
extern bool Display_Hammer_4 = true;
extern bool Show_Hammer_Alert_4 = true;
extern color Color_Hammer = Blue;
int Text_Hammer = 8;
extern bool Display_Doji = true;
extern bool Show_Doji_Alert = true;
extern color Color_Doji = Red;
int Text_Doji = 8;
extern bool Display_Stars = true;
extern bool Show_Stars_Alert = true;
extern int Star_Body_Length = 5;
extern color Color_Star = Blue;
int Text_Star = 8;
extern bool Display_Dark_Cloud_Cover = true;
extern bool Show_DarkCC_Alert = true;
extern color Color_DarkCC = Red;
int Text_DarkCC = 8;
extern bool Display_Piercing_Line = true;
extern bool Show_Piercing_Line_Alert = true;
extern color Color_Piercing_Line = Blue;
int Text_Piercing_Line = 8;
extern bool Display_Bearish_Engulfing = true;
extern bool Show_Bearish_Engulfing_Alert = true;
extern color Color_Bearish_Engulfing = Red;
int Text_Bearish_Engulfing = 8;
extern bool Display_Bullish_Engulfing = false;
extern bool Show_Bullish_Engulfing_Alert = false;
extern color Color_Bullish_Engulfing = Blue;
int Text_Bullish_Engulfing = 8;
extern int bars = 500;
double upArrow[];
double downArrow[];
int Signal;
int SL,TP;
int point = 0;
int pipMultiplier = 1;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
ObjectsDeleteAll(0, OBJ_TEXT);
return(0);
}
int start()
{
// код доступен только после оплаты
}
if (!Lots > 0)
{
Lots = AccountFreeMargin() * .0001;
}
int Result=0;
Comment("\n", "\n", "Candlestick Pattern EA");
SL=0;TP=0;
if(StopLoss>0) SL=Ask-point*StopLoss;
if(TakeProfit>0) TP=Ask+point*TakeProfit;
double Range, AvgRange;
int counter, setalert;
static datetime prevtime = 0;
int shift;
int shift1;
int shift2;
int shift3;
int shift4;
string pattern, period;
int setPattern = 0;
int alert = 0;
double O, O1, O2, C, C1, C2, C3, L, L1, L2, L3, H, H1, H2, H3;
double CL, CL1, CL2, BL, BLa, BL90, UW, LW, BodyHigh, BodyLow;
BodyHigh = 0;
BodyLow = 0;
double Doji_Star_Ratio = 0;
double Doji_MinLength = 0;
double Star_MinLength = 0;
int Pointer_Offset = 0; // The offset value for the arrow to be located off the candle high or low point.
int High_Offset = 0; // The offset value added to the high arrow pointer for correct plotting of the pattern label.
int Offset_ShootStar = 0; // The offset value of the shooting star above or below the pointer arrow.
int Offset_Hammer = 0; // The offset value of the hammer above or below the pointer arrow.
int Offset_Doji = 0; // The offset value of the doji above or below the pointer arrow.
int Offset_Star = 0; // The offset value of the star above or below the pointer arrow.
int Offset_Piercing_Line = 0; // The offset value of the piercing line above or below the pointer arrow.
int Offset_DarkCC = 0; // The offset value of the dark cloud cover above or below the pointer arrow.
int Offset_Bullish_Engulfing = 0;
int Offset_Bearish_Engulfing = 0;
int CumOffset = 0; // The counter value to be added to as more candle types are met.
int IncOffset = 0; // The offset value that is added to a cummaltive offset value for each pass through the routine so any
double Piercing_Line_Ratio = 0;
int Piercing_Candle_Length = 0;
int Engulfing_Length = 0;
double Candle_WickBody_Percent = 0;
int CandleLength = 0;
if(prevtime == Time[0]) {
return(0);
}
prevtime = Time[0];
for (shift = 0; shift < bars; shift++) {
CumOffset = 0;
setalert = 0;
counter=shift;
Range=0;
AvgRange=0;
for (counter=shift ;counter<=shift+9;counter++) {
AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
}
Range=AvgRange/10;
shift1 = shift + 1;
shift2 = shift + 2;
shift3 = shift + 3;
shift4 = shift + 4;
O = Open[shift1];
O1 = Open[shift2];
O2 = Open[shift3];
H = High[shift1];
H1 = High[shift2];
H2 = High[shift3];
H3 = High[shift4];
L = Low[shift1];
L1 = Low[shift2];
L2 = Low[shift3];
L3 = Low[shift4];
C = Close[shift1];
C1 = Close[shift2];
C2 = Close[shift3];
C3 = Close[shift4];
if (O>C) {
BodyHigh = O;
BodyLow = C; }
else {
BodyHigh = C;
BodyLow = O; }
CL = High[shift1]-Low[shift1];
CL1 = High[shift2]-Low[shift2];
CL2 = High[shift3]-Low[shift3];
BL = Open[shift1]-Close[shift1];
UW = High[shift1]-BodyHigh;
LW = BodyLow-Low[shift1];
BLa = MathAbs(BL);
BL90 = BLa*Candle_WickBody_Percent;
int ticket;
if ((H>=H1)&&(H>H2)&&(H>H3)) {
if (((UW/2)>LW)&&(UW>(2*BL90))&&(CL>=(CandleLength*Point))&&(O!=C)&&((UW/3)<=LW)&&((UW/4)<=LW)/*&&(L>L1)&&(L>L2)*/) {
if (Display_ShootStar_2 == true) {
ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage*Point,Ask+StopLoss*Point,Bid-TakeProfit*Point,"CSP: Shooting ShootStar 2",MagicNumber,0,Red);
return(ticket);
}
if (Show_ShootStar_Alert_2) {
if (setalert == 0 && Show_Alert == true) {
pattern = "Shooting ShootStar 2";
setalert = 1;
}
}
}
}
if ((H>=H1)&&(H>H2)&&(H>H3)) {
if (((UW/3)>LW)&&(UW>(2*BL90))&&(CL>=(CandleLength*Point))&&(O!=C)&&((UW/4)<=LW)/*&&(L>L1)&&(L>L2)*/) {
if (Display_ShootStar_3 == true) {
ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage*Point,Ask+StopLoss*Point,Bid-TakeProfit*Point,"CSP: Shooting ShootStar 3",MagicNumber,0,Red);
return(ticket);
}
if (Show_ShootStar_Alert_3) {
if (setalert == 0 && Show_Alert == true) {
pattern = "Shooting ShootStar 3";
setalert = 1;
}
}
}
}
if ((H>=H1)&&(H>H2)&&(H>H3)) {
if (((UW/4)>LW)&&(UW>(2*BL90))&&(CL>=(CandleLength*Point))&&(O!=C)/*&&(L>L1)&&(L>L2)*/) {
if (Display_ShootStar_4 == true) {
ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage*Point,Ask+StopLoss*Point,Bid-TakeProfit*Point,"CSP: Shooting ShootStar 4",MagicNumber,0,Red);
return(ticket);
}
Показано первые 50% кода (символов: 10413)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.