Проблема с отрисовкой паралельных линий. - страница 2

 

делал также так: начальный бар - конечный бар, потом умножал на период и на 60 - в секундах, и Это расстояние прибавлял к первой точки времени, ну чтобы типо получить линию одной длины, с прайсом точно также, от основной линии - прайс начальный - прайс конечный.


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

 

всмыцсле? 2 программистам заказал одно и тоже?

 
Vladon:
номера баров не получится потому что - линии должны отрисовываться на графике в зоне, где нет баров, поэтому не получится там нарисовать линию по барам, но я понял что ты имеешь ввиду, я сделал нормализацию секунд, думал поможет но не на всех линиях, и не всегда, т.е. иногда пралельные иногда нет, как исправить не знаю ..... но насчет пропущенного времени это 100 % наверно истина, буду думать в этом направлении.

Вычисления по барам, то что справа - получатся отрицательные номера баров, а когда рисовать, тогда бары перводить во время. Желаю удачи! Работы пресс!

 
Vladon:
номера баров не получится потому что - линии должны отрисовываться на графике в зоне, где нет баров, поэтому не получится там нарисовать линию по барам, но я понял что ты имеешь ввиду, я сделал нормализацию секунд, думал поможет но не на всех линиях, и не всегда, т.е. иногда пралельные иногда нет, как исправить не знаю ..... но насчет пропущенного времени это 100 % наверно истина, буду думать в этом направлении.
Нужно посчитать в барах, а затем перевести во время
 
сенкс, буду думать
 
BoraBo:

Может так :





time0UP_22 = iTime(Symbol(), Periodd, iBarShift(Symbol(), Periodd, time0UP_22, false)); Надо подумать над этим.
 

Был ещё где-то с фибо линиями, если найду прикреплю

перетаскивай мышью

ЗЫ: так это он и есть )

 
Vladon:

делал также так: начальный бар - конечный бар, потом умножал на период и на 60 - в секундах, и Это расстояние прибавлял к первой точки времени, ну чтобы типо получить линию одной длины, с прайсом точно также, от основной линии - прайс начальный - прайс конечный.


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


ИМХО - лучше всего "плясать" от уравнения прямой A1*x+B1*y+C1 = 0; А1,В1,С1 - легко считаются по 4-м точкам, задающим 1-ю (базовую) линию.

Потом - уравнение прямой, параллельной заданной и проходящей через заданную точку (X0,Y0): пусть А2*х+В2*у+С2=0.

A2 = A1,
B2 = B1,

C2 = -(A2*X0+B2*Y0);

Тогда для второй линии одна точка X0, Y0. Координаты второй :

X2 = X0+CrdShift;

Y2 = ((-1.)/B2)*(A2*X2+C2), если B2!=0

или

Y2 = Y0+CrdShift*Point;
X2 = ((-1)/A2)*(B2*Y2+C2), если В2==0 && А2!=0

2-е процедуры, тип переменных дабл. А там подавайте, хоть время, хоть номера баров вместо Х координаты.

Удачи.

 
CrdShift это что?
 
Vladon:
CrdShift это что?

Для того, чтобы нарисовать линию нужны 2-е точки. Координаты первой известны - это та, через которую проходит линия. Координаты второй можно задать произвольно, но наложить условие, чтобы она лежала на прямой. В данном случае координаты второй точки заданы смещением относительно первой - можно задавать любой сдвиг. А реальные координаты вычисляются через уравнение прямой А2,В2,С2. У меня по умолчанию сдвиг 10.

Удачи.

ЗЫ могу функции запостить, если надо... тока "выдрать" придется...

Причина обращения: