Скачать MetaTrader 5

Почему не компилирует ?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Benedictwinner
244
Benedictwinner  

Помогите пожалуйста, почему редактор не хочет компилировать и что нужно исправить (учусь)

int init()
{
return(0);
}

int start()
{
double
ABC= 0.0150;
Buy=(Close-Open);
Sell=(Open-Close);
if (Buy>=ABC)
{
Alert("Свеча вверх")
}
else (Sell>=ABC)
{
Alert("Свеча вниз")
}
return(0);
}
int deinit()
{
return(0);

Dezil
955
Dezil  

Ошибка то какая пишется!?

Проверьте парность скобок для начала, а то код как месиво выглядит, могли пропустить

Benedictwinner
244
Benedictwinner  
Не могу понять в чем дело, вот картинка
Dezil
955
Dezil  

ну так все понятно пишет. Переменные то надо определять.

не просто

Buy=(Close-Open); а

double Buy=(Close-Open);

Кстати Close и Open это массивы, т.ч. нужно указывать какой элемент массива (бар) интересует. Например Close[1] возвращает значение close последней закрытой свечи

Benedictwinner
244
Benedictwinner  

Т.е. чтобы все это было ориентированно на последний бар как надо написать ?

double Buy=(Close[1]-Open[1]) ?

Benedictwinner
244
Benedictwinner  
Теперь выдает такую картинку
Aleksandr Chugunov
5044
Aleksandr Chugunov  
Последний бар нулевой
techno
1226
techno  
BGD:

Т.е. чтобы все это было ориентированно на последний бар как надо написать ?

double Buy=(Close[1]-Open[1]) ?

вот как нужно

int start()
{
double
ABC= 0.0150,
Buy=(Close[0]-Open[0]),
Sell=(Open[0]-Close[0]);
if (Buy>=ABC)
{
Alert("Свеча вверх");
}
else 
{
Alert("Свеча вниз");
}
}
Aleksandr Chugunov
5044
Aleksandr Chugunov  
BGD:
Теперь выдает такую картинку
после ELSE не может быть условия
Benedictwinner
244
Benedictwinner  
Techno, Ваш вариант скомпилировался, вот только как тогда сделать чтобы он сообщал если появилась свеча вниз ?Т.е. (open-close)>=0.0150 ?
Benedictwinner
244
Benedictwinner  
Получается так ?
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий