Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если вам нужно сравнение (A > B) , используйте (A - B) *DIR> 0, чтобы изменить знак сравнения для продажи.
Похоже, у вас есть идея.
Измените и опубликуйте свой код, а я или кто-то другой прокомментирует его.
Привет, GumRai,
Прошло много времени с тех пор, как я размещал здесь обновления, но я работал над кодом и наконец-то закончил его... Больно, когда работаешь по 10 часов в день. Однако у меня есть две основные проблемы. 1) Независимо от того, что я делаю, он генерирует код ошибки: "Unknown ticket XYZ for OrderCloseFunction" и 2) Я сделал сохранение файла (вызвал один USDCAD, другой EURUSD), с разными magicnumbers и т.д., но он все равно берет только одну сделку за раз - и не обрабатывает пары независимо. Фактически, он также создает ошибку "invalid ticket for OrderCloseFunction".
Я попытался погуглить, но безрезультатно. Буду очень признателен, если вы сможете направить меня в правильном направлении. Что я делаю неправильно?
Заранее большое спасибо!
Никогда не используйте OrdersTotal()==0 в качестве условия для входа в сделки
Это означает, что если сделка была открыта вручную, другим советником или тем же советником, прикрепленным к другому графическому символу, может быть открыта только 1 сделка.
У вас есть глобальная переменная BuyTicket, инициализируйте ее в -1
Не перебирайте ордера перед закрытием, в этом нет необходимости.
Теперь, при использовании глобально объявленных переменных для номеров билетов могут возникнуть проблемы, если терминал по какой-то причине будет выключен и перезапущен.
Поэтому объявите новую переменную в глобальной области видимости
Я набирал это быстро, поэтому мог допустить ошибки, но этого достаточно, чтобы дать вам представление.
Спасибо большое за это! Причина, по которой я поместил туда цикл, заключается в том, что я заметил, что когда он закрывает продажу, он не запускает покупку по какой-то причине.
Я сделал необходимые изменения... но что-то все еще кажется неправильным. Теперь он не принимает никаких длинных сделок и выдает код ошибки invalid ticket, а также ошибку OrderClose 4051. Есть ли какие-нибудь предположения о том, что здесь не так?
Странно то, что и в предыдущем коде, и в текущем (только для продажи), он принимал сделки достаточно нормально (если я реализовал его только на одном графике).
Я не думал, что это будет так сложно, хаха! Наверное, я ошибался, когда думал, что это очень простая и понятная вещь... покупать, когда свеча пересекает и открывается выше MA, закрывать и продавать, когда свеча пересекает и опускается ниже MA.
Извините, но я действительно не знаю, что вы пытаетесь сделать.
Не выбирается никакой порядок. Код вообще компилируется?
Здесь else применяется, если if(OrderCloseTime()==0) false
Здесь else применяется, если OrderSelect не работает, что, безусловно, происходит.
Извините, но я действительно не знаю, что вы пытаетесь сделать.
Не выбирается никакой порядок. Код вообще компилируется?
Здесь else применяется, если if(OrderCloseTime()==0) false
Здесь else применяется, если OrderSelect не работает, что, безусловно, происходит.
Извините, это полностью моя ошибка. Я не правильно прочитал/применил ваши предложения; большое спасибо, что указали на них. Здесь я все сделал правильно. Никаких ошибок в отчете не возникает. Единственное, теперь он вводит несколько ордеров на продажу и покупку, что мешает ему закрывать сделки в нужное время.
Edit: Если быть точным, он выходит только на SL и TP, а не когда цена пересекает другую сторону MA. Это как-то связано с bool?
Это не выбирает торговлю, пожалуйста, следуйте примеру, который я вам дал, и делайте все правильно.
Я чувствую себя... очень глупо. lol. Спасибо за находку!!!
1) Осталось две вещи... теперь он создает код ошибки OrderClose 4108. Мне снова выложить код? Он такой же, как и выше, с исправлениями, которые вы указали. Он входит и выходит в соответствии с правилами.
2) И он не входит в короткую позицию сразу после закрытия длинной позиции, как показано на рисунке. Зеленая стрелка вниз показывает, где он должен был войти в короткую позицию. Он взял покупку и закрыл ее с убытком, как только она закрылась ниже желтой МА. Здесь она должна была стать короткой. Как я могу зациклить это?
Большое спасибо GumRai. Честно говоря, без вашей помощи я бы не дошел так близко.
Небольшое изменение, поскольку он проверял закрытие ордера, когда его не было.
Согласно коду, нет причин для открытия продажи сразу после закрытия покупки.
Условия для выхода из покупки не совпадают с условиями для открытия продажи.
Помните, что поскольку вы проверяете только открытие свечи, Close[0] будет значением заявки первого тика, полученного для свечи.
Небольшое изменение, поскольку он проверял закрытие ордера, когда его не было.
Согласно коду, нет причин для открытия продажи сразу после закрытия покупки.
Условия для выхода из покупки не совпадают с условиями для открытия продажи.
Помните, что поскольку вы проверяете только открытие свечи, Close[0] будет значением заявки первого тика, полученного для свечи.
Святой! Вы сделали это! Спасибо еще и еще раз GumRai. Ты лучший.
Не могу сейчас проверить, но как только рынки откроются, я думаю, я смогу использовать это тогда, с другими парами, пока у меня разные magic# на демо.