Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Функция isCloseLastPosByStop().
Эта функция возвращает флаг закрытия последней позиции по стопу. Флаг поднят - True - сработал StopLoss. Флаг опущен - False - позиция была закрыта по другой причине. Более точный отбор учитываемых позиций задаётся внешними параметрами:
Функция OpenPosition() для online.
2008.05.20 04:47:41 !OBLD_EUR_S EURUSD,M30: expert function calls are not allowed; 'stdlib'-'ErrorDescription'
Подключил функцию OpenPosition() в советнике на реале, ошибка 4059
Ошибка 4059 означает, что функция недоступна в тестовом режиме. Идентификатор ошибки ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE. Генерируют ошибку следующие функции: MarketInfo, MessageBox, SendFTP, SendMail, WindowIsVisible, WindowFind, WindowHandle.
поменял NULL на Symbol(), исчезла, затем появилось сообщение
2008.05.20 04:47:41 !OBLD_EUR_S EURUSD,M30: expert function calls are not allowed; 'stdlib'-'ErrorDescription'
Функция isCloseLastPosByTake().
Эта функция возвращает флаг закрытия последней позиции по тейку. Флаг поднят - True - сработал TakeProfit. Флаг опущен - False - позиция была закрыта по другой причине. Более точный отбор учитываемых позиций задаётся внешними параметрами:
Функция isLossLastPos().
Эта функция возвращает флаг убыточности последней закрытой позиции. Флаг поднят - True - последняя позиция была закрыта с убытком. Флаг опущен - False - последняя позиция была закрыта либо в ноль, либо с прибылью. Функция не учитывает свопы и комиссию. Отбор позиций задаётся внешними параметрами:
Функция isTradeToDay().
Эта функция возвращает флаг торгов сегодня. Флаг поднят - True - сегодня открывались позиции. Флаг опущен - False - сегодня не открывалось ни одной позиции. Отбор учитываемых позиций задаётся внешними параметрами:
Функция isCloseLastPosByStop().
Эта функция возвращает флаг закрытия последней позиции по стопу. Флаг поднят - True - сработал StopLoss. Флаг опущен - False - позиция была закрыта по другой причине. Более точный отбор учитываемых позиций задаётся внешними параметрами:
().Добрый день . При реализации кода с этой функцией появилась непонятность. Применил я эту функцию вот так:
До этого момента всё работает нормально! При появлении флага, - закрываются все BUY-позиции и удаляются BUY-отложки, как я и задавал! Но потом эксперт, согласно своим сигналам на вход вновь выставляет ордера-отложки. Как и положено.
Но эти ордера тут же удаляются! Видимо, флаг всё ещё висит. А почему он висит? Ведь последние позиции уже не по стоплоссу, а принудительно были закрыты!
Как быть мне в такой ситуации? Чтобы после выполнения команды на закрытие данного алгоритма, эксперт мог нормально выставлять свои дальнейшие ордера?
Как быть мне в такой ситуации? Чтобы после выполнения команды на закрытие, эксперт мог нормально выставлять свои дальнейшие ордера?
Этот вопрос нужно решать в контексте всей задачи, потому что подразумевается не просто отдельное действие, а взаимодействие, причём в определённом порядке. Поэтому опишите задачу полностью. Код не нужен. Просто опишите задачу словами.
Вопрос на разминку. Зачем нужно удалять ордера и снова их ставить? Я считаю, что предпочтительнее модифицировать.
У меня ордера и позиции группируются в массивы по профитам, убыткам, отложкам стоп. и лим. и проч. резонам .
В данном конкретном случае, я закрываю массив позиций BUY, которые открылись стоповыми отложками и суммарно набрали заданный профит. И удаляю оставшиеся, несработавшие стоповые отложки.
//---------------------------------------------------------------------------------------------
Вот сейчас вывел в комментарий функцию - Comment (isCloseLastPosByStop());
Смотрю. Изначально функция =0. После первого же закрытия по стоплоссу Comment (isCloseLastPosByStop()); меняется на единицу, а потом - после принудительного закрытия других позиций, не возвращается к нулевому значению, а так и продолжает оставться единицей!