[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 228
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всё зависит от того, будет ли данная переменная доступна всем функциям советника (ну... не всем, но некоторым - точно). Тогда - глобальная.
Ежели используется только в одной функции - тогда локальная.
Вопрос из разряда "в какую воду цветы поставить, в простую или подслащенную" ... пока гадали, цветы веником стали, в баню... :))
:о)
Эти правила я, как бы, понял, но у меня на практике не работали ордера и пока искал проблему, перепробовав кучу вариантов и переместив переменные в глобальные, как статик, все заработало, хотя ф-ция одна. Правда я до сих пор не уверен, что из за этого. Короче я запутался и поэтому решил посоветоваться здесь. Вы не сазали про статик переменные. Может нужно их такими делать? Я не пойму, при повторном входе в старт (на тике, например) переменные обнуляются? А статик нет? Если да, то Мои тикеты становятся нулем?
PS Блин, занялся программированием вплотную, пишу грааль....., если травы хватит...., походу, я тут теперь завсегдатай :))
Если в Вашем ДЦ спреды плавающие, то лучше в функцию старт советника сунуть автоопределение размера спреда и проскальзывание ставить, например в три спреда. Тогда проскальзывание станет динамически меняющимся.
Попробуйте для начала сделать слиппадж зависимым от волатильности. На спокойном рынке он будет минимальным, на быстром - раздвигаться шире.
Боюсь при работе на H1 трудно будет вычислить волатильность для единичной свечки, нужно подумать как ее вычислить.
:о)
Эту теорию я, как бы, понял, но у меня на практике не работали ордера и пока искал проблему, перепробовав кучу вариантов и переместив переменные в глобальные, как статик, все заработало, хотя ф-ция одна. Правда я до сих пор не уверен, что из за этого. Короче я запутался и поэтому решил посоветоваться здесь. Вы не сазали про статик переменные. Может нужно их такими делать? Я не пойму, при повторном входе в старт (на тике, например) переменные обнуляются? А статик нет? Если да, то Мои тикеты становятся нулем?
PS Блин, занялся программированием вплотную, пишу грааль....., если травы хватит...., походу, я тут теперь завсегдатай :))
Локальная переменная - переменная, объявленная внутри какой-либо функции. Областью видимости локальных переменных является тело функции, в которой эта переменная объявлена. Локальная переменная может быть проинициализирована константой или выражением, соответствующими ее типу.
Глобальная переменная - переменная, объявленная за пределами всех функций. Областью видимости глобальных переменных является вся программа. Глобальная переменная не локализована ни на каком уровне. Глобальная переменная может быть проинициализирована только соответствующей ее типу константой (но не выражением). Инициализация глобальных переменных производится однократно перед началом исполнения специальных функций.
Если управление в программе находится внутри какой-либо функции, то значения локальных переменных, объявленных в другой функции не доступны. Значение любой глобальной переменной доступно из любой специальной и пользовательской функции.
Статическая переменнаяНа физическом уровне локальные переменные представлены во временной области памяти соответствующей функции. Существует способ расположить переменную, объявленную внутри функции, в постоянной памяти программы. Для этого при объявлении переменной перед типом переменной необходимо указать модификатор static:
Статические переменные инициализируются однократно. Каждая статическая переменная может быть проинициализирована соответствующей ее типу константой (в отличие от простой локальной переменной, которая может быть проинициализирована любым выражением). Если явной инициализации нет, то статическая переменная инициализируется нулем. Статические переменные хранятся в постоянной области памяти программы, их значения не теряются при выходе из функции. Вместе с тем, статические переменные имеют ограничение, свойственное локальным переменным - областью видимости статической переменной остаётся функция, внутри которой эта переменная объявлена, в отличие от глобальных переменных, значение которых доступно из любого места программы.https://book.mql4.com/ru/variables/types
Это все вроде как понятно. Получается, если придумана статическая переменная, которой значения не теряются при выходе из функции, то всех остальных переменных мы теряем значения на каждом тике? (если СТАРТ вызывается у меня на каждом тике)
На каждом тике переинициализируются локальные переменные.
Не парьтесь - используйте глобальные для хранения тикетов и забудьте. Или сделайте массив (учёт ордеров). Массивы все статические по умолчанию.
Боюсь при работе на H1 трудно будет вычислить волатильность для единичной свечки, нужно подумать как ее вычислить.
Всем привет!
Подскажите пожалуйста мне вот в током вопросе:
Пытаюсь в программном коде добиться точного получения значения открытия(Open[i]) или закрытия(Close[i]) валютной пары EURUSD с пятизначным значением после нуля, а в ответ постоянно получаю округленное значение!