Если написать такой код:
То строит вот так:
А если потом попытаться взять угол наклона:
То строит вот так:
Почему он нормально не строит линию, если мы пытаемся взять угол наклона через функцию ObjectGetDouble() ?
В МТ5.
«Прежде чем что-то ненужное продать, нужно что-то ненужное купить».
В вашем случае прежде чем «взять» угол, его нужно назначить. Читайте документацию…
//--- строим трендовую линию по 2-ум точкам if(!ObjectCreate(chart_ID,name,OBJ_TRENDBYANGLE,sub_window,time,price,time2,price2)) { Print(__FUNCTION__, ": не удалось создать линию тренда! Код ошибки = ",GetLastError()); return(false); } //--- изменяем угол наклона трендовой линии; в процессе изменения угла, координата второй //--- точки линии переопределится автоматически в соответствии с новым значением угла ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
«Прежде чем что-то ненужное продать, нужно что-то ненужное купить».
В вашем случае прежде чем «взять» угол, его нужно назначить. Читайте документацию…
Так мне нужно построить линию по двум точкам,
а потом взять ее угол наклона.
«Прежде чем что-то ненужное продать, нужно что-то ненужное купить».
В вашем случае прежде чем «взять» угол, его нужно назначить. Читайте документацию…
В МТ4 этот код работает:
ObjectCreate(0,"name",OBJ_TRENDBYANGLE,0,iTime(NULL,0,10),iHigh(NULL,0,10),iTime(NULL,0,1),iHigh(NULL,0,1)); Alert(ObjectGetDouble(0,"name",OBJPROP_ANGLE));
А в МТ5 отказывается работать.
«Прежде чем что-то ненужное продать, нужно что-то ненужное купить».
В вашем случае прежде чем «взять» угол, его нужно назначить. Читайте документацию…
И еще в справке такое прочитал:
"Для установки наклона линии можно использовать как угол, так и координаты второй точки привязки."
https://docs.mql4.com/ru/constants/objectconstants/enum_object/obj_trendbyangle
И еще в справке такое прочитал:
"Для установки наклона линии можно использовать как угол, так и координаты второй точки привязки."
https://docs.mql4.com/ru/constants/objectconstants/enum_object/obj_trendbyangle
Тогда перед попыткой получить угол убедитесь в наличии трендовой. Если она только-что создана, то её свойства какое-то время недоступны. Попробуйте перед получением угла перерисовать график
void ChartRedraw( long chart_id=0 // идентификатор графика );
Тогда перед попыткой получить угол убедитесь в наличии трендовой. Если она только-что создана, то её свойства какое-то время недоступны. Попробуйте перед получением угла перерисовать график
неа. все равно не работает в МТ5.
ObjectCreate(0,"name",OBJ_TRENDBYANGLE,0,iTime(NULL,0,10),iHigh(NULL,0,10),iTime(NULL,0,1),iHigh(NULL,0,1)); ChartRedraw( 0); Alert(ObjectGetDouble(0,"name",OBJPROP_ANGLE));
неа. все равно не работает в МТ5.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Не строит "Трендовую линию по углу"
Alexey Viktorov, 2021.03.05 16:21
Тогда перед попыткой получить угол убедитесь в наличии трендовой. Если она только-что создана, то её свойства какое-то время недоступны. Попробуйте перед получением угла перерисовать график
void ChartRedraw( long chart_id=0 // идентификатор графика );
- www.mql5.com
все равно не хочет.
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { ObjectCreate(0,"name",OBJ_TRENDBYANGLE,0,iTime(NULL,0,10),iHigh(NULL,0,10),iTime(NULL,0,1),iHigh(NULL,0,1)); ChartRedraw( 0); if (ObjectFind(0,"name")>=0) Alert(ObjectGetDouble(0,"name",OBJPROP_ANGLE)); return(rates_total); }
Если убрать требование угла:
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { ObjectCreate(0,"name",OBJ_TRENDBYANGLE,0,iTime(NULL,0,10),iHigh(NULL,0,10),iTime(NULL,0,1),iHigh(NULL,0,1)); ChartRedraw( 0); if (ObjectFind(0,"name")>=0) Alert(1); return(rates_total); }
то всё нормально строит и выводит Алерт 1.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
То строит вот так:
А если потом попытаться взять угол наклона:
То строит вот так:
Почему он нормально не строит линию, если мы пытаемся взять угол наклона через функцию ObjectGetDouble() ?
Это для МТ5.
В МТ4 все работает нормально.