2014.10.27 17:28:45.911 Exp - ValeraY EURCHF,M15: ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2)2)=1.2060989 2014.10.27 17:28:45.911 Exp - ValeraY EURCHF,M15: ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2)1)=1.2060989 2014.10.27 17:28:45.911 Exp - ValeraY EURCHF,M15: ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2)0)=1.2060989Как решить данный вопрос кто в курсе?
Наверное, внимательнее немного надо быть (но могу ошибаться, проверьте пожалуйста):
ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2),0)) ==
ObjectGetValueByTime( 0, InpName, Time2-((Time2-Time1)/2),0) ) ==
ObjectGetValueByTime( 0, InpName, Time2-(0) ) ==
ObjectGetValueByTime( 0, InpName, Time2 )
Если предположение верно то вычисление ObjectGetValueByTime по 0, -1, -2 секундам даст один и тот же результат.
нет Вы ошибаетесь, время указано верно
Time2-((Time2-Time1)/2) - дает середину времени данного отрезка.
грубо говоря между Time2 Time1 = 9 часов, половина отрезка дает 4.5 часа, тут все верно
Вопрос по линиям. Функция ObjectGetValueByTime для канала стандартного отклонения должна выдавать значения по 3 линиям. а по итогу - все линии дают одно и то же значение.
Vladon:
... а по итогу - все линии дают одно и то же значение.
Да, и у меня в МТ4 так же получается по тестовому коду (значения равны средней линии):
Print("Средняя линия канала(0), Time[1] = ",DoubleToString(ObjectGetValueByTime(0,InpName,Time[1],0),_Digits)); Print("Верхняя линия канала(1), Time[1] = ",DoubleToString(ObjectGetValueByTime(0,InpName,Time[1],1),_Digits)); Print("Нижняя линия канала(2), Time[1] = ",DoubleToString(ObjectGetValueByTime(0,InpName,Time[1],2),_Digits));
В МТ5 - значения по трём линиям:
Print("Средняя линия канала(0), time[1] = ",DoubleToString(ObjectGetValueByTime(0,InpName,time[1],0),_Digits)); Print("Верхняя линия канала(1), time[1] = ",DoubleToString(ObjectGetValueByTime(0,InpName,time[1],1),_Digits)); Print("Нижняя линия канала(2), time[1] = ",DoubleToString(ObjectGetValueByTime(0,InpName,time[1],2),_Digits));
![](https://c.mql5.com/3/48/MT5obj__1.png)
Да, и у меня в МТ4 так же получается по тестовому коду (значения равны средней линии):
В МТ5 - значения по трём линиям:
Значит ошибка в мт4 данной функции
Похоже на то.
P./S.: Сейчас поправила выше чуть свой код по МТ4. В порядке эксперимента просто в последний момент пробовала менять нумерацию линий на 1,2,3 вместо 0,1,2 и так в пост сначала и поставила выдержку из кода "не глядя".) Так-то на скрине изначально в соответствии с 0,1,2 одни и те же значения.
Похоже на то.
P./S.: Сейчас поправила выше чуть свой код по МТ4. В порядке эксперимента просто в последний момент пробовала менять нумерацию линий на 1,2,3 вместо 0,1,2 и так в пост сначала и поставила не глядя)))
я пробовал и так, и 123, и 345 Думал мало ли. :-)
Коллеги-экспериментаторы, однако. )))
P./S.: Уточняющую фразу про скрин внесла ещё не видя ваш пост. Отдохнуть похоже мне пора.)Извените, бес-справка попутала (3 параметра дает только):
double ObjectGetValueByTime( |
+ моя невнимательнось ((
если есть координаты средней линии то можно найти отклонение
Расстояние между границами канала и линией регрессии равно величине стандартного отклонения цены закрытия от линии регрессии.
Стандартное отклонение (оценка среднеквадратического отклонения случайной величины x относительно её математического ожидания на основе несмещённой оценки её дисперсии):
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет, решил создать канал и вычислить цену по линиям данного канала,
в справке есть отличный код по этому поводу, его сюда вписывать не буду.
Но при вычислении цены по определенному времени - цена возвращается одна и таже для всех линий.