Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай последние события MQL5.community!
Sergey757
29
Sergey757 2009.10.17 19:47 
В Meta Trader 4 существует графический обьект "трендовая линия по углу". Пробовал использовать его в советнике. В режиме визуализации при тестировании видно как линия меняет наклон с приходом новых тиков, но значение угла в градусах при этом остается неизменным. Кто знает, в чем тут проблема, подскажите пожалуйста.
Evgeniy Gutorov
4719
Evgeniy Gutorov 2009.10.17 20:12  

В данном случае когда приходят тики масштаб экрана меняется и в результатае мы наблюдаем визуальное изменение угла наклона трендовой линии,

Но если использовать фиксированный масштаб то угол наклота трендовой линии останется неизменным поэтом урасхождение визуального и числового значения и заключаються в такой ситуации разном варианте отображения и рапсчета

Sergey757
29
Sergey757 2009.10.18 09:06  
Sergey757 >>:
В Meta Trader 4 существует графический обьект "трендовая линия по углу". Пробовал использовать его в советнике. В режиме визуализации при тестировании видно как линия меняет наклон с приходом новых тиков, но значение угла в градусах при этом остается неизменным. Кто знает, в чем тут проблема, подскажите пожалуйста.

Проверил. Не меняется не только угол, но и сама линия не наклоняется. Вот текст программы советника где используется эта линия и файл кода. Думаю ошибка в терминале.




//+------------------------------------------------------------------+
//| Линия тренда по углу.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("Линия");
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
ObjectDelete("Линия");
datetime V1 = iTime(NULL,0,0); //----последнняя координата времени
datetime V2 = iTime(NULL,0,7); //----первая координата времени
double V3=Low[7]; //---- минимальная цена для первой координаты времени
double V4=Low[0]; //---- минимальная цена для поседней координаты времени
NormalizeDouble(V3,Digits);
NormalizeDouble(V4,Digits);
ObjectCreate("Линия", OBJ_TRENDBYANGLE, 0, V2, V3, V1, V4); //----создание трендовой линии по углу
WindowRedraw();
double W = ObjectGet("Линия", OBJPROP_ANGLE); //----получение значения угла
Alert("Угол равен ",W); //----вывод значения угла в сообщении

//----
return(0);
}
//+------------------------------------------------------------------+
Файлы:
Stanislav Korotky
17351
Stanislav Korotky 2009.10.18 17:13  
Скорее всего, ошибка у Вас в коде и заключается в том, что Вы не проверяете ситуацию на существование объекта. Соответственно, при всех последующих вызовах, кроме первого, функция ObjectCreate не отрабатывает (координаты остаются прежними). Чтобы изменить координаты существующего объекта, вызывайте ObjectSet.
Sergey757
29
Sergey757 2009.10.19 07:04  
marketeer >>:
Скорее всего, ошибка у Вас в коде и заключается в том, что Вы не проверяете ситуацию на существование объекта. Соответственно, при всех последующих вызовах, кроме первого, функция ObjectCreate не отрабатывает (координаты остаются прежними). Чтобы изменить координаты существующего объекта, вызывайте ObjectSet.

Координаты первой точки меняются, не меняются координаты второй точки, отвечающей за наклон. С каждым новым тиком обьект сначала удаляется, а потом создается, поэтому все равно первый вызов или пятый.

Stanislav Korotky
17351
Stanislav Korotky 2009.10.19 09:05  
Да, пропустил этот момент с удалением. Чтобы не копаться в особенностях МТ4, может считать угол самостоятельно, без привязки к визуальным элементам?
Sergey757
29
Sergey757 2009.10.19 11:58  
marketeer >>:
Да, пропустил этот момент с удалением. Чтобы не копаться в особенностях МТ4, может считать угол самостоятельно, без привязки к визуальным элементам?

Какой угол?

Stanislav Korotky
17351
Stanislav Korotky 2009.10.19 15:05  
Тот, который Вы хотите получить от объекта. Визуальный объект для расчета угла при заданном соотношении осей цена/время не обязателно использовать, имхо.
Sergey757
29
Sergey757 2009.10.19 17:44  
marketeer >>:
Тот, который Вы хотите получить от объекта. Визуальный объект для расчета угла при заданном соотношении осей цена/время не обязателно использовать, имхо.

Думаю такой возможности в MT4 нет.

Vladislav Andruschenko
89878
Vladislav Andruschenko 2009.10.19 20:37  

делал такого эксперта на заказ, рисует четко по углу и при изменении масштаба не меняет положение.


за половину стоимости напишу еще раз. :-)

Stanislav Korotky
17351
Stanislav Korotky 2009.10.19 22:22  
Sergey757 >>:

Думаю такой возможности в MT4 нет.

Как это нет? Возможности программирования в МТ4 достаточные для реалазации. В общем, Влад Вам уже ответил.

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