Закрытие всех ордеров - страница 2

 
drknn:

IgorM, впервые вижу, чтоб кто-то конструировал условне операторы так, как это делаете Вы.

for() if() if() ... if() {}

Это вообще, разрешено и если да, то где об этом почитать? Если разрешено, то по логике вещей, эти ифы должны соединяться между собой коньъюнкцией (оператором AND).


Я такую конструкцию сам не использую, НО тут отдельный случай -это ф-ции я нашел где-то на форуме, их писал И.Ким, но ввиду того, что мне код понравился и им часто стал пользоваться я сделал эти ф-ции компактнее, чтобы не мешали взгляду когда свой код правишь

насчет AND или & - почитайте по форуму, где-то есть инфа, что в МТ4 нет сокращенной проверки условий, поэтому условие в операторе if() будет вначале проверенно и выполнено всё что в скобках, а затем лишь принято решение о выполнении/невыполнении команды за if() ;

поэтому рекомендую, после того как код правильно составлен и проверен, все логические опреаторы && или || которые ВЫ комбинируете в операторе if() разбивать по возможности на составные

if(){
   if(){
       if();
   }
}

ну а про фигурные скобки, ничего сложного, все языки программирования прекрасно "знают", что один оператор после оператора условия или цикла всегда будет выполнен, поэтому, после провверки логических ошибок, можете аккуратно убирать парные скобки, приведенный выше в этом посте код можно записать без скобок так:

if()if()if();

если первый if() не будет выполнен, то все последующие if тоже не будут выполнены, не забывайте, что разделителем команд является ;

ЗЫ: с оператором for() можно также делать: for()for(); = => for(){for();}

 
drknn:


В таком коде трудно искать потреявшуюся скобку.


а обычно я применяю стандартное форматирование текста, примерно так: http://s1.ipicture.ru/uploads/20110106/Qu66TT6U.png
 

IgorM:

а обычно я применяю стандартное форматирование текста, примерно так: http://s1.ipicture.ru/uploads/20110106/Qu66TT6U.png


А, ну то же самое, только я влез в настройки редактора и поставил табуляцию в два символа - по-умолчанию она = 3. Двух вполне достаточно и при большой вложенности код не размазывается по горизонтали :)

P.S.

Про скбки то как раз всё понятно, но я пользоваться таким их отсутствием не хочу - уж больно хорошо знаю, насколько трудно искать логическую ошибку в коде, когда компилятор говорит, что с синтакисом всё в порядке. Так что пусть у меня лучше стоит лишняя скобка, лишь бы небыло ущерба читаемости кода. Оно пока код состоит из сотни строк, всё просто, как только переваливает за пару-тройку тысяч, ситуация меняется.

 
drknn:


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

а вот уже давно используемые и хорошо проверенные функции, тут да, я немного хитрю

ЗЫ: я привык код на функции разбивать и потом из законченных блоков/функций составлять логически завершенный код, бывает правда и в лоб пишу задачи, но редко, хотя ради красоты и понятности, могу некоторые ф-ции "разобрать" в основной код - в общем все зависит от времени и желания ;)

 
IgorM:


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

а вот уже давно используемые и хорошо проверенные функции, тут да, я немного хитрю

ЗЫ: я привык код на функции разбивать и потом из законченных блоков/функций составлять логически завершенный код, бывает правда и в лоб пишу задачи, но редко, хотя ради красоты и понятности, могу некоторые ф-ции "разобрать" в основной код - в общем все зависит от времени и желания ;)


Ага - у меня уже несколько версий своих библиотек поднакопилось - средства перепроцессора - хорошая штука, согласен. И DLL-ки делать приходилось - иной раз задача просто не вписывеется в возможности MQL4. А, иной раз чего-то как закажут-закажут, что ни какой сборник функций не подходит - приходиться всё рауками делать с нуля :)))
Причина обращения: