[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1057

 
eddy:

меняю объявление int Pos[k] на double Pos[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-массиву присваиваю int-значение? ещё и используя int-переменные в расчётах
 

eddy:

стандартный кодебазовский RSI, являющийся отношением средней положительных изменений к средней отрицательных, не то же самое

что настоящий, изначальный RSI, являющийся отношением суммы положительных изменений к сумме отрицательных.

хотя, не буду утверждать правильность моего варианта, хоть я и много лет уже его знаю и понимаю, в отличии от кодебазовского.

это ж основы основ, думаю все кто давно на рынке знают что rsi это sumpos/sumneg*100

>
 
eddy:

причём тут приведение типов, если я int-массиву присваиваю int-значение? ещё и используя int-переменные в расчётах

  Alert(Pos[k],"=("+vol+"-"+telo+")/2"); 
//выводит 0=(72-6)/2
ты ДЕЛИШЬ ИНТ.... а это
int    i = 1 / 2;     // приведения типов нет, результат: 0
 

я делю чётное число на 2. и делю int на int

всё, выяснилось. индикаторный буфер может быть только double

 
можно ли переустановить терминал оставив всё как есть (графики и т.п.), если да то как?
 
мучайся... - ничего тебе не светит
 
мне уже объяснили хорошие люди)
 
Aleksander:

ты ДЕЛИШЬ ИНТ.... а это

int    i = 1 / 2;     // приведения типов нет, результат: 0
Он делил int 66 на int 2 ... Так что ... А вот об индикаторных буферах человек сам допёр, а это говорит много о том кому и чего, да и где светит, а кому всего-лишь кичиться своими "знаниями". Не проявляйте так явно своё невежество и грубость в общении с людьми... И вам тогда чего-нибудь засветит.
 
eddy:
можно ли переустановить терминал оставив всё как есть (графики и т.п.), если да то как?


Как при переустановке Винда, сохрани все свои "драгоценные" файлы и переустанавливай МТ4 хоть каждый день.

Если этот вариант покажется сложным (не знаешь, какие файлы сохранить), то попробуй по-другому:

Переименуй папку с сегодняшним МТ4, скажем, в "АРХИВ" и установи новую копию МТ4. Позже из папки "АРХИВ" будешь перетаскивать нужные тебе файлы в новый МТ4 и складывать их в соответствующие папки.

Всё очень просто.

Причина обращения: