MMGP logo
Присоединяйтесь к нашему инвестиционному форуму, на котором уже 642,103 пользователей. Чтобы получить доступ ко многим закрытым разделам и начать общение - зарегистрируйтесь прямо сейчас.
Обсуждение синтаксиса, функций и процедур языка MQL. Обмен опытом, своими фрагментами кода. Оптимизация кода. Предложения и заказы на разработку советников.
Первый пост Опции темы
Старый 17.03.2016, 16:04
#1
Интересующийся
 
Пол: Мужской
Регистрация: 17.01.2012
Сообщений: 85
Благодарностей: 11
Помогите с условиями if

Здравствуйте всем.
Пытаюсь написать советник, но застрял на одном моменте. Есть во такой кусок кода:
Код: string Order_Kind;// если последние две свечи вверхif (Open[2] < Open[1] && Close[2] < Close[1]){// то продаем Order_Kind = "SELL";}// если последние две свечи внизif (Open[2] > Open[1] && Close[2] > Close[1]){// то покупаем Order_Kind = "BUY";}В таком виде советник отлично открывает ордера на продажу. (при Order_Kind = "SELL"). Но, при этом, на покупку не открывает ни одного, хотя условия для покупки были и неоднократно.
Если временно убрать блок для SELL, то есть привести к такому виду:
Код: string Order_Kind;// если последние две свечи внизif (Open[2] > Open[1] && Close[2] > Close[1]){// то покупаем Order_Kind = "BUY";}То советник не откроет вообще ни одного ордера за все время теста.
Если в коде оставить только это:
Код: string Order_Kind;Order_Kind = "BUY"То оредра на покупку начинают открываться.
С ордерами на продажу проблем нет, все работает как и задумывалось.
Подскажите пожалуйста, в чем может быть проблема?
pooh вне форума
Старый 17.03.2016, 20:18
#2
 
Регистрация: 09.03.2016
Сообщений: 2
Благодарностей: 0
Re: Помогите с условиями if

Цитата:
Сообщение от pooh Посмотреть сообщение
Здравствуйте всем.
Пытаюсь написать советник, но застрял на одном моменте. Есть во такой кусок кода:
Код: string Order_Kind;// если последние две свечи вверхif (Open[2] < Open[1] && Close[2] < Close[1]){// то продаем Order_Kind = "SELL";}// если последние две свечи внизif (Open[2] > Open[1] && Close[2] > Close[1]){// то покупаем Order_Kind = "BUY";}В таком виде советник отлично открывает ордера на продажу. (при Order_Kind = "SELL"). Но, при этом, на покупку не открывает ни одного, хотя условия для покупки были и неоднократно.
Если временно убрать блок для SELL, то есть привести к такому виду:
Код: string Order_Kind;// если последние две свечи внизif (Open[2] > Open[1] && Close[2] > Close[1]){// то покупаем Order_Kind = "BUY";}То советник не откроет вообще ни одного ордера за все время теста.
Если в коде оставить только это:
Код: string Order_Kind;Order_Kind = "BUY"То оредра на покупку начинают открываться.
С ордерами на продажу проблем нет, все работает как и задумывалось.
Подскажите пожалуйста, в чем может быть проблема?
Если имеется ввиду, что последние две свечи закрылись с повышением, то код будет выглядеть так:
if (Open[1] < Close[1] && Open[2] < Close[2])
и с понижением соответственно:
if (Open[1] > Close[1] && Open[2] > Close[2])
Wsevolod вне форума
Войдите, чтобы оставить комментарий.
Быстрый переход