Общие вопросы по разработке > Как графический объект превратить в индикатор
Как графический объект превратить в индикатор
Уважаемые коллги!
Прошу помочь.
Как графический объект, например луч (канал, дуги и тд.) превратить в индикатор?
Идея такая:
Нарисовал луч в окне графика, сделал его индикатором.
Потом робот, используя его значения, действует по заданному алгоритму.
Такая полу автоматическая торголя.
Спасибо!
Евгений
Прошу помочь.
Как графический объект, например луч (канал, дуги и тд.) превратить в индикатор?
Идея такая:
Нарисовал луч в окне графика, сделал его индикатором.
Потом робот, используя его значения, действует по заданному алгоритму.
Такая полу автоматическая торголя.
Спасибо!
Евгений
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: Как графический объект превратить в индикатор
Идея хорошая, на заметку программистам АД4
Но пока читать граф. объекты, отрисованные вручную, на текущем графике нет возможности из кода индикаторов.
Но пока читать граф. объекты, отрисованные вручную, на текущем графике нет возможности из кода индикаторов.
никогда такого не было и вот опять
Re: Как графический объект превратить в индикатор
Жаль! Тогда может такой алгоритм:
Нарисовал луч, в окне настройки свойства луча скопировал т. 1 и т.2
Они там в таком виде:
Точка № 1 01.09.2017 19:00:00; 57,3922
Точка № 2 12.09.2017 10:00:00; 59,0113
Вызвал индикатор Luch, С такими же параметрами, скопировал-вставил значения.
Можно работать!
Если добавить Точку № 3 (сдвиг) 0,45 будет канал.
Только мне знаний не хватить такой “Luch” написть, может у Вас время найдется)
Спасибо!
Нарисовал луч, в окне настройки свойства луча скопировал т. 1 и т.2
Они там в таком виде:
Точка № 1 01.09.2017 19:00:00; 57,3922
Точка № 2 12.09.2017 10:00:00; 59,0113
Вызвал индикатор Luch, С такими же параметрами, скопировал-вставил значения.
Можно работать!
Если добавить Точку № 3 (сдвиг) 0,45 будет канал.
Только мне знаний не хватить такой “Luch” написть, может у Вас время найдется)
Спасибо!
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: Как графический объект превратить в индикатор
Как программно рисовать луч?
Есть мой индикатор TrendLines. Это самый первый индикатор, который я здесь на сайте разместил.
Есть ещё один мною написанный индикатор AutoChannels, который рисует каналы на основании лучей проведенных через фракталы
Есть индикатор LinRegChannel - канал линейной регрессии Дмитрия (ox)
Есть мой индикатор TrendLines. Это самый первый индикатор, который я здесь на сайте разместил.
Есть ещё один мною написанный индикатор AutoChannels, который рисует каналы на основании лучей проведенных через фракталы
Есть индикатор LinRegChannel - канал линейной регрессии Дмитрия (ox)
никогда такого не было и вот опять
Re: Как графический объект превратить в индикатор
Вы правы, отличные индикаторы!
Но в некоторых случаях, руками точнее получается, см пример из последнего.
Подскажите как “нарисовать” луч через введение параметров двух точек.
Даты, времени, и цены.
Я не програмист, не “догоняю” как работать с функциями даты, времени!
С меня магарыч!
Но в некоторых случаях, руками точнее получается, см пример из последнего.
Подскажите как “нарисовать” луч через введение параметров двух точек.
Даты, времени, и цены.
Я не програмист, не “догоняю” как работать с функциями даты, времени!
С меня магарыч!
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: Как графический объект превратить в индикатор
Evgeny_TK писал(а):Но в некоторых случаях, руками точнее получается
Если алгоритм поиска экстремумов поменять в индикаторе, то будет строить по другим точкам, если он формализуется то это возможно перенести в код, если же он субъективно строится и алгоритма четкого нет то нет, если только нейросети не городить
Evgeny_TK писал(а):Подскажите как “нарисовать” луч через введение параметров двух точек.
Уравнение прямой между двумя точками
В коде индикаторов можно подсмотреть как это делается.
Если мы знаем 2 точки в истории на графике, то между ними можно провести прямую линию до рассчитанного значения третьей точки Y в последней точке истории.
Y = (0 - x1) / (x2 - x1) * (y2 - y1) + y1;
,где
x1, y1 - первая точка (x1 - номер бара в истории, y2 - цена)
x2, y2 - вторая точка (x2 - номер бара в истории, y2 - цена)
Y - наша третья расчетная точка, последняя точка на графике
никогда такого не было и вот опять
Re: Как графический объект превратить в индикатор
Спасибо!
С уравнением прямой проблем нету)
Проблема как значение даты и времени (Точка № 1 01.09.2017 19:00:00; 57,3922)
в номер бара в истории превратить?
И хотелось бы чтоб луч на месте оставался при переходе с одного тайм-фрейма на другой.
Тут видимо ко времени привязка должна быть?
С уравнением прямой проблем нету)
Проблема как значение даты и времени (Точка № 1 01.09.2017 19:00:00; 57,3922)
в номер бара в истории превратить?
И хотелось бы чтоб луч на месте оставался при переходе с одного тайм-фрейма на другой.
Тут видимо ко времени привязка должна быть?
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: Как графический объект превратить в индикатор
Время бара можно узнать через функцию BarTime(N),
где N номер бара в истории
BarTime(N) – время начала бара в момент вызова функции Evaluate(), N - смещение назад от текущего бара.
AsTime(int HH, int MM, int SS) – создание значения времени.
Параметры:
• HH – часы (число);
• MM – минуты (число);
• SS – секунды (число).
Пример. Определение цены открытия дня (для рынков с открытием в 10:00).
BarTime имеет ряд свойств, например: часы, минуты, секунды
см. MSDN TimeSpan()
например вот так можно узнать число часа
индикаторы использующие данную функцию есть в списке пользовательских индикаторов здесь на сайте.
например индикатор BarFrame активно использует BarTime()
где N номер бара в истории
BarTime(N) – время начала бара в момент вызова функции Evaluate(), N - смещение назад от текущего бара.
AsTime(int HH, int MM, int SS) – создание значения времени.
Параметры:
• HH – часы (число);
• MM – минуты (число);
• SS – секунды (число).
Пример. Определение цены открытия дня (для рынков с открытием в 10:00).
Код: Выделить всё
if (BarTime() <= AsTime(10, 00, 00))
A = Input.Open[0];
BarTime имеет ряд свойств, например: часы, минуты, секунды
см. MSDN TimeSpan()
например вот так можно узнать число часа
Код: Выделить всё
if (BarTime().Hours <= 10
A = Input.Open[0];
индикаторы использующие данную функцию есть в списке пользовательских индикаторов здесь на сайте.
например индикатор BarFrame активно использует BarTime()
никогда такого не было и вот опять
Re: Как графический объект превратить в индикатор
А если наоборот зная время и дату узнать сколько боров назад это было?
к примеру N = BarTime() - AsTime(10, 0, 0) сколько боров прошло с открытия сессии. Это корректное выражение?
Можно ли время и дату задавать из настроек индикатора?
например AddParameter("Scan", 300, 1); // сканируемый период
Заменить //сканировать с такой то даты.
к примеру N = BarTime() - AsTime(10, 0, 0) сколько боров прошло с открытия сессии. Это корректное выражение?
Можно ли время и дату задавать из настроек индикатора?
например AddParameter("Scan", 300, 1); // сканируемый период
Заменить //сканировать с такой то даты.
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: Как графический объект превратить в индикатор
Evgeny_TK писал(а):к примеру N = BarTime() - AsTime(10, 0, 0) сколько боров прошло с открытия сессии. Это корректное выражение?
сомневаюсь что оно вернет количество баров.
Evgeny_TK писал(а):Можно ли время и дату задавать из настроек индикатора?
Нет, только числовые значения (на сегодня). Но можно же разбить на часы, минуты, секунды (дни, недели, месяцы).
никогда такого не было и вот опять
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей