цене закрытия. Нужно добавить условие, чтобы закрытие происходило только в случае когда цена открытия нового бара ушла бы от цены закрытия предыдущего бара на N-ое количество пунктов, неважно в плюсе ордер или в минусе. Помогите кому не сложно. Заранее спасибо.
Есть функция закрытия ордеров по открытию нового бара. Все отлично в ней работает. Проблема в том, что на рынке есть маленькие свечи, у которых цена открытия близка или равна - Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6.
- Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
- Создать функцию по закрытию ордеров по одной валютной паре
if(MathAbs(Open[0]-Close[1])>=Point*X){закрытие}
Dmitry Fedoseev:
Дмитрий, функцию сюда поставить, правильно понимаю? Перестал закрывать ордера вообще...if(OrdersTotal()>0) // Если уже совершена покупка или продажа. { if(MathAbs(Open[0]-Close[1])>=Point*X) {
Александр:
Правильно. Наверно большое значение X. Для проверки поставьте X=0, должно работать как исходный вариант.
Dmitry Fedoseev:
Правильно. Наверно большое значение X. Для проверки поставьте X=0, должно работать как исходный вариант.
Правильно. Наверно большое значение X. Для проверки поставьте X=0, должно работать как исходный вариант.
Поставил Х=0, работает.
if(MathAbs(Open[0]-Close[1])>=Point*X) MathAbs-Возвращает значение по модулю больше 0(тут написано еще что это целое число,а целое число без знаков после запятой, может в этом проблема?!!!) Open[0]-цена открытия текущего бара Close[1]-цена открытия предыдущего бара Point - цена одного пункта Например : (113,60-113,66=|-0,06|>=0,01*Х) = 0,06>=0,01*5 = 0,06>=0,05 Множитель Х по идее должен быть целым числом 1,2,3...15 , но почему то условие с множителем не работает..чего то я не понимаю...
Потому-что цена открытия обычно отличается от цены закрытия предыдущего бара на 1 пункт. Надо что-то с условиями думать. Может цену открытия нового бара сравнивать с ценой открытия бара на котором был открыт ордер, или проверять размер предыдущего бара - MathAbs(Close[1]-Open[1])
Dmitry Fedoseev:
Потому-что цена открытия обычно отличается от цены закрытия предыдущего бара на 1 пункт. Надо что-то с условиями думать. Может цену открытия нового бара сравнивать с ценой открытия бара на котором был открыт ордер, или проверять размер предыдущего бара - MathAbs(Close[1]-Open[1])
Потому-что цена открытия обычно отличается от цены закрытия предыдущего бара на 1 пункт. Надо что-то с условиями думать. Может цену открытия нового бара сравнивать с ценой открытия бара на котором был открыт ордер, или проверять размер предыдущего бара - MathAbs(Close[1]-Open[1])
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))// Если есть новый бар выбираем ордер (он у нас должен быть всего один). { if(MathAbs(Open[1]-Close[1])>=(Point*X))//Условие удаления шума маленьких свечей { if(OrderType()==OP_BUY && MagicNumber) // Если это Buy..Вот так работает, только в открытие добавил функцию, чтобы следующий ордер не открывался, пока текущий не закроется.
if(OrdersTotal()==0) // Если нет открытых ордеров.
Огромное Вам спасибо Дмитрий! Если вопросы были туповаты, прошу прощения, только начинаю...
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь