Учимся логике - страница 8

 
Виктор!!! С ДР!!! Всего самого!!!
 
poruchik:
Виктор!!! С ДР!!! Всего самого!!!

Спасибо, Хотя у меня уже 8 минут нового дня.
 
Vinin:

Спасибо, Хотя у меня уже 8 минут нового дня.
пожелать крепкого здоровья и стабильности в жизни никогда не поздно, береги себя, Виктор, и здравствуй !
 
Mathemat:
Прошу прощения за офф-топик: drknn, помогает ли тебе логика в укрощении Форы?


  Иногда код помогает делать короче. Когда я увидел в трале Кима такое сокращение, я был просто в восторге. А вообще, логика не говорит где лежит истина, но зато она рассказывает о том, где истины нет - это позволяет сужать и сужать круг поиска и в результате выявить истину как несократимый остаток.

 
drknn:
Mathemat:
Прошу прощения за офф-топик: drknn, помогает ли тебе логика в укрощении Форы?

Иногда код помогает делать короче.

Прокол №2. Логика (логичность) и краткость слабо коррелируют.

Яркий пример прямо из MQL, которым, кстати, многие не брезгуют пользоваться.

if (OrderType() <= 1)

Это не логика -- это убийство оной. Кроме того, потенциальный рассадник неявных ошибок.

 

Условие соблюдается, если это не лимитный/стоповый ордер. А в чем потенциальная ошибка? Просто не видно контекст.

Вообще говоря, для таких переменных типа "перечислений" неравенства пользовать и правда как-то стремно... Лучше явно указывать идентификаторы, чтобы не гадать.

 

Просто одни из граблей, зная про которые жизнь становится намного проще.

А правило звучит просто -- нельзя привязываться к абсолютным значениям констант.

Потенциальная ошибка в том, что

1. теоретически нельзя исключать возможности изменения абсолютных значений констант, т.к. логики нумерации в принципе нет.

2. значение OrderType() если ордер не выбран недокументировано :)

3. условие нетривиально -- т.е. скажем забили на MQL на полгода, вернулись, глянули, не там посмотрели константы и как следствие -- неправильно поняли логику.

____________

а как вам такой оборот?

if (OrderType() % 2)
{
   //...
}
 

Аналогично - бредовое условие, хотя формально оно может быть и правильным на текущий момент.

Мои аргументы были бы примерно такими же: OP_BUYXXX - это мнемонические идентификаторы констант, которые введены не просто так, а для того, чтобы меньше ошибаться. Потому лучше эти идентификаторы и юзать.

 
Да. А условие -- "если ордер на продажу любого типа".
 

Все-таки на продажу?

Так-так. Внутри-то у нас логический операнд, а я его неправильно прочитал. Выходит, что это истина, когда

OrderType() % 2 != 0

- так, что ли?

Ну тогда бред в квадрате. Код нечитаемый :)