Здесь как бы два момента:
1. вид, форма обозначения индекса;
2. алгоритм, логика самой индексации (откуда вести расчет, куда какой цикл вложен).
1. вид, форма обозначения индекса;
2. алгоритм, логика самой индексации (откуда вести расчет, куда какой цикл вложен).
Насколько я помню, это уже предлагали...Хотя бы как в Excel-е сделать - подсветку скобочек....
Разработчики скзали, что если и будут делать, то не скоро
Разработчики скзали, что если и будут делать, то не скоро
Я бы сказал по другому - просто пишите правильно структурируемый и форматированный код. Если ставить скобки где хочешь, то потом конечно же выходят вопросы "может подсветку сделать"? К сожалению, большинство кода представлено в отвратительном форматировании.
ps: мы пишем сотни тысяч строк кода и ничего - никаких подсветок и не надо.
ps: мы пишем сотни тысяч строк кода и ничего - никаких подсветок и не надо.
Хотя бы как в Excel-е сделать - подсветку скобочек....
Разработчики скзали, что если и будут делать, то не скоро
Разработчики скзали, что если и будут делать, то не скоро
А может подсветку скобочек сложнее запрограммировать? То есть, Вы хотите, чтобы в реал-тайм при программировании скобки открывались...
Мне пришла в голову более простая идея - подсветка фона или типа Toggle Bookmark, чтобы слева появлялось. Написал немного когда (или много :-)), нажал на кнопочку и на панели слева появились метки, значки, цвет поля изменился? соответственно тому, как расположены циклы. Причем циклы анализируются от вложенного к внешнему. Например так:
http://reniki777.narod.ru/MetaEditor.gif
И необязательно, чтобы это отображалось постоянно во время написания самого кода, а включать по необходимости при проверке ошибок, пусть для этого будет такая специальная фунция Check Cycles (или Show Cycles).
Мне кажется, уж найти для MetaEditor-а пару фигурных скобок в коде не составит труда, а наглядное визуальное отображение циклов очень даже облегчит написание и проверку алгоритма программ. Более того, станет намного удобней знакомиться с кодом другого человека. Открыл код, включил эту фичу, отображающую циклы и понять алгоритм становится очень легко, а иначе запаришься думать, куда какая строка относится и для чего она вообще написана.
Это легко запрограммировать в MetaEditor, а жизнь программеру можно значительно облегчить. А еще я бы добавил затем вообще продвинутую (или двинутую по фазе? :-)) опцию - "скрытие вложенных циклов". Как бы это могло работать? После того, как появились на экране обозначения циклов (указаны на рисунке), то щелкаем по какому-либо обозначению цикла и он оказывается скрыт (код становится прозрачным). Что это дает программисту? Наглядное представление части кода, относящегося к тому или иному конкретному циклу.
http://reniki777.narod.ru/MetaEditor1.gif
К примеру, здесь были скрыты два вложенных цикла и части внешнего большого цикла (не попадающие ни в один из вложенных циклов).
Также добавил бы следующую опцию: "Отображение/скрытие кода" и "Отображение/скрытие комментариев".
Как бы это работало?
Скрытие комментариев (становится невидимым все, что за двойным слэшем //):
http://reniki777.narod.ru/MetaEditor_noComments.gif
Скрытие кода (становится невидимым код, комментарии остаются видимыми):
http://reniki777.narod.ru/MetaEditor_noCode.gif
Причем, при режима невидимости кода или комментариев возможность редактирования кода блокируется, чтобы по ошибке нельзя ничего невидимого изменить.
Что мы получаем в результате? Очень легко становится читать и анализировать код. Ведь язык программирования - это тоже язык. С помощью этого языка мы сообщаем определенную информацию. Чтобы быть понятым и самому хорошо понимать, необходимо уметь различать. Сейчас в MetaEditor-е есть выделение по цвету тех или иных операторов. Но не хватает очень важного - выделения циклов, иначе работает классическая ситуация "Казнить нельзя помиловать" ;-))
Я бы сказал по другому - просто пишите правильно структурируемый и форматированный код.
Абсолютно согласен.
Просто соблюдайте формальные правила - сдвигать вложенный блок на величину табуляции.
В случае, если советник получается большим, разбивайте на несколько коротких функций по 50-100 строк.
Используя эти простые правила я написал советник, содержащий ок. 10 тыс. строк на MQL4 без проблем.
Я бы сказал по другому - просто пишите правильно структурируемый и форматированный код. Если ставить скобки где хочешь, то потом конечно же выходят вопросы "может подсветку сделать"? К сожалению, большинство кода представлено в отвратительном форматировании.
ps: мы пишем сотни тысяч строк кода и ничего - никаких подсветок и не надо.
ps: мы пишем сотни тысяч строк кода и ничего - никаких подсветок и не надо.
Уважаемый Ренат. Есть такое понятие, как Дао :-))
То есть, то самое "большинство" (будь то окружающее нас общество или цена на рынке, против которой не попрешь) и от нас не зависящие явления природы. Мы можем только сами измениться, чтобы лучше соответствовать обстоятельствам. Поэтому, если большинство программистов отвратительно форматируют, то эту ситуацию Вам будет очень сложно изменить - КПД окажется очень низким. В то же самое время можно "приспособиться" к имеющимся обстоятельствам. Конечно, важно различать, где Дао, а где не надо тормозить, иначе успеха в жизни не добьешься. Но вот что касается общей ситуации с большим количеством людей, то там обычно и есть Дао. И если "большинство" фигово программируют, то вот работайте с этим Дао, не стараясь его изменить :-)
Вы никогда не ошибётесь, если скобки будете вставлять парами. Причём закрывающая скобка сразу встанет с нужным отступом. А потом уже внутри скобок писать программу дальше. И точно так же вставлять скобки парами.
Я бы сказал по другому - просто пишите правильно структурируемый и форматированный код.
Абсолютно согласен.
Просто соблюдайте формальные правила - сдвигать вложенный блок на величину табуляции.
В случае, если советник получается большим, разбивайте на несколько коротких функций по 50-100 строк.
Используя эти простые правила я написал советник, содержащий ок. 10 тыс. строк на MQL4 без проблем.
Абсолютно не согласен! ;-))
МетаТрейдер вообще для кого? Для профессиональных программистов, или же в том числе для трейдеров, которые готовы изучить основы программирования для проверки своих торговых идей? Ведь есть большая разница между машинисткой, печатающей быстро слепым методом и первоклассником, который ищет по несколько минут, где находится буква на клавиатуре, чтобы ее нажать, но в итоге при должном желании добивается своей цели. Так нужно ему в этом помочь! Облегчить задачу...
Вы никогда не ошибётесь, если скобки будете вставлять парами. Причём закрывающая скобка сразу встанет с нужным отступом. А потом уже внутри скобок писать программу дальше. И точно так же вставлять скобки парами.
Да ну? НИКОГДА не ошибусь? Спасибо за самый смешной анекдот, который я услышал в этом году! :-)))))
Вы никогда не ошибётесь, если скобки будете вставлять парами. Причём закрывающая скобка сразу встанет с нужным отступом. А потом уже внутри скобок писать программу дальше. И точно так же вставлять скобки парами.
Да ну? НИКОГДА не ошибусь? Спасибо за самый смешной анекдот, который я услышал в этом году! :-)))))
Год только начался.
Уточню: "никогда не ошибётесь с парностью скобок".
Лично я уже лет 15 так поступаю.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И может возникать некоторая путаница, куда что именно относится, какой цикл в какой вложен.
Чтобы этого не происходило, желательно индексировать эти циклы. Можно это делать вручную через слэш //
Например,
{ // 1
{ // 2
{ // 3
{ // 4
{ // 5
} // 5
} // 4
} // 3
} // 2
} // 1
Так вот, необходимо, чтобы MetaEditor производил индексацию этих циклов в автоматическом режиме.
Не знаю, каким образом, не знаю, как обозначать (конечно, лучше в виде степени числа - небольшие цифирки справа сверху над каждой фигурной скобкой, плюс еще цветовая дифференциация). Но допускаю, что количество ошибок при написании кода снизится и возрастет производительность программирования.