Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не зная всего ea и того, как вы его используете, мы будем только гадать, что не так. Если предположить, что он выбирает правильный ордер для прохождения этого утверждения.
оно никак не пройдет:
if ((orderType == OP_BUY || orderType == OP_BUYSTOP)) {
если это Op_Sell. Если только вы не используете эту штуку на нескольких графиках одного и того же символа.
Видя, что вы используете спорный цикл while. Возможно, это какая-то форма Rapid Order Maker.
Мое последнее предположение. Выбранный ордер меняется после проверки Ordertype :)
Что-либо еще, я предлагаю, как и Raptor, использовать много операторов печати.
Я напечатал номер билета, и он не совпадает с OrderType().
Если выбранный заказ имеет тип OP_BUY, то будет обработан правильный заказ, но затем в моем вызове OrderModify(...) я передаю OrderTicket() в качестве первого параметра, но это билет другого заказа.
Есть идеи?
Есть идеи?
Может быть, вы пытаетесь изменить ордер, который уже закрыт? Вы не указываете пул, из которого выбираете сделки. ...
MODE_TRADES (по умолчанию) - ордер выбирается из торгового пула (открытые и отложенные ордера),.
MODE_HISTORY - ордер выбирается из пула истории (закрытые и отмененные ордера).
Возможно, вы пытаетесь изменить уже закрытый ордер? Вы не указываете пул, из которого выбираете сделки.
MODE_TRADES (по умолчанию)- ордер выбирается из торгового пула (открытые и отложенные ордера),MODE_HISTORY - ордер выбирается из пула истории (закрытые и отмененные ордера).
Я тоже так пробовал, но это ничего не изменило. Похоже, что я должен хранить все данные выбранного ордера, который я хочу использовать:
int ticket=0;
двойной SL = 0.0;
OrderSelect(cnt, ...);
ticket = OrderTicket();
SL = OrderStoploss();
if (OrderType() == OP_BUY) {
}
...
Почему так происходит? Я не понимаю, что не так в моем коде, чтобы OrderTicket() не соответствовал тому же ордеру, на который ссылается OrderType().
Я напечатал номер билета, и он не совпадает с OrderType().
Если выбранный заказ имеет тип OP_BUY, то будет обработан правильный заказ, но затем в моем вызове OrderModify(...) я передаю OrderTicket() в качестве первого параметра, но это билет другого заказа.
orderType = OrderType()
измените на
int orderType = OrderType(); и удалите исходное объявление.
orderType = OrderType()
измените на
int orderType = OrderType(); и удалите исходное объявление.
С OrderType все в порядке. Именно OrderTicket() не является билетом нужного заказа.
Я бы посоветовал вам выяснить причину проблемы, а не кодировать ее...
Программная инженерия - это решение проблем, так мы учимся и становимся лучше. С субботы я предпринимаю третью попытку кодирования конкретной проблемы, связанной с Fibs, и я почти у цели... Осторожное использование функции Print() очень помогает...
OrderType в порядке. Это OrderTicket(), который не является билетом правильного заказа.
int OrderType = OrderType() не в порядке, одно может скрывать другое (локальные объявления скрывают глобальные без ошибок.) Попробуйте
int orderType = OrderType()