작업 종료됨
![](https://c.mql5.com/i/avatar/avatar_na2.png)
명시
Здравствуйте.
Необходимо написать советника для платформы MetaTrader 4, который будет отслеживать срабатывание(открытие) ордеров и вызывать метод myMethod().
Пункт 1. Важный момент и основное условие:
1. Отслеживаться должны как ручные ордера, которые выставляет пользователь в программе, так и те ордера, которые приходят по подписке(сигналам).
2. Метод myMethod() должен вызываться только в момент срабатывания ордера, а не выставления!
Пункт 2. Какие типы ордеров необходимо отслеживать:
- OP_BUY - ордер на покупку (метод myMethod() вызывается моментально),
- OP_SELL - ордер на продажу (метод myMethod() вызывается моментально),
- OP_BUYLIMIT - отложенный ордер на покупку по достижении заданного уровня, текущая цена выше уровня (метод myMethod() вызывается только при срабатывании ордера),
- OP_BUYSTOP - отложенный ордер на покупку по достижении заданного уровня, текущая цена ниже уровня (метод myMethod() вызывается только при срабатывании ордера),
- OP_SELLLIMIT - отложенный ордер на продажу по достижении заданного уровня, текущая цена ниже уровня (метод myMethod() вызывается только при срабатывании ордера),
- OP_SELLSTOP - отложенный ордер на продажу по достижении заданного уровня, текущая цена выше уровня (метод myMethod() вызывается только при срабатывании ордера).
Пункт 3. При срабатывании данных ордеров в терминале должен вызываться метод myMethod() и в него должны передаваться следующие параметры:
1. Тип ордера, смотреть пункт 2
2. Торговый инструмент - OrderSymbol()
3. Время срабатывания ордера - TimeCurrent()
Пункт 4. Необходимо создать метод myMethod() и описать его свойства(параметры) и добавить следующие условия:
if(OrderType()==OP_BUY) {
Print("Сработал метод OP_BUY");
}
if(OrderType()==OP_SELL) {
Print("Сработал метод OP_SELL");
}
if(OrderType()==OP_BUYLIMIT) {
Print("Сработал метод OP_BUYLIMIT");
}
if(OrderType()==OP_BUYSTOP) {
Print("Сработал метод OP_BUYSTOP");
}
if(OrderType()==OP_SELLLIMIT) {
Print("Сработал метод OP_SELLLIMIT");
}
if(OrderType()==OP_SELLSTOP) {
Print("Сработал метод OP_SELLSTOP");
}
Советник должен устанавливаться на любое количество пар
Корректно обрабатывать сигналы по каждой паре
При срабатывании ордера, метод должен вызываться 1 раз, без зацикливания. При повторном срабатывании метод должен снова вызываться 1 раз (вообщем все должно работать исправно и логично)
Советник должен обрабатывать как открытие ордеров пользователем терминала, так и открытие ордеров по сигналам сервиса(https://www.mql5.com/ru/signals)