Всем привет! Несколько дней бьюсь над кодом, но безуспешно! Не работает условие. Переменной Z всегда присваивается последнее значение, в данном случае приравнивается к Z=1. Что нужно подправить чтобы условия соблюдались? Кто поможет?
X = MathFloor(PriceTarget); Y = (PriceTarget - X); { if (0 < Y <= 0.03125) {Z = 0.03125;}
if (0.03126 < Y <= 0.0625) {Z = 0.0625;}
if (0.0625 < Y <= 0.09375) {Z = 0.09375;}
if (0.09375 < Y <= 0.125) {Z = 0.125;}
if (0.125 < Y <= 0.15625) {Z = 0.15625;}
if (0.15625 < Y <= 0.1875) {Z = 0.1875;}
if (0.1875 < Y <= 0.21875) {Z = 0.21875;}
if (0.21875 < Y <= 0.25) {Z = 0.25;}
if (0.25 < Y <= 0.28125) {Z = 0.28125;}
if (0.28125 < Y <= 0.3125) {Z = 0.3125;}
if (0.3125 < Y <= 0.34375) {Z = 0.34375;}
if (0.34375 < Y <= 0.375) {Z = 0.375;}
if (0.375 < Y <= 0.40625) {Z = 0.40625;}
if (0.40625 < Y <= 0.4375) {Z = 0.4375;}
if (0.4375 < Y <= 0.46875) {Z = 0.46875;}
if (0.46875 < Y <= 0.5) {Z = 0.5;}
if (0.5 < Y <= 0.53125) {Z = 0.53125;}
if (0.53125 < Y <= 0.5625) {Z = 0.5625;}
if (0.5625 < Y <= 0.59375) {Z = 0.59375;}
if (0.59375 < Y <= 0.625) {Z = 0.625;}
if (0.625 < Y <= 0.65625) {Z = 0.65625;}
if (0.65625 < Y <= 0.6875) {Z = 0.6875;}
if (0.6875 < Y <= 0.71875) {Z = 0.71875;}
if (0.71875 < Y <= 0.75) {Z = 0.75;}
if (0.75 < Y <= 0.78125) {Z = 0.78125;}
if (0.78125 < Y <= 0.8125) {Z = 0.8125;}
if (0.8125 < Y <= 0.84375) {Z = 0.84375;}
if (0.84375 < Y <= 0.875) {Z = 0.875;}
if (0.875 < Y <= 0.90625) {Z = 0.90625;}
if (0.90625 < Y <= 0.9375) {Z = 0.9375;}
if (0.9375 < Y <= 0.96875) {Z = 0.96875;}
if (0.96875 < Y <= 1) {Z = 1;} } W = X + Z;
Ilya12345:
Всем привет! Несколько дней бьюсь над кодом, но безуспешно! Не работает условие. Переменной Z всегда присваивается последнее значение, в данном случае приравнивается к Z=1. Что нужно подправить чтобы условия соблюдались? Кто поможет?
попробуйте вот так
X = MathFloor(PriceTarget);
Y = (PriceTarget - X);
{
if (0 < Y <= 0.03125)
Z = 0.03125;
else if (0.03126 < Y <= 0.0625)
Z = 0.0625;
else if (0.0625 < Y <= 0.09375)
Z = 0.09375;
else if (0.09375 < Y <= 0.125)
Z = 0.125;
else if (0.125 < Y <= 0.15625)
Z = 0.15625;
else if (0.15625 < Y <= 0.1875)
Z = 0.1875;
else if (0.1875 < Y <= 0.21875)
Z = 0.21875;
else if (0.21875 < Y <= 0.25)
Z = 0.25;
elseif (0.25 < Y <= 0.28125)
Z = 0.28125;
else if (0.28125 < Y <= 0.3125)
Z = 0.3125;
else if (0.3125 < Y <= 0.34375)
Z = 0.34375;
else if (0.34375 < Y <= 0.375)
Z = 0.375;
else if (0.375 < Y <= 0.40625)
Z = 0.40625;
else if (0.40625 < Y <= 0.4375)
Z = 0.4375;
else if (0.4375 < Y <= 0.46875)
Z = 0.46875;
elseif (0.46875 < Y <= 0.5)
Z = 0.5;
else if (0.5 < Y <= 0.53125)
Z = 0.53125;
else if (0.53125 < Y <= 0.5625)
Z = 0.5625;
else if (0.5625 < Y <= 0.59375)
Z = 0.59375;
else if (0.59375 < Y <= 0.625)
Z = 0.625;
else if (0.625 < Y <= 0.65625)
Z = 0.65625;
else if (0.65625 < Y <= 0.6875)
Z = 0.6875;
else if (0.6875 < Y <= 0.71875)
Z = 0.71875;
elseif (0.71875 < Y <= 0.75)
Z = 0.75;
else if (0.75 < Y <= 0.78125)
Z = 0.78125;
else if (0.78125 < Y <= 0.8125)
Z = 0.8125;
else if (0.8125 < Y <= 0.84375)
Z = 0.84375;
else if (0.84375 < Y <= 0.875)
Z = 0.875;
else if (0.875 < Y <= 0.90625)
Z = 0.90625;
else if (0.90625 < Y <= 0.9375)
Z = 0.9375;
else if (0.9375 < Y <= 0.96875)
Z = 0.96875;
else if (0.96875 < Y <= 1)
Z = 1;
}
W = X + Z;
Вопрос 1: написано, что они хранятся на жестком диске. Время доступа к ним такое же долгое, как при чтении данных из файла или такое же быстрое, как при чтении обычной переменной?
Вопрос2: Написано, что глобальные переменные могут быть только типа double, а как быть если необходимо хранить данные других типов например int или string?
"Не жалуюсь" является как бы не совсем математическим понятием.
А написано вот здесь:
Там написано, что глобальная переменная сохраняется на жестком диске и храниться определенное время. А во время работы программы ( терминала, индикатора, советника) все переменные находятся в оперативной памяти, т.е. значение Г.П. будет считано с диска только при первом запуске программы.
Temnyj: Там написано, что глобальная переменная сохраняется на жестком диске и храниться определенное время. А во время работы программы ( терминала, индикатора, советника) все переменные находятся в оперативной памяти, т.е. значение Г.П. будет считано с диска только при первом запуске программы.
Любые переменные при выходе из программы (перезагрузке компа и т.д.) теряются. Кроме глобальных переменных, т.к. они хранятся на жестком диске. Но они могут быть только типа double. Как быть, если необходимо хранить переменные других типов (int или string например)? Что тут непонятного?
Любые переменные при выходе из программы (перезагрузке компа и т.д.) теряются. Кроме глобальных переменных, т.к. они хранятся на жестком диске. Но они могут быть только типа double. Как быть, если необходимо хранить переменные других типов (int или string например)? Что тут непонятного?
Есть глобальные переменные уровня текущей программы, а есть глобальные переменные уровня терминала. Первые обнуляются при деинициализации вторые нет. Вы явно говорите про вторые.
Конечно например массив типа double из 100 элементов будет затруднительно запрятать в такие переменные.. Лучше для таких целей вообще их не использовать.
Чтобы хранить данные любых типов используйте файл. Там ограничений нет. И этот способ используется всеми и всегда.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Всем привет! Несколько дней бьюсь над кодом, но безуспешно! Не работает условие. Переменной Z всегда присваивается последнее значение, в данном случае приравнивается к Z=1. Что нужно подправить чтобы условия соблюдались? Кто поможет?
X = MathFloor(PriceTarget);
Y = (PriceTarget - X);
{
if (0 < Y <= 0.03125)
{Z = 0.03125;}
if (0.03126 < Y <= 0.0625)
{Z = 0.0625;}
if (0.0625 < Y <= 0.09375)
{Z = 0.09375;}
if (0.09375 < Y <= 0.125)
{Z = 0.125;}
if (0.125 < Y <= 0.15625)
{Z = 0.15625;}
if (0.15625 < Y <= 0.1875)
{Z = 0.1875;}
if (0.1875 < Y <= 0.21875)
{Z = 0.21875;}
if (0.21875 < Y <= 0.25)
{Z = 0.25;}
if (0.25 < Y <= 0.28125)
{Z = 0.28125;}
if (0.28125 < Y <= 0.3125)
{Z = 0.3125;}
if (0.3125 < Y <= 0.34375)
{Z = 0.34375;}
if (0.34375 < Y <= 0.375)
{Z = 0.375;}
if (0.375 < Y <= 0.40625)
{Z = 0.40625;}
if (0.40625 < Y <= 0.4375)
{Z = 0.4375;}
if (0.4375 < Y <= 0.46875)
{Z = 0.46875;}
if (0.46875 < Y <= 0.5)
{Z = 0.5;}
if (0.5 < Y <= 0.53125)
{Z = 0.53125;}
if (0.53125 < Y <= 0.5625)
{Z = 0.5625;}
if (0.5625 < Y <= 0.59375)
{Z = 0.59375;}
if (0.59375 < Y <= 0.625)
{Z = 0.625;}
if (0.625 < Y <= 0.65625)
{Z = 0.65625;}
if (0.65625 < Y <= 0.6875)
{Z = 0.6875;}
if (0.6875 < Y <= 0.71875)
{Z = 0.71875;}
if (0.71875 < Y <= 0.75)
{Z = 0.75;}
if (0.75 < Y <= 0.78125)
{Z = 0.78125;}
if (0.78125 < Y <= 0.8125)
{Z = 0.8125;}
if (0.8125 < Y <= 0.84375)
{Z = 0.84375;}
if (0.84375 < Y <= 0.875)
{Z = 0.875;}
if (0.875 < Y <= 0.90625)
{Z = 0.90625;}
if (0.90625 < Y <= 0.9375)
{Z = 0.9375;}
if (0.9375 < Y <= 0.96875)
{Z = 0.96875;}
if (0.96875 < Y <= 1)
{Z = 1;}
}
W = X + Z;
Всем привет! Несколько дней бьюсь над кодом, но безуспешно! Не работает условие. Переменной Z всегда присваивается последнее значение, в данном случае приравнивается к Z=1. Что нужно подправить чтобы условия соблюдались? Кто поможет?
попробуйте вот так
перенесено
попробуйте вот так
работает!!!! реальное спасибо!!!т особенно за оперативность!
работает!!!! реальное спасибо!!!т особенно за оперативность!
Где-то так:
У меня два вопроса про глобальные переменные.
Вопрос 1: написано, что они хранятся на жестком диске. Время доступа к ним такое же долгое, как при чтении данных из файла или такое же быстрое, как при чтении обычной переменной?
Вопрос2: Написано, что глобальные переменные могут быть только типа double, а как быть если необходимо хранить данные других типов например int или string?
1. На счет скорости не жалуюсь
2. где написано? все типы могут быть глобальными
"Не жалуюсь" является как бы не совсем математическим понятием.
А написано вот здесь:
"Не жалуюсь" является как бы не совсем математическим понятием.
А написано вот здесь:
Там написано, что глобальная переменная сохраняется на жестком диске и храниться определенное время. А во время работы программы ( терминала, индикатора, советника) все переменные находятся в оперативной памяти, т.е. значение Г.П. будет считано с диска только при первом запуске программы.
Спасибо за информацию. А что по второму вопросу?
Спасибо за информацию. А что по второму вопросу?
Второй вопрос если честно не понял.
Почитайте лучше вот здесь
Второй вопрос если честно не понял.
Почитайте лучше вот здесь
Любые переменные при выходе из программы (перезагрузке компа и т.д.) теряются. Кроме глобальных переменных, т.к. они хранятся на жестком диске. Но они могут быть только типа double. Как быть, если необходимо хранить переменные других типов (int или string например)? Что тут непонятного?
Любые переменные при выходе из программы (перезагрузке компа и т.д.) теряются. Кроме глобальных переменных, т.к. они хранятся на жестком диске. Но они могут быть только типа double. Как быть, если необходимо хранить переменные других типов (int или string например)? Что тут непонятного?
Есть глобальные переменные уровня текущей программы, а есть глобальные переменные уровня терминала. Первые обнуляются при деинициализации вторые нет. Вы явно говорите про вторые.
Конечно например массив типа double из 100 элементов будет затруднительно запрятать в такие переменные.. Лучше для таких целей вообще их не использовать.
Чтобы хранить данные любых типов используйте файл. Там ограничений нет. И этот способ используется всеми и всегда.