MQL4 - automated forex trading   /  

Форум

Неизменность угла трендовой линии по углу

К списку тем  | 1 2 Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

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

Бесплатная Groupware для групп разработчиков

Установите систему групповой работы TeamWox и объедините усилия всех разработчиков. Это поможет вашей команде работать быстрее и организованнее. Благодаря TeamWox станет намного проще ставить задачи и контролировать их выполнение.


avatar
4320
forte928 17.10.2009 22:12 

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

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


avatar
7
Sergey757 18.10.2009 11: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);
}
//+------------------------------------------------------------------+









Прикрепленные файлы:
  fkdgiwuhjzimccexsdje.mq4 (2.10 KB)

avatar
550
marketeer 18.10.2009 19:13 
Скорее всего, ошибка у Вас в коде и заключается в том, что Вы не проверяете ситуацию на существование объекта. Соответственно, при всех последующих вызовах, кроме первого, функция ObjectCreate не отрабатывает (координаты остаются прежними). Чтобы изменить координаты существующего объекта, вызывайте ObjectSet.


avatar
7
Sergey757 19.10.2009 09:04 
marketeer >>:
Скорее всего, ошибка у Вас в коде и заключается в том, что Вы не проверяете ситуацию на существование объекта. Соответственно, при всех последующих вызовах, кроме первого, функция ObjectCreate не отрабатывает (координаты остаются прежними). Чтобы изменить координаты существующего объекта, вызывайте ObjectSet.

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


avatar
550
marketeer 19.10.2009 11:05 
Да, пропустил этот момент с удалением. Чтобы не копаться в особенностях МТ4, может считать угол самостоятельно, без привязки к визуальным элементам?

avatar
7
Sergey757 19.10.2009 13:58 
marketeer >>:
Да, пропустил этот момент с удалением. Чтобы не копаться в особенностях МТ4, может считать угол самостоятельно, без привязки к визуальным элементам?

Какой угол?


avatar
550
marketeer 19.10.2009 17:05 
Тот, который Вы хотите получить от объекта. Визуальный объект для расчета угла при заданном соотношении осей цена/время не обязателно использовать, имхо.

avatar
7
Sergey757 19.10.2009 19:44 
marketeer >>:
Тот, который Вы хотите получить от объекта. Визуальный объект для расчета угла при заданном соотношении осей цена/время не обязателно использовать, имхо.

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


avatar
1323
Vladon 19.10.2009 22:37 

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


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


avatar
550
marketeer 20.10.2009 00:22 
Sergey757 >>:

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

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

К списку тем   | 1 2  

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