0
важна возможность в настройках менять длинну и угол в пипсах
avatar

igrun

  • 10 июня 2025, 20:55
0
нужно отловить момент а потом запустить другую часть советника, а потом трал
avatar

igrun

  • 10 июня 2025, 20:49
0
я же отправил вам 4000 реблей
avatar

igrun

  • 10 июня 2025, 20:26
0
Андрей я так посмотрел… а можно было бы на месте пробоя круглого уровня активировать перевертышь с мартином
или это нужно по новой писать и платить
avatar

igrun

  • 10 июня 2025, 20:23
0
вопрос ко всем — какие настройки лучше удалось подобрать
avatar

igrun

  • 31 мая 2025, 12:30
0
Андрей что необходимо чтобы в настройках появились настройки масд и кратность круглых уровней
avatar

igrun

  • 14 мая 2025, 15:47
0
готово только можно масд брать доли от единицы
avatar

igrun

  • 13 мая 2025, 20:03
0
Андрей вечерком скину деньги только а письме повторите реквизиты
avatar

igrun

  • 13 мая 2025, 16:17
0
Хорошо, давайте разберемся, как создать алерт для индикатора OsMA в MetaTrader 5, который будет подавать сигналы при пересечении нулевой линии. Пользователь хочет, чтобы при пересечении столбиком OsMA нуля вверх срабатывал звуковой сигнал «Buy», а при пересечении вниз — «Sell».

Первым делом, мне нужно вспомнить, как работает индикатор OsMA. OsMA (OsMA Moving Average of Oscillator) — это разница между значением осциллятора (например, MACD) и его сигнальной линией. То есть, OsMA = MACD — Signal Line. Когда OsMA выше нуля, это может указывать на восходящий тренд, ниже нуля — на нисходящий. Пересечение нулевой линии может быть сигналом изменения тренда.

Теперь, как создать такой алерт в MT5. Встроенные алерты в MT5 обычно работают по условию достижения ценой определенного уровня, но для более сложных условий, таких как пересечение индикатором определенного уровня, скорее всего, потребуется написать пользовательский индикатор или скрипт, который будет отслеживать эти условия и вызывать алерт.

Поскольку стандартный индикатор OsMA в MT5, вероятно, не поддерживает встроенные алерты для пересечения нуля, нужно создать свой собственный индикатор, который будет не только отображать OsMA, но и проверять условия пересечения нулевой линии и генерировать алерты.

Шаги, которые нужно выполнить:

1. **Создание пользовательского индикатора**: Написать код на MQL5, который вычисляет OsMA и отслеживает его пересечение с нулевой линией.

2. **Определение условий для сигналов**:

— Сигнал Buy: когда текущее значение OsMA больше нуля, а предыдущее было меньше или равно нулю.

— Сигнал Sell: когда текущее значение OsMA меньше нуля, а предыдущее было больше или равно нулю.

3. **Реализация алертов**: При выполнении условий сигнала вызывать функцию Alert() с соответствующим сообщением и звуком.

4. **Проверка на повторные срабатывания**: Убедиться, что алерт срабатывает только один раз при пересечении, а не на каждом баре, пока условие выполняется.

5. **Тестирование индикатора**: Загрузить индикатор на график, проверить его работу на истории и в реальном времени.

Возможные подводные камни:

— Задержки в обновлении данных: индикатор должен корректно обрабатывать новые бары.

— Правильное определение предыдущего значения: нужно убедиться, что сравниваются значения на текущем и предыдущем барах.

— Обработка разных таймфреймов: индикатор должен работать на любом выбранном таймфрейме.

Теперь перейду к написанию кода индикатора. Использую стандартные параметры для OsMA (обычно это параметры MACD: быстрая, медленная EMA, сигнальная SMA). В коде нужно рассчитать OsMA, затем сравнить текущее и предыдущее значения относительно нуля.

Важно использовать индекс correct для массивов индикаторов. В MQL5 индексация баров идет от старого к новому, поэтому текущий бар (последний) имеет индекс 0. Предыдущий бар — индекс 1.

Также нужно учесть, что функция OnCalculate() вызывается при каждом новом тике, поэтому проверка условия должна происходить здесь.

Для предотвращения повторных срабатываний можно использовать флаги или проверять, был ли уже отправлен алерт на текущем баре.

Вот примерная структура кода:

— Объявление параметров индикатора.

— Объявление буферов для OsMA и, возможно, для сигналов.

— В функции OnInit() инициализация индикатора.

— В функции OnCalculate() расчет значений OsMA.

— Проверка условий пересечения нуля.

— Вызов Alert() при выполнении условий.

Также нужно добавить звуковые файлы в терминал, чтобы алерты воспроизводились. По умолчанию можно использовать стандартные звуки, либо указать путь к своим файлам.

После написания кода необходимо его скомпилировать, убедиться в отсутствии ошибок, и протестировать на исторических данных, чтобы убедиться, что сигналы генерируются правильно.

Чтобы создать индикатор OsMA с алертами для MT5, используйте следующий код. Этот индикатор будет подавать звуковой сигнал при пересечении нулевой линии:

mql5
//+------------------------------------------------------------------+
//| OsMA_Alert.mq5 |
//| Copyright 2023, MetaQuotes Software Corp. |
//| www.mql5.com |
//+------------------------------------------------------------------+
#property copyright «Copyright 2023, MetaQuotes Software Corp.»
#property link «www.mql5.com»
#property version «1.00»
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots 1

//--- Настройки индикатора
#property indicator_type1 DRAW_HISTOGRAM
#property indicator_color1 clrDodgerBlue
#property indicator_width1 2

//--- Параметры OsMA
input int FastEMA = 12; // Быстрая EMA
input int SlowEMA = 26; // Медленная EMA
input int SignalSMA = 9; // Сигнальная SMA

//--- Буферы
double OsMABuffer[];
double MACDBuffer[];
double SignalBuffer[];

//--- Глобальные переменные
int osmaHandle;
string soundFileBuy = «alert.wav»; // Файл для сигнала Buy
string soundFileSell = «alert2.wav»;// Файл для сигнала Sell

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Привязка буферов
SetIndexBuffer(0, OsMABuffer, INDICATOR_DATA);
SetIndexBuffer(1, MACDBuffer, INDICATOR_CALCULATIONS);
SetIndexBuffer(2, SignalBuffer, INDICATOR_CALCULATIONS);
//--- Создание индикатора OsMA
osmaHandle = iOsMA(_Symbol, _Period, FastEMA, SlowEMA, SignalSMA, PRICE_CLOSE);
if(osmaHandle == INVALID_HANDLE)
{
Print(«Ошибка создания OsMA»);
return(INIT_FAILED);
}
//--- Установка названий для отображения
IndicatorSetString(INDICATOR_SHORTNAME, «OsMA Alert»);
PlotIndexSetString(0, PLOT_LABEL, «OsMA»);
return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//--- Получение данных OsMA
if(CopyBuffer(osmaHandle, 0, 0, 3, OsMABuffer) <= 0)
{
Print(«Ошибка копирования данных OsMA»);
return(0);
}

//--- Проверка пересечения нуля
if(prev_calculated > 0)
{
double current = OsMABuffer[0];
double prev = OsMABuffer[1];
// Пересечение вверх
if(current > 0 && prev <= 0)
{
Alert(«Buy»);
PlaySound(soundFileBuy);
}
// Пересечение вниз
if(current < 0 && prev >= 0)
{
Alert(«Sell»);
PlaySound(soundFileSell);
}
}

return(rates_total);
}
//+------------------------------------------------------------------+
Инструкция по установке:

Скопируйте код в MetaEditor

Сохраните как новый индикатор (File -> New -> Custom Indicator)

Скомпилируйте (F7)

Прикрепите индикатор к графику через меню MT5

Особенности:

Использует стандартные параметры OsMA (12,26,9)

При пересечении нуля вверх воспроизводит звук «alert.wav» (Buy)

При пересечении нуля вниз — «alert2.wav» (Sell)

Работает на всех таймфреймах

Отображается в отдельном окне как гистограмма

Для кастомизации:

Замените звуковые файлы в папке Sounds терминала

Измените параметры EMA через настройки индикатора

Настройте цвета через свойства индикатора

Перед использованием протестируйте на истории и убедитесь, что звуковые файлы существуют в терминале.
avatar

igrun

  • 13 мая 2025, 00:37
0
Андрей я помню, 15 получу пенсию и сразу тебе 4 рублей переведу, на работе зп стали платить 2 раза в месяц так что может если вырвусь в банк может и 11.
— ПО заказу 1 рубль хватит?
avatar

igrun

  • 3 мая 2025, 17:10
0
я могу не скачивать если тебе от этого легче
avatar

igrun

  • 31 марта 2025, 18:08
0
ну уж как есть
avatar

igrun

  • 29 марта 2025, 19:50
0
ок поделишься совой
avatar

igrun

  • 29 марта 2025, 17:42
0
почему только можно же алго ручки использовать
avatar

igrun

  • 20 марта 2025, 00:32