1. SRC для вставки кода!
2. https://docs.mql4.com/ru/trading/orderclose // Не ленитесь!
вникай, удачи!
int ticket,i,CLOSE=1; if(CLOSE==1) { for (i=OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType()==OP_BUY) { ticket=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),2,Blue); if(ticket<0){if(Fun_Error(GetLastError())==1){return(0);}} } if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType()==OP_SELL) { ticket=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),2,Red); if(ticket<0){if(Fun_Error(GetLastError())==1){return(0);}} } } } //+------------------------------------------------------------------+ //--- ФУНКЦИЯ ОБРАБОТКИ ОШИБОК //+------------------------------------------------------------------+ int Fun_Error(int Error) { switch(Error) { // Преодолимые ошибки case 0: return (0); case 1: Print("Попытка изменить уже установленные значения такими же значениями.");return(1); case 2: Print("Общая ошибка. Прекратить все попытки торговых операций до выяснения обстоятельств.");return(0); case 3: Print("В торговую функцию переданы неправильные параметры.");return(1); case 4: Print("Торговый сервер занят.Пробуем ещё раз..");Sleep(3000);return(1); case 5: Print("Старая версия клиентского терминала.");return(0); case 6: Print("Нет связи с торговым сервером.");return(1); case 7: Print("Недостаточно прав.");return(1); case 8: Print("Слишком частые запросы.");return(1); case 9: Print("Недопустимая операция нарушающая функционирование сервера.");return(1); case 64: Print("Счет заблокирован. Необходимо прекратить все попытки торговых операций.");return(0); case 65: Print("Неправильный номер счета.");return(1); case 128: Print("Истек срок ожидания совершения сделки.");return(1); case 129: Print("Неправильная цена bid или ask, возможно, ненормализованная цена.");return(1); case 130: Print("Слишком близкие стопы или неправильно рассчитанные или ненормализованные цены в стопах (или в цене открытия отложенного ордера).");return(1); case 131: Print("Неправильный объем, ошибка в грануляции объема.");return(1); case 132: Print("Рынок закрыт.");return(1); case 133: Print("Торговля запрещена.");return(0); case 134: Print("Недостаточно денег для совершения операции.");return(0); case 135: Print("Цена изменилась. Пробуем ещё раз..");RefreshRates();return(1); case 136: Print("Нет цен. Ждём новый тик.."); while(RefreshRates()==false) // До нового тика Sleep(1); return(1); case 137: Print("Брокер занят.Пробуем ещё раз..");Sleep(3000);return(1); case 138: Print("Запрошенная цена устарела, либо перепутаны bid и ask.");return(1); case 139: Print("Ордер заблокирован и уже обрабатывается.");return(1); case 140: Print("Разрешена только покупка. Повторять операцию SELL нельзя.");return(1); case 141: Print("Слишком много запросов.");return(1); case 142: Print("Ордер поставлен в очередь.");return(1); case 143: Print("Ордер принят дилером к исполнению.");return(1); case 144: Print("Ордер аннулирован самим клиентом при ручном подтверждении сделки.");return(1); case 145: Print("Модификация запрещена, так как ордер слишком близок к рынку и заблокирован из-за возможного скорого исполнения.");return(1); case 146: Print("Подсистема торговли занята.Пробуем ещё..");Sleep(500);return(1); case 147: Print("Использование даты истечения ордера запрещено брокером.");return(1); case 148: Print("Количество открытых и отложенных ордеров достигло предела, установленного брокером.");return(1); case 149: Print("Попытка открыть противоположную позицию к уже существующей в случае, если хеджирование запрещено.");return(1); case 4000: return (0); case 4001: Print("Неправильный указатель функции.");return(1); case 4002: Print("Индекс массива - вне диапазона.");return(1); case 4003: Print("Нет памяти для стека функций.");return(1); case 4004: Print("Переполнение стека после рекурсивного вызова.");return(1); case 4005: Print("На стеке нет памяти для передачи параметров.");return(1); case 4006: Print("Нет памяти для строкового параметра.");return(1); case 4007: Print("Нет памяти для временной строки.");return(1); case 4008: Print("Неинициализированная строка.");return(1); case 4009: Print("Неинициализированная строка в массиве.");return(1); case 4010: Print("Нет памяти для строкового массива.");return(1); case 4011: Print("Слишком длинная строка.");return(1); case 4012: Print("Остаток от деления на ноль.");return(1); case 4013: Print("Деление на ноль.");return(1); case 4014: Print("Неизвестная команда.");return(1); case 4015: Print("Неправильный переход.");return(1); case 4016: Print("Неинициализированный массив.");return(1); case 4017: Print("Вызовы DLL не разрешены.");return(1); case 4018: Print("Невозможно загрузить библиотеку.");return(1); case 4019: Print("Невозможно вызвать функцию.");return(1); case 4020: Print("Вызовы внешних библиотечных функций не разрешены.");return(1); case 4021: Print("Недостаточно памяти для строки, возвращаемой из функции.");return(1); case 4022: Print("Система занята.");return(1); case 4050: Print("Неправильное количество параметров функции.");return(1); case 4051: Print("Недопустимое значение параметра функции.");return(1); case 4052: Print("Внутренняя ошибка строковой функции.");return(1); case 4053: Print("Ошибка массива.");return(1); case 4054: Print("Неправильное использование массива-таймсерии.");return(1); case 4055: Print("Ошибка пользовательского индикатора.");return(1); case 4056: Print("Массивы несовместимы.");return(1); case 4057: Print("Ошибка обработки глобальныех переменных.");return(1); case 4058: Print("Глобальная переменная не обнаружена.");return(1); case 4059: Print("Функция не разрешена в тестовом режиме.");return(1); case 4060: Print("Функция не подтверждена.");return(1); case 4061: Print("Ошибка отправки почты.");return(1); case 4062: Print("Ожидается параметр типа string.");return(1); case 4063: Print("Ожидается параметр типа integer.");return(1); case 4064: Print("Ожидается параметр типа double.");return(1); case 4065: Print("В качестве параметра ожидается массив.");return(1); case 4066: Print("Запрошенные исторические данные в состоянии обновления.");return(1); case 4067: Print("Ошибка при выполнении торговой операции.");return(1); case 4099: Print("Конец файла.");return(1); case 4100: Print("Ошибка при работе с файлом.");return(1); case 4101: Print("Неправильное имя файла.");return(1); case 4102: Print("Слишком много открытых файлов.");return(1); case 4103: Print("Невозможно открыть файл.");return(1); case 4104: Print("Несовместимый режим доступа к файлу.");return(1); case 4105: Print("Ни один ордер не выбран.");return(1); case 4106: Print("Неизвестный символ.");return(1); case 4107: Print("Неправильный параметр цены для торговой функции.");return(1); case 4108: Print("Неверный номер тикета.");return(1); case 4109: Print("Торговля не разрешена. Необходимо включить опцию Разрешить советнику торговать в свойствах эксперта.");return(1); case 4110: Print("Длинные позиции не разрешены. Необходимо проверить свойства эксперта.");return(1); case 4111: Print("Короткие позиции не разрешены. Необходимо проверить свойства эксперта.");return(1); case 4200: Print("Объект уже существует.");return(1); case 4201: Print("Запрошено неизвестное свойство объекта.");return(1); case 4202: Print("Объект не существует.");return(1); case 4203: Print("Неизвестный тип объекта.");return(1); case 4204: Print("Нет имени объекта.");return(1); case 4205: Print("Ошибка координат объекта.");return(1); case 4206: Print("Не найдено указанное подокно.");return(1); case 4207: Print("Ошибка при работе с объектом.");return(1); return(0); } }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
выручай парни нужен код на закрытия сделки
extern int Period_MA = 200;
bool Fact_Up = true;
bool Fact_Dn = true;
int x;
int xx;
int start()
{
double MA;
MA=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0);
if(OrdersTotal()==0&&Bid<MA&&Fact_Dn==true)
{
OrderSend(Symbol(),OP_SELL,0.1,Ask,3,0,Ask-500*Point,"",0,0,Red);//
Fact_Up = true;//
Fact_Dn = false; //
}
if (OrdersTotal()==1&&Bid<MA-30*Point)
{
// здесь надо чтоб ордер закрылся .
}