Помогите с написанием советника

 
Требуется написать советник на основе индикатора. Инфо вышлю на майл, пишите germeszip@yandex.ru
 
ken4545:
Требуется написать советник на основе индикатора. Инфо вышлю на майл, пишите germeszip@yandex.ru

Здесь быстрее будет
 

Помогите найти ошибку в эксперте, спасибо.

int start()
  {
   int a=(50/100)*50;
   Print("a=",a);
   return(0);
  }
 
OniNePriletyat:

Помогите найти ошибку в эксперте, спасибо.

1. double a

2. 50.0/100

 

Тогда так

int start()
  {
   int a=NormalizeDouble((50/100)*50,0);
   Print("a=",a);
   return(0);
  }
хочу получить число 25, а получаю 0 ???
 
Ты что, издеваешься?
 

не издеваюсь :/

вместо 50/100 поставил 50.0/100 получилось, а если у меня вместо 50.0 стоит переменная типа int, например a=(KANAL/100)*50 то как в этом случае правильно написать?

 
А так не пробовал a=(KANAL/100.0)*50 ?
 
OniNePriletyat:

не издеваюсь :/

вместо 50/100 поставил 50.0/100 получилось, а если у меня вместо 50.0 стоит переменная типа int, например a=(KANAL/100)*50 то как в этом случае правильно написать?

Атак не пробовал- словарь справа от того места где ты ковыряешь код )))

В выражениях языка MQL4 используется только неявное приведение типов. Приоритет типов при преобразовании в порядке возрастания:

int  (bool,color,datetime);
double;
string;

Перед выполнением операций (кроме операций присваивания) происходит преобразование в тип, имеющий наибольший приоритет, а перед операциями присваивания - в целевой тип.

Примеры:

int    i = 1 / 2;     // приведения типов нет, результат: 0
int    i = 1 / 2.0;   // выражение приводится к типу double, затем приводится к целевому типу int, результат: 0
double d = 1.0 / 2.0; // приведения типов нет, результат: 0.5
double d = 1 / 2.0;   // выражение приводится к типу double, который совпадает с целевым типом, результат: 0.5
double d = 1 / 2;     // выражение типа int приводится к целевому типу double, результат: 0.0
string s = 1.0 / 8;   // выражение приводится к типу double, затем приводится к целевому типу string, результат: "0.12500000" (строка, содержащая 10 символов)
string s = NULL;      // константа типа int приводится к целевому типу string, результат: "0" (строка, содержащая один символ)
string s = "Ticket #"+12345; // выражение приводится к типу string, который совпадает с целевым типом, результат: "Ticket #12345"

Приведение типов применяется не только к константам, но и переменным разных типов.

 

уже попробовал, тоже работает :)

тоесть при делении двух чисел с типом int значение после запятой не ращитывается несмотря на то что общее значение выражения равно целому числу?

я думал что округляется до целого числа общее значение выражения.

 
OniNePriletyat:

уже попробовал, тоже работает :)

тоесть при делении двух чисел с типом int значение после запятой не ращитывается несмотря на то что общее значение выражения равно целому числу?

я думал что округляется до целого числа общее значение выражения.


нет. читайте внимательно учебник и документацию.
Причина обращения: