Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пиши программы на заказ. Зарабатывай с помощью сервиса Фриланс!
Boris
3902
Boris 2013.02.08 09:26 

Ни один из операторов не подходит. Может, есть какой-нибудь другой способ без if(A || B || C || D || E) Action;?

Прошу модераторов не отправлять в общую ветку вопрошающих ввиду важности вопроса, над которым думаю и не могу найти более рационального решения! Спасибо!

Avals
3154
Avals 2013.02.08 09:31  

можно просто в булевских переменных, например

X=A || B;

X=X || C || D; 

X=X || E;

if (X) Action;

Boris
3902
Boris 2013.02.08 09:42  
Avals:

можно просто в булевских переменных, например

X=A || B;

X=X || C || D; 

X=X || E;

if (X) Action;

Спасибо за отклик! И эти bool'и могут быть достаточно сложные, включающие много параметров, зависящих от постоянно меняющихся условий рынка?
Avals
3154
Avals 2013.02.08 09:45  
borilunad:
Спасибо за отклик! И эти bool'и могут быть достаточно сложные, зависящие от постоянно меняющихся условий рынка?


конечно

Boris
3902
Boris 2013.02.08 09:49  
Avals:


конечно

Ещё раз спасибо! Сейчас попробую!

Посмотрел в Доке и увидел:

bool a = true;
bool b = false;
bool c = 1;

а = (isCloseLastPosByTake() == True && Profit > ProClo / clo - GetProfitCloseLastPosByTake() * clo);
Разве можно булёвой а дать это значение?

Victor Nikolaev
Модератор
14366
Victor Nikolaev 2013.02.08 10:16  
borilunad:

Ещё раз спасибо! Сейчас попробую!

Посмотрел в Доке и увидел:


Можно, только скорость работы сильно падает
Boris
3902
Boris 2013.02.08 10:18  
Vinin:

Можно, только скорость работы сильно падает
А на скорости не отражаются эти "или" в if()?
Victor Nikolaev
Модератор
14366
Victor Nikolaev 2013.02.08 10:35  
borilunad:
А на скорости не отражаются эти "или" в if()?

Отражаются конечно. Проверять надо. 
Boris
3902
Boris 2013.02.08 10:55  
Vinin:

Отражаются конечно. Проверять надо. 
Но если нет возможности найти что-то быстрое, тогда остаюсь с if()! Я уже заметно уменьшил торможение, убрав во всех функциях лишние проверки для меня. Большое спасибо за внимание! Рад буду узнать и проверить все возможные варианты!
TarasBY
1739
TarasBY 2013.02.08 11:53  

Можно ещё таким способом оптимизировать вычисления:

    bool M = false;

    if (A) M = true; else if (B) M = true; else if (C) M = true; else if (D) M = true; else if (E) M = true;
    if (M) Action;
TarasBY
1739
TarasBY 2013.02.08 11:59  

или таким:

    bool M = true;

    if (!A) if (!B) if (!C) if (!D) if (!E) M = false;
    if (M) Action; 
/ /12345678...10
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий