Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 555
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Скажите пожалуйста, почему ордера не открываются.
у меня как минимум 4 ошибки
'RSI_uroven1' - undeclared identifier 32.mq4 13 12
'RSI_uroven2' - undeclared identifier 32.mq4 14 12
'RSI' - undeclared identifier 32.mq4 16 24
'pos' - variable already defined 32.mq4 19 12
все октрывает1 2015.01.02 09:00 buy 1 0.10 120.42 0.00 0.00 0.00 10000.00 2 2015.01.02 09:00 sell 2 0.10 120.39 0.00 0.00 0.00 10000.00 3 2016.04.04 13:08 close at stop 2 0.10 111.66 0.00 0.00 3.26 10003.26 4 2016.04.04 13:08 close at stop 1 0.10 111.63 0.00 0.00 -11.85 9991.41Скажите пожалуйста, почему ордера не открываются.
Во первых я вам давал нормальную функцию которая считает кол-во ордеров, а вы по прежнему продолжаете использовать вашу неправильную.
во вторых if(rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2) условие взаимо противоречащие друг другу.
Во первых я вам давал нормальную функцию которая считает кол-во ордеров, а вы по прежнему продолжаете использовать вашу неправильную.
во вторых if(rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2) условие взаимо противоречащие друг другу.
Я буду использовать нормальные функции, это пока черновой вариант, для тестера - я просто копирую блоками, так быстрей.
Если при пересечении RSI любого из уровней ордер открывается, а при пересечении любого другого уровня - закрывается и сразу открывается другой, то противоречия нет.
Или есть?
у меня как минимум 4 ошибки
'RSI_uroven1' - undeclared identifier 32.mq4 13 12
'RSI_uroven2' - undeclared identifier 32.mq4 14 12
'RSI' - undeclared identifier 32.mq4 16 24
'pos' - variable already defined 32.mq4 19 12
Я буду использовать нормальные функции, это пока черновой вариант, для тестера - я просто копирую блоками, так быстрей.
Если при пересечении RSI любого из уровней ордер открывается, а при пересечении любого другого уровня - закрывается и сразу открывается другой, то противоречия нет.
Или есть?
Сами порассуждайте. Допустим uroven1 = 80; rsi = 30; условие rsi > 80 или rsi < 80 получается что (30 > 80 [false] или 30< 80[true] ) такого в природе не бывает. Хоть условие и будет true , так как используется оператор ИЛИ но по сути дела оно бессмысленно.
Вторая часть выражения Допустим uroven2 = 20; rsi = 30 (30 > 20 [true] или 30< 20[false] ) тоже самое.
Вторая часть выражения Допустим uroven2 = 20; rsi = 30 (30 > 20 [true] или 30< 20[false] ) тоже самое.
Когда пишу или, то подразумеваю, что при любом пересечении уровня. ордер откроется. Когда наступит второе условие 30<20[false] , то на этот момент, предыдущий ордер закроется и оно станет истинным.
Если правильно понимаю.
Если вы окажетесь правы - добавлю второй RSI.
Возможно вы меня не поняли. Выражение согласно вашей логики в любом случае будет истинным. У вас написано (больше ИЛИ меньше ИЛИ больше ИЛИ меньше) ==true при любых значениях rsi и uroven1, uroven2.
Если какое те одно из логических выражений входящее в состав всего логического выражения будет истинным то значение всего вашего логического выражения будет также истинным. Погуглите на тему алгебры логики.
Возможно вы меня не поняли. Выражение согласно вашей логики в любом случае будет истинным. У вас написано (больше ИЛИ меньше ИЛИ больше ИЛИ меньше) ==true при любых значениях rsi и uroven1, uroven2.
Если какое те одно из логических выражений входящее в состав всего логического выражения будет истинным то значение всего вашего логического выражения будет также истинным. Погуглите на тему алгебры логики.
Так правильно?
if((rsi>RSI_uroven1 && rsi1<RSI_uroven1) || (rsi<RSI_uroven1 && rsi1>RSI_uroven1) || (rsi>RSI_uroven2 && rsi1<RSI_uroven2) || (rsi<RSI_uroven2 && rsi1<RSI_uroven2))