Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Индикаторы

Boom Index Spike Pattern - индикатор для MetaTrader 5

Просмотров:
38
Рейтинг:
(3)
Опубликован:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Обнаружение паттерна "Бычий шип

  • Паттерн "3 бара":

    • 1-я свеча: Зеленая с большим телом (бычий шип).

    • 2-я свеча: Красная (откат).

    • 3-я свеча: Зеленая с большим телом (бычий шип).

  • При появлении этого паттерна создается зона.

Создание зоны

  • Из диапазона high/low 3 свечей рисуется синий прямоугольник.

  • Зеленая горизонтальная линия входа проводится по цене открытия средней (2-й) свечи.

  • Линия простирается далеко в будущее, пока цена не вернется.


ОБЪЯСНЕНИЕ ВХОДОВ

mq5
input color BoxColor = clrBlue;              // Цвет шкатулки с узором из 3 свечей
input color EntryLineColor = clrLime;        // Цвет линии входа
input ENUM_LINE_STYLE EntryLineStyle = STYLE_SOLID; // Стиль входной строки
input int BoxWidth = 2;                      // Ширина границы коробки
input int EntryLineWidth = 2;                // Ширина линии ввода
input int EntryLineLength = 200;             // Как далеко простирается линия смягчения
```
These inputs let you fully control the style of the box and entry line.


ОСНОВНАЯ ИДЕЯ

Мы ищем 3-свечной бычий паттерн.

1. Первая свеча - сильная бычья (шип)

2. Вторая свеча - медвежий откат

3. Третья свеча - снова сильный бычий шип


Когда это появляется, мы рисуем:

- рамку вокруг паттерна

- Горизонтальную линию на открытии 2-й свечи (точка входа).

Как только цена возвращается к этой линии ("смягчение"), мы обрываем линию и не перерисовываем ее.


СТРУКТУРЫ ДАННЫХ

struct PatternInfo {
  datetime time;   // Время шаблона
  double entry;    // Цена входа (открытие 2-й свечи)
  double high;     // Самый высокий максимум из 3 свечей
  double low;      // Самый низкий минимум из 3 свечей
  bool mitigated;  // Вернулась ли цена к начальному уровню?
};

CArrayObj activePatterns;
```
We use a struct `PatternInfo` to track each valid pattern and store it in an array. This helps avoid repeated processing.

ФУНКЦИЯ ИНИЦИАЛИЗАЦИИ

int OnInit() {
  IndicatorSetInteger(INDICATOR_DIGITS, _Digits);
  ArrayInitialize(activePatterns, 0);
  return INIT_SUCCEEDED;
}
```
We set the indicator precision and prepare our array.


ОБНАРУЖЕНИЕ ПАТТЕРНА (НА КАЖДОМ ТИКЕ)

```mq5
for (int i = limit - 3; i >= 0; i--) {
```
We loop through candles and look 3 bars back.

```mq5
if (isBullish(i+2) && isBearish(i+1) && isBullish(i))
```
We check if the last 3 candles fit the spike pattern: Green-Red-Green.

```mq5
double high = MathMax(MathMax(High[i], High[i+1]), High[i+2]);
double low = MathMin(MathMin(Low[i], Low[i+1]), Low[i+2]);
double entry = Open[i+1];
```
We extract high/low for box and the entry level from the 2 nd (middle) candle.

```mq5
PatternInfo *pattern = new PatternInfo;
pattern.time = Time[i];
pattern.entry = entry;
pattern.high = high;
pattern.low = low;
pattern.mitigated = false;
```
Create and add this pattern to our list.
РИСОВАТЬ КОРОБКУ И ЛИНИЮ
```mq5
string boxName = "Box_" + IntegerToString(Time[i]);
ObjectCreate(0, boxName, OBJ_RECTANGLE, 0, Time[i+2], high, Time[i], low);
```
Draw the rectangle (box) from the 3-candle pattern.

```mq5
string lineName = "EntryLine_" + IntegerToString(Time[i]);
ObjectCreate(0, lineName, OBJ_TREND, 0, Time[i], entry, Time[i] + PeriodSeconds() * EntryLineLength, entry);
```
Draw the entry line from the 2 nd candle’s open forward in time.

ПРОВЕРКА СМЯГЧЕНИЯ (НА КАЖДОМ ТИКЕ)

Loop through all patterns:
```mq5
for (int p = 0; p < activePatterns.Total(); p++) {
  PatternInfo *pt = (PatternInfo*)activePatterns.At(p);
```
If not already mitigated, check:
```mq5
if (!pt.mitigated && Low[0] <= pt.entry)
```
If current price hits the entry level:
```mq5
pt.mitigated = true;
ObjectDelete("EntryLine_" + IntegerToString(pt.time));
```
Delete original long line.

```mq5
ObjectCreate(0, "MitigatedLine_" + IntegerToString(pt.time), OBJ_TREND, 0,
pt.time, pt.entry,
Time[0], pt.entry);
```
Create a short line showing where mitigation happened.
HELPER FUNCTIONS

###  Check Bullish/Bearish:
```mq5
bool isBullish(int i) {
  return Close[i] > Open[i];
}

bool isBearish(int i) {
  return Close[i] < Open[i];
}

Этот индикатор является простым, но мощным:

  • Обнаруживает реальное поведение спайков в Boom
  • Визуализирует входы "умных денег
  • Автоматически обнаруживает смягчение

Теперь вы можете протестировать его вживую на Boom 500 или Boom 1000.


Спасибо за комментарии, если вы хотите спросить или поделиться.


Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/61749

Moving Price Line Indicator MT5 Moving Price Line Indicator MT5

Этот простой индикатор позволяет легко определить, когда цена достигает определенного времени на любой свече или таймфрейме.

Creat Button Close BuySell On Chart Creat Button Close BuySell On Chart

MQL5-скрипт для MetaTrader 5, который добавляет две кнопки для закрытия всех позиций на покупку или продажу для текущего символа.

CBitBuffer Class - Data Serialization in MQL5 CBitBuffer Class - Data Serialization in MQL5

Класс для чтения и записи отдельных битов или последовательностей битов в буфер и из него.

YURAZ_MCCH YURAZ_MCCH

Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.