меняю объявление intPos[k]на doublePos[k] - выводит 33.00000000, почему intмассивне работает?
eddy: ну единственный логичный смысл его поста в том, что он предположил что я не читал учебник
Если бы читал - то Знал бы - ЧТО
В выражениях языка MQL4 используется только неявное приведение типов. Приоритет типов при преобразовании в порядке возрастания:
int (bool,color,datetime);
double;
string;
Перед выполнением операций (кроме операций присваивания) происходит преобразование в тип, имеющий наибольший приоритет, а перед операциями присваивания - в целевой тип.
Примеры:
int i = 1 / 2; // приведения типов нет, результат: 0
int i = 1 / 2.0; // выражение приводится к типу double, затем приводится к целевому типу int, результат: 0
double d = 1 / 2; // выражение типа int приводится к целевому типу double, результат: 0.0
double d = 1.0 / 2.0; // приведения типов нет, результат: 0.5
double d = 1 / 2.0; // выражение приводится к типу double, который совпадает с целевым типом, результат: 0.5
string s = 1.0 / 8; // выражение приводится к типу double, затем приводится к целевому типу string, результат: "0.12500000" (строка, содержащая 10 символов)
string s = NULL; // константа типа int приводится к целевому типу string, результат: "0" (строка, содержащая один символ)
string s = "Ticket #"+12345; // выражение приводится к типу string, который совпадает с целевым типом, результат: "Ticket #12345"
Приведение типов применяется не только к константам, но и переменным разных типов.
int i = 1 / 2; // приведения типов нет, результат: 0
Он делил int 66 на int 2 ... Так что ... А вот об индикаторных буферах человек сам допёр, а это говорит много о том кому и чего, да и где светит, а кому всего-лишь кичиться своими "знаниями". Не проявляйте так явно своё невежество и грубость в общении с людьми... И вам тогда чего-нибудь засветит.
eddy: можно ли переустановить терминал оставив всё как есть (графики и т.п.), если да то как?
Как при переустановке Винда, сохрани все свои "драгоценные" файлы и переустанавливай МТ4 хоть каждый день.
Если этот вариант покажется сложным (не знаешь, какие файлы сохранить), то попробуй по-другому:
Переименуй папку с сегодняшним МТ4, скажем, в "АРХИВ" и установи новую копию МТ4. Позже из папки "АРХИВ" будешь перетаскивать нужные тебе файлы в новый МТ4 и складывать их в соответствующие папки.
меняю объявление int Pos[k] на double Pos[k] - выводит 33.00000000, почему int массив не работает?
ну единственный логичный смысл его поста в том, что он предположил что я не читал учебник
Если бы читал - то Знал бы - ЧТО
В выражениях языка MQL4 используется только неявное приведение типов. Приоритет типов при преобразовании в порядке возрастания:
Перед выполнением операций (кроме операций присваивания) происходит преобразование в тип, имеющий наибольший приоритет, а перед операциями присваивания - в целевой тип.
Примеры:
int i = 1 / 2; // приведения типов нет, результат: 0 int i = 1 / 2.0; // выражение приводится к типу double, затем приводится к целевому типу int, результат: 0 double d = 1 / 2; // выражение типа int приводится к целевому типу double, результат: 0.0 double d = 1.0 / 2.0; // приведения типов нет, результат: 0.5 double d = 1 / 2.0; // выражение приводится к типу double, который совпадает с целевым типом, результат: 0.5 string s = 1.0 / 8; // выражение приводится к типу double, затем приводится к целевому типу string, результат: "0.12500000" (строка, содержащая 10 символов) string s = NULL; // константа типа int приводится к целевому типу string, результат: "0" (строка, содержащая один символ) string s = "Ticket #"+12345; // выражение приводится к типу string, который совпадает с целевым типом, результат: "Ticket #12345"Приведение типов применяется не только к константам, но и переменным разных типов.
eddy:
стандартный кодебазовский RSI, являющийся отношением средней положительных изменений к средней отрицательных, не то же самое
что настоящий, изначальный RSI, являющийся отношением суммы положительных изменений к сумме отрицательных.
хотя, не буду утверждать правильность моего варианта, хоть я и много лет уже его знаю и понимаю, в отличии от кодебазовского.
это ж основы основ, думаю все кто давно на рынке знают что rsi это sumpos/sumneg*100
причём тут приведение типов, если я int-массиву присваиваю int-значение? ещё и используя int-переменные в расчётах
int i = 1 / 2; // приведения типов нет, результат: 0я делю чётное число на 2. и делю int на int
всё, выяснилось. индикаторный буфер может быть только double
ты ДЕЛИШЬ ИНТ.... а это
int i = 1 / 2; // приведения типов нет, результат: 0можно ли переустановить терминал оставив всё как есть (графики и т.п.), если да то как?
Как при переустановке Винда, сохрани все свои "драгоценные" файлы и переустанавливай МТ4 хоть каждый день.
Если этот вариант покажется сложным (не знаешь, какие файлы сохранить), то попробуй по-другому:
Переименуй папку с сегодняшним МТ4, скажем, в "АРХИВ" и установи новую копию МТ4. Позже из папки "АРХИВ" будешь перетаскивать нужные тебе файлы в новый МТ4 и складывать их в соответствующие папки.
Всё очень просто.