//закрытие по тикету, переделайте под свойif(OrderSelect(MyTicketBuy, SELECT_BY_TICKET)==true)
{
close=OrderClose(MyTicketBuy,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
if(close<0){if(Fun_Error(GetLastError())==1)return;}
}
if(OrderSelect(MyTicketSell, SELECT_BY_TICKET)==true)
{
close=OrderClose(MyTicketSell,OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,clrBlue);
if(close<0){if(Fun_Error(GetLastError())==1)return;}
}
//+-------------- ФУНКЦИЯ ОБРАБОТКИ ОШИБОК ---------------------------------+int Fun_Error(int Error)
{ switch(Error)
{
case0: return (0);
case1: Print("Попытка изменить уже установленные значения такими же значениями.");return(1);
case2: Print("Общая ошибка. Прекратить все попытки торговых операций до выяснения обстоятельств.");return(0);
case3: Print("В торговую функцию переданы неправильные параметры.");return(1);
case4: Print("Торговый сервер занят.Пробуем ещё раз..");Sleep(3000);return(1);
case5: Print("Старая версия клиентского терминала.");return(0);
case6: Print("Нет связи с торговым сервером.");return(1);
case7: Print("Недостаточно прав.");return(1);
case8: Print("Слишком частые запросы.");return(1);
case9: Print("Недопустимая операция нарушающая функционирование сервера.");return(1);
case64: Print("Счет заблокирован. Необходимо прекратить все попытки торговых операций.");return(0);
case65: Print("Неправильный номер счета.");return(1);
case128: Print("Истек срок ожидания совершения сделки.");return(1);
case129: Print("Неправильная цена bid или ask, возможно, ненормализованная цена.");return(1);
case130: Print("Слишком близкие стопы или неправильно рассчитанные или ненормализованные цены в стопах (или в цене открытия отложенного ордера).");return(1);
case131: Print("Неправильный объем, ошибка в грануляции объема.");return(1);
case132: Print("Рынок закрыт.");return(1);
case133: Print("Торговля запрещена.");return(0);
case134: Print("Недостаточно денег для совершения операции.");return(0);
case135: Print("Цена изменилась. Пробуем ещё раз..");RefreshRates();return(1);
case136: Print("Нет цен. Ждём новый тик..");
while(RefreshRates()==false)// До нового тикаSleep(1);
return(1);
case137: Print("Брокер занят.Пробуем ещё раз..");Sleep(3000);return(1);
case138: Print("Запрошенная цена устарела, либо перепутаны bid и ask.");return(1);
case139: Print("Ордер заблокирован и уже обрабатывается.");return(1);
case140: Print("Разрешена только покупка. Повторять операцию SELL нельзя.");return(1);
case141: Print("Слишком много запросов.");return(1);
case142: Print("Ордер поставлен в очередь.");return(1);
case143: Print("Ордер принят дилером к исполнению.");return(1);
case144: Print("Ордер аннулирован самим клиентом при ручном подтверждении сделки.");return(1);
case145: Print("Модификация запрещена, так как ордер слишком близок к рынку и заблокирован из-за возможного скорого исполнения.");return(1);
case146: Print("Подсистема торговли занята.Пробуем ещё..");Sleep(500);return(1);
case147: Print("Использование даты истечения ордера запрещено брокером.");return(1);
case148: Print("Количество открытых и отложенных ордеров достигло предела, установленного брокером.");return(1);
case149: Print("Попытка открыть противоположную позицию к уже существующей в случае, если хеджирование запрещено.");return(1);
case4000: return (0);
case4001: Print("Неправильный указатель функции.");return(1);
case4002: Print("Индекс массива - вне диапазона.");return(1);
case4003: Print("Нет памяти для стека функций.");return(1);
case4004: Print("Переполнение стека после рекурсивного вызова.");return(1);
case4005: Print("На стеке нет памяти для передачи параметров.");return(1);
case4006: Print("Нет памяти для строкового параметра.");return(1);
case4007: Print("Нет памяти для временной строки.");return(1);
case4008: Print("Неинициализированная строка.");return(1);
case4009: Print("Неинициализированная строка в массиве.");return(1);
case4010: Print("Нет памяти для строкового массива.");return(1);
case4011: Print("Слишком длинная строка.");return(1);
case4012: Print("Остаток от деления на ноль.");return(1);
case4013: Print("Деление на ноль.");return(1);
case4014: Print("Неизвестная команда.");return(1);
case4015: Print("Неправильный переход.");return(1);
case4016: Print("Неинициализированный массив.");return(1);
case4017: Print("Вызовы DLL не разрешены.");return(1);
case4018: Print("Невозможно загрузить библиотеку.");return(1);
case4019: Print("Невозможно вызвать функцию.");return(1);
case4020: Print("Вызовы внешних библиотечных функций не разрешены.");return(1);
case4021: Print("Недостаточно памяти для строки, возвращаемой из функции.");return(1);
case4022: Print("Система занята.");return(1);
case4050: Print("Неправильное количество параметров функции.");return(1);
case4051: Print("Недопустимое значение параметра функции.");return(1);
case4052: Print("Внутренняя ошибка строковой функции.");return(1);
case4053: Print("Ошибка массива.");return(1);
case4054: Print("Неправильное использование массива-таймсерии.");return(1);
case4055: Print("Ошибка пользовательского индикатора.");return(1);
case4056: Print("Массивы несовместимы.");return(1);
case4057: Print("Ошибка обработки глобальныех переменных.");return(1);
case4058: Print("Глобальная переменная не обнаружена.");return(1);
case4059: Print("Функция не разрешена в тестовом режиме.");return(1);
case4060: Print("Функция не подтверждена.");return(1);
case4061: Print("Ошибка отправки почты.");return(1);
case4062: Print("Ожидается параметр типа string.");return(1);
case4063: Print("Ожидается параметр типа integer.");return(1);
case4064: Print("Ожидается параметр типа double.");return(1);
case4065: Print("В качестве параметра ожидается массив.");return(1);
case4066: Print("Запрошенные исторические данные в состоянии обновления.");return(1);
case4067: Print("Ошибка при выполнении торговой операции.");return(1);
case4099: Print("Конец файла.");return(1);
case4100: Print("Ошибка при работе с файлом.");return(1);
case4101: Print("Неправильное имя файла.");return(1);
case4102: Print("Слишком много открытых файлов.");return(1);
case4103: Print("Невозможно открыть файл.");return(1);
case4104: Print("Несовместимый режим доступа к файлу.");return(1);
case4105: Print("Ни один ордер не выбран.");return(1);
case4106: Print("Неизвестный символ.");return(1);
case4107: Print("Неправильный параметр цены для торговой функции.");return(1);
case4108: Print("Неверный номер тикета.");return(1);
case4109: Print("Торговля не разрешена. Необходимо включить опцию Разрешить советнику торговать в свойствах эксперта.");return(1);
case4110: Print("Длинные позиции не разрешены. Необходимо проверить свойства эксперта.");return(1);
case4111: Print("Короткие позиции не разрешены. Необходимо проверить свойства эксперта.");return(1);
case4200: Print("Объект уже существует.");return(1);
case4201: Print("Запрошено неизвестное свойство объекта.");return(1);
case4202: Print("Объект не существует.");return(1);
case4203: Print("Неизвестный тип объекта.");return(1);
case4204: Print("Нет имени объекта.");return(1);
case4205: Print("Ошибка координат объекта.");return(1);
case4206: Print("Не найдено указанное подокно.");return(1);
case4207: Print("Ошибка при работе с объектом.");return(1);
return(0);
}
return(0);
}
가장 간단한 방법은 주문을 마감해야 하는 시간을 댓글 필드에 작성하는 것입니다.
댓글에 희망이 없습니다. 이 필드를 변경(자체 데이터 추가)할 뿐만 아니라 이전에 입력한 정보를 단순히 지우는 DC가 있습니다.
그럼 뭐가 문제야?
당신의 선택은 저에게 큰 도움이 되었습니다. 고맙습니다.
존재 시점까지, 당신은 모든 최초 공개 주문과 마지막 주문 모두에서 선택할 수 있습니다. 동시에 우리는 티켓과 존재 시간(초)을 기억합니다. 예를 들어
귀하의 버전도 작동합니다. 고맙습니다.
나는 첫 번째 옵션을 작동하도록 남겨 둘 것입니다))
도움을 주셔서 감사합니다. 이익))
댓글에 희망이 없습니다. 이 필드를 변경(자체 데이터 추가)할 뿐만 아니라 이전에 입력한 정보를 단순히 지우는 DC가 있습니다.
근거가 없음 - 이 DC의 목록을 제공하십시오
근거가 없음 - 이 DC의 목록을 제공하십시오
당신의 선택은 저에게 큰 도움이 되었습니다. 고맙습니다.
귀하의 버전도 작동합니다. 고맙습니다.
나는 첫 번째 옵션을 작동하도록 남겨 둘 것입니다))
도움을 주셔서 감사합니다. 이익))
단 하나의 질문: 티켓이 알려진 경우
티켓으로 주문을 선택할 수 있다면 왜 나중에 사이클을 찾으세요?
그리고 주문 유형을 확인하는 대신 이 경우 OrderCloseTime()의 마감 시간을 확인하는 것이 좋습니다. 만일에 갑자기 stop/take에 의해 이미 마감된 경우를 대비하여.
단 하나의 질문: 티켓이 알려진 경우
티켓으로 주문을 선택할 수 있다면 왜 나중에 사이클을 찾으세요?
그리고 주문 유형을 확인하는 대신 이 경우 OrderCloseTime()의 마감 시간을 확인하는 것이 좋습니다. 만일에 갑자기 stop/take에 의해 이미 마감된 경우를 대비하여.
나는 나탈리아가 그런 식으로 그것을 원한다고 생각했습니다. 티켓을 찾는 데 당황했지만 분명히 모든 카드가 공개되지는 않았습니다.
)
당신의 선택은 저에게 큰 도움이 되었습니다. 고맙습니다.
귀하의 버전도 작동합니다. 고맙습니다.
나는 첫 번째 옵션을 작동하도록 남겨 둘 것입니다))
도움을 주셔서 감사합니다. 이익))
위의 공정한 의견. 티켓이 이미 알려진 경우 모든 주문을 다시 검토해야 하는 이유는 무엇입니까? 또한 함수에서:
닫으려는 주문과 전혀 다른 볼륨을 얻을 위험이 있습니다. 결국 OrderLots() 는 선택한 주문 을 참조하는 반면 티켓은 완전히 다른 주문을 참조합니다. 다음과 같이 하는 것이 좋습니다.
위의 공정한 의견. 티켓이 이미 알려진 경우 모든 주문을 다시 검토해야 하는 이유는 무엇입니까? 또한 함수에서:
닫으려는 주문과 전혀 다른 볼륨을 얻을 위험이 있습니다. 결국 OrderLots() 는 선택한 주문 을 참조하는 반면 티켓은 완전히 다른 주문을 참조합니다. 다음과 같이 하는 것이 좋습니다.
그래서 전혀 닫히지 않습니다.
그래서 전혀 닫히지 않습니다.
양해를 구합니다. 라인:
다음과 같이 다시 작성해야 합니다.