берутся две цены и два времени трендовой линии из них получаем коэффициент наклона линии = разница ценовых координат трендовой / разница в барах двух временых координат, далее находится отклонение в барах от правой точки трендовой линии до бара, на котором произошло пересечение в некоторой ценой (горизонтальная линия), т.е. из цены правой точки трендовой вычитаем цену горизонтальной линии и эту разность делим на полученный ранее коэффициент, т.о.
получаем количество баров через которое произойдет пересечение,
т.е. время пересечения = Time[бар правой точки трендовой - полученное отклонение] - это при условии разница (бар правой точки трендовой - полученное отклонение) больше либо равна нулю, т.е. точка пересечения на истории, а не в будущем..
если разница (бар правой точки трендовой - полученное отклонение) отрицательная, то время вычисляется как
Time[0] + MathAbs(бар правой точки трендовой - полученное отклонение) * Period() * 60
могут быть неточности в 1 бар, из-за того того что пересечения как правило случаются между барами, ну это ты сам уже скорректируй..
алгоритм прост
берутся две цены и два времени трендовой линии из них получаем коэффициент наклона линии = разница ценовых координат трендовой / разница в барах двух временых координат, далее находится отклонение в барах от правой точки трендовой линии до бара, на котором произошло пересечение в некоторой ценой (горизонтальная линия), т.е. из цены правой точки трендовой вычитаем цену горизонтальной линии и эту разность делим на полученный ранее коэффициент, т.о.
получаем количество баров через которое произойдет пересечение,
т.е. время пересечения = Time[бар правой точки трендовой - полученное отклонение] - это при условии разница (бар правой точки трендовой - полученное отклонение) больше либо равна нулю, т.е. точка пересечения на истории, а не в будущем..
если разница (бар правой точки трендовой - полученное отклонение) отрицательная, то время вычисляется как
Time[0] + MathAbs(бар правой точки трендовой - полученное отклонение) * Period() * 60
могут быть неточности в 1 бар, из-за того того что пересечения как правило случаются между барами, ну это ты сам уже скорректируй..
а не проще ли циклом просто узнать бар, на котором цена трендовой линии равна горизонтальному уровню? Потом по бару получается время и ставится вертикальная линия.
Нужно чтобы вертикальная линия рисовалась на пересечении горизонтальной и трендовой. Но непонятно как для вертикальной посичтать время, возможно у времени другой формат в отличии от цены.
Смысл индикатора в том что трендовая линия теряет свою силу (игнорируется) после того как цена прошла двойное расстояние тредовой линии. Где вертикальная линия должна указывать время где цена развернется еще не пробив тредовую линию.
Помогите пожалуста, уже все перепробовал что мог.
В данности имееться горизонтальная линия тоже с одной координатой - уровнем, и трендлиния с 4-мя координатами (время1,уровень1,время2,уровень2).
Те задача состоит в том чтоб найти время когда трендлиния будет иметь уровень горизонтальной линии.
Отсюда Коэф.наклона=(уровень2-уровень1)/(время2-время1)
дальше B=(уровень_горизонтальной_линии-уровень1)/Коэф.наклона
где В--> это количество бар от время1 до точки пересечения,
тут важно В что может быть дробное, поэтому если int b=В; если b!=B то результат находитьсямежду b и b+1.
зы можно просто нормализовать B до 0 знака после запятой, те если B будет стремиться к меньшему то останеться целочисленная часть если к большему то к целочисленной добавиться 1. Такой вариат лучше тем что позволяет обойтись без if()
дело не в if-е, а алгоритме, цикл также будет промазывать, потому что алгоритма не зависит попадет пересечение на баре или нет..
ну для начала промазывает выше указанный метод из-за работы с дробными числами и итоговый номер бара получается дробный. Цикл же работает с целыми(напрямую с номерами баров), поэтому никаких промазываний не будет, это просто исключено.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Нужно чтобы вертикальная линия рисовалась на пересечении горизонтальной и трендовой. Но непонятно как для вертикальной посичтать время, возможно у времени другой формат в отличии от цены.
Смысл индикатора в том что трендовая линия теряет свою силу (игнорируется) после того как цена прошла двойное расстояние тредовой линии. Где вертикальная линия должна указывать время где цена развернется еще не пробив тредовую линию.
Помогите пожалуста, уже все перепробовал что мог.