Тут два варианта - или учиться самому хотя бы азам программирования и разобраться с кодом, или отдать код опытному программисту для правки.
А так даже непонятно, что там должно быть. Три функции без названий, без вызова, нет основных функций кода MQL, нет переменных, ни глобальных, ни локальных.
Тут ясновидение не поможет, только вуду и магия крови, наверное...
Тут два варианта - или учиться самому хотя бы азам программирования и разобраться с кодом, или отдать код опытному программисту для правки.
А так даже непонятно, что там должно быть. Три функции без названий, без вызова, нет основных функций кода MQL, нет переменных, ни глобальных, ни локальных.
Тут ясновидение не поможет, только вуду и магия крови, наверное...
Исправил код, чтобы компилятор не ругался. В остальном, претензии непонятны, вся "писанина" вроде на своих местах.
Какие именно переменные вам кажутся настолько "не на своём месте", что их необходимо "вынести" куда-то ещё?
Исправил код, чтобы компилятор не ругался. В остальном, претензии непонятны, вся "писанина" вроде на своих местах.
Какие именно переменные вам кажутся настолько "не на своём месте", что их необходимо "вынести" куда-то ещё?
В том коде который я выложил в строке 419 - это моя попытка заменить выражение переменной. Дело в том что тут нету ещё одной логики которую хочу дописать, ниже её пример в строке 440.
В двух словах что хочу сделать. В этом индикаторе есть 6 горизонтальных линий. (то что я заменил переменной, это одна из них - линия sell) А ниже дописан фрагмент в строке 440 (там выражение которое соответствует линии Sell2), туда же ещё нужно дописать остальные 4 - LineDown, buy, buy2 LineUp. И так в каждом блоке. Всего блоков 6. ( LineDown, sell2, sell, buy, buy2, LineUp). Конечно можно одно и тоже написать кучу, раз, но разве нельзя заменить 6 линий переменными, что бы использовать в дальнейшем только названия переменных ?
Всё можно, только для этого надо полностью переписать индикатор с нуля.
Ясно, ну переписать индикатор с нуля я точно не смогу, так что получается вопрос закрыт)
Спасибо за помощь! Буду тогда заниматься "писаниной"))
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте! Поможете новичку разобраться с переменными?
Код построен примерно в таком виде:
{
описание логики1
…
if (выражение1 + выражение3)
…
}
{
описание логики 2
…
if (выражение2 + выражение1)
…
}
{
описание логики 3
…
if (выражение 3+выражение1)
…
}
Вопрос, как сократить писанину, заменить все выражения переменными, вынести все переменные в начало и сделать их общими для всего кода?
Если в начале кода выношу выражение и заменяю переменной, допустим выражение 1, то код их не видит. (int выражение1 = а;)
Если добавляю перед всем блоком, (чуть выше логики1) int start() и заключаю весь блок {.. return;}, то пишет ошибку – «function can be declared only in the global scope»
Если поднимаю начало команды int start() выше, то по другим командам (OnInit, Session_Check, OnCalculate) начинает возникать такая же ошибка.
Скажите пожалуйста, как правильно сделать?
Если выносить «за скобки» все повторяющиеся выражения, количество переменных и длинна выражений имеет значение? (программист, который писал этот код, так не делал, может быть так делать нельзя?)