Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пример: отслеживание срабатывания стоп-лосса или тейк-профита
Код: SL TP Triggered.mq5
Алгоритм действий: ловим транзакцию'TRADE_TRANSACTION_DEAL_ADD' (добавление сделки в историю). Далее проверяем свойство сделки из перечисления ENUM_DEAL_REASON (Причина или источник исполнения сделки) - если это 'DEAL_REASON_SL' или 'DEAL_REASON_TP', то отправляем сигнал.
Пример: простой советник на пересечении двух индикаторов iMA (Moving Average, MA).
Код: Simple Two iMA Crossing.mq5
ВНИМАНИЕ: Чтобы получить данные индикатора в MQL5-эксперте, необходимо придерживаться следующих правил:
Создание хэндлов индикаторов в OnInit
Таким образом, советник будет искать сигнал только в момент рождения нового бара. Код, отвечающий за поиск нового бара:
Если новый бар найден, ищем сигнал: сравниваем значения двух индикаторов iMA ('Fast' и 'Slow') на баре № 2 и на баре № 1. Обратите внимание, что текущий бар - бар № 0 - не используется. Когда поступает сигнал на открытие позиции BUY, мы выставляем ордер на закрытие позиций SELL, и наоборот: когда поступает сигнал на открытие позиции SELL, мы выставляем ордер на закрытие BUY.
Пример: если индикатор Moving Average опустился ниже цены закрытия, закройте позиции BUY, если индикатор Moving Average поднялся выше цены закрытия, закройте позиции SELL.
Код: Simple iMA Above Below Close.mq5
Пример создания индикатора подробно описан выше(#112), а здесь я более подробно остановлюсь на получении сигнала, а не на его реализации.
Итак, в момент рождения нового бара
проверяем необходимость закрытия позиций (сравниваем значение индикатора Moving Average на баре №1 и цену закрытия бара №1)
В OnTick (то есть на каждом тике) проверяем флаги ' m_need_close_buys ' и ' m_need_close_sells ' - и, если необходимо, закрываем позиции выбранного направления.
Мы ловим транзакцию
Код: Мы ловим сделку.mq5
Это заготовка - пример того, как управлять торговым сигналом. Этот код позволяет избежать ситуации: открытия нескольких позиций. Как это работает: после генерации торгового ордера мы увеличиваем структуру 'SPosition'. В OnTick, если 'SPosition' больше нуля, переходим к блоку открытия позиций. В OnTradeTransaction отслеживаем ситуацию, когда позиция появляется точно по нашему сигналу.
Пример: найти самую убыточную позицию и самую прибыльную позицию
Код: Поиск максимального убытка и максимальной прибыли.mq5
Пример: ловля триггера тейк-профита
Код: Last Deal Take Profit activation.mq5
Пример работы в режиме онлайн (через OnTradeTransaction).
Получение данных от индикатора в MQL5.
Схема:
Пример для индикатора iMA:
функции OnInit).
Входные параметры и переменная, в которой хранится хэндл индикатора:
Создание хэндла(проверка результата)
Получение значений (я использую общую функцию iGetArray). Обратите внимание: для массива"array_ma" я использую"ArraySetAsSeries" - в этом случае в массиве "array_ma" элемент с индексом "0" соответствует самому правому бару на графике (bar # 0)
Результат работы:
Рис. 1. Получение значений на барах #0, #1, #2
Привет, я здесь новичок. Не знаю, упоминалось ли это раньше, но я пытаюсь понять, как открыть позицию по цене открытия НОВОЙ свечи. возможно ли это?
Нет, это невозможно: так как свеча уже открылась и это событие В ПРОШЛОМ :)
Но проблему можно сформулировать иначе: как поймать момент рождения нового бара и открыть позицию в этот момент. Устроит ли вас такая постановка вопроса?
Пример: в момент рождения нового бара открывается позиция размером 1,0 лот
Код: Открыть позицию на новом баре.mq5