PDA

Просмотр полной версии : Технический анализ – графический подход


moneyman
22.07.2005, 10:27
Некоторые ветки и посты публикуются с сокращениями, оригиналы доступны по соответствующим ссылкам (указаны в постах).

Содержание ветки:
(№ поста / тематика)

1. Ссылки на темы по начертательной геометрии. (http://forum.fxclub.org/showpost.php?p=333664&postcount=2)

2. Критерии отбоя от уровня (http://forum.fxclub.org/showpost.php?p=333665&postcount=3)

3. Плавающие уровни (http://forum.fxclub.org/showpost.php?p=333666&postcount=4)


продолжение следует...

moneyman
22.07.2005, 10:28
1. Ссылки на посты по начертательной геометрии:

Начертательная геометрия или тренд-не тренд, вот в чем
http://forum.fxclub.org/showthread.php?t=16525

Начертательная геометрия
http://forum.fxclub.org/showthread.php?t=16877

Начертательная геометрия – определение экстремумов
http://forum.fxclub.org/showthread.php?t=17152

Начертательная геометрия(2)
http://forum.fxclub.org/showthread.php?t=17120

Формализованая начертательная геометрия
http://forum.fxclub.org/showthread.php?t=24460

Для тех, кто не любит осцилляторы
http://forum.fxclub.org/showthread.php?t=19987

moneyman
22.07.2005, 10:28
2. Критерии отбоя от уровня

Оригинал: http://forum.fxclub.org/showthread.php?t=15085

21.08.2003, 15:15 #4
Valley
Каждый сам формирует себе торговые правила. Есть например некая ситуация. Вы называете её отбой(пробой) для меня это возможно уровень временной консолидации. Дело в том, какие правила вы для себя выбирете.
Если вы определите для себя пробоем считать закрытие дневного(часового, недельного,да как вздумается) периода за линией (+10пунктов или +125 пунктов), так тому и быть. Потом всё равно тестировать на истории, и смотреть насколько это правило корректно.
Может конечно и проще, просто взять за основу чужие правила, но не лучше.

21.08.2003, 23:05 #5
Аналитик Клуба
Разные могут быть критерии отбоя.
Например:
- Проход ценой противоположного экстремума свечи касания. То есть, если максимум свечи коснулся резистенса, то прохождение на какой-то последующей свече минимума свечи касания - уже можно считать разворотом.
- Формирование разворотной свечной формации, с последующим подтверждением особенно.
- отбой от уровня на какое-то количество пунктов, которое юзер полагает достаточно значительным.
- Разворот и сигнал осцилляторов. Например загиб линии стохастика и выход его из критической зоны, если он там находился.
Как тут верно указали - любой критерий должен быть исследован на истории, чтобы Вам было легче верить в него и руководствоваться им на практике.

moneyman
22.07.2005, 10:29
3. Плавающие уровни

Оригинал: http://forum.fxclub.org/showthread.php?t=15850

(формула уровней – MS)
t1:=Input("Величина полупериода",1,1000,6);
a:=If(Ref(L,-t1)=LLV(L,t1*2+1),1,0);
b:=ValueWhen(1,a=1,Ref(L,-t1));
L1:=Min(LLV(L,t1),b);
a1:=If(Ref(H,-t1)=HHV(H,t1*2+1),1,0);
b1:=ValueWhen(1,a1=1,Ref(H,-t1));
H1:=Max(HHV(H,t1),b1);
h1;
l1;
{(H1+L1)/2;}
{L1+(H1-L1)*61.8/100;}
{L1+(H1-L1)*38.2/100;}


25.09.2003, 11:04 #2
Kur
Индикатор рисует уровни по локальным максимумам-минимумам и уровни Фибо между ними. Максимумы-минимумы определяются по принципу фракталов Вильямса. Только у Вильямса полупериод 2 (т.е. от пика по 2 свечи в обе стороны не перебивают пик), а в индикаторе можно задать любой период такого фрактала.
А уж как его использовать - да как угодно. Можно играть на отскок от уровней, можно на пробой.


25.09.2003, 11:31 #3
Alexus
Поставьте полупериод = 1, получите уровни по TD-точкам Демарка, поставьте полупериод=2, получите уровни по фракталам Вильямса. Поставьте на часовом графике полупериод>24, поднимитесь с часового тайм-фрейма на дневной....

Когда будете тестировать в систем-тестере, рекомендую весь индикатор прописать в коде системы, у меня случались небольшие глюки с функцией Fml().

Убедительно рекомендую разобрать по полочкам этот индикатор и понять, что там за что отвечает. Если Вы используете инструмент, Вы должны понимать, как он работает.

С этим индикатором можно запрограммировать всего Вильямса. Если присмотреться к правилам и исключениям(например, правило рычага), то становится все гораздо сложнее, чем кажется на первый взгляд. Но для этого, данный индикатор надо сильно усложнять. Думаю, Вам пока это не надо.

Успехов, Алексей.


25.09.2003, 19:14 #4
Silver_s
Интересная идейка обсуждалась в той ветке и как ее я тогда не заметил.
Тогда еще говорили на счет использования зигзагов для построения таких уровней. ИМХО, очень интересная идея.
Вершины зигзагов это как раз имено то от чего надо вычислять уровни.
Фракталы может и в чем-то и похожи на зигзаги но это немного не то.

И еще одно не стоит зацикливаться только на 38.2% и 61.8%. Очень полезны уровни Фибо которые идут дальше: 161.8% и 261.8%, т.к. это дает уровни остановки очередной волны по тренду, а не только уровни для откатов. Как известно если растянуть уровень 100% до отметки где был 161.8%, то там где был 100% станет 61.8% и.т.д., т.е каждая фибо отметка занимает положение следующей. Другими словами в будущее стоит заглядывать, причем и выше 100% и ниже 0%.

С Зигзагами, ИМХО замечательные результаты получаются и по наглядности и по возможности автоматизации.

Вот такой индикатор:

RA:= Input("reversal amount", 0.01, 13, 2);
hp:=Peak( 1, C, RA);
lp:=Trough(1,C,RA);
len:=hp-lp;

lp+len*0.618;
lp+len*1.618;
lp+len*2.618;

lp+len*0.5;

hp-len*0.618;
hp-len*1.618;
hp-len*2.618;

hp;
lp;
Zig(C ,RA , %)

Для франка, например, так получается (c RA=2%):

Лучше его немного раскрасить. Синие линии это непосредственно уровни предыдущей волны.
Между синими линиями 50% это черная линия, и красные 61.8%, 38.2%.
За пределами канала с обоих сторон две красные линии это 161.8% и 261.8%.
Уровни смотреть во-первых внутри нынешней волны (они определяются по предыдущей), а также уровни несколько волн назад еще не теряют актуальность.
В последние месяцы фибы на франке отработали очень неплохо.
Например его развернули на 4250, а уровня там было всего два 4250 и 4310. И вобще если посмотреть очень много совпадений.


26.09.2003, 12:19 #5
Alexus
Очень интересную идею предложил Silver_s.

Но всех новичков, слабо разбирающихся в премудростях метастока, предупреждаю - ФУНКЦИИ PEAK, TROUGH заглядывают в будущее, как и сам ZIG ZAG. Тестирование систем, основанных на этих функциях, не имеет практического смысла.


26.09.2003, 12:40 #6
Kur
На самом-то деле есть способ протестировать ZigZag без заглядывания в будущее. Нужно писать примерно так:

Trough(1, C, opt1)*(100+opt1)/100

Т.е. мы учитываем, что он формируется с некоторым запаздыванием и учитываем это запаздывание.

26.09.2003, 14:31 #7
Silver_s
Цитата:
Сообщение от Alexus
Но всех новичков, слабо разбирающихся в премудростях метастока, предупреждаю - ФУНКЦИИ PEAK, TROUGH заглядывают в будущее, как и сам ZIG ZAG.

Это надо разбираться куда они заглядывает. На приведенном графике линии уровней которые проведены в текущий момент, на самом деле были сформированы предыдущей волной. Т.е. уровень начинается там где заканчивается волна по которой его считали. В текущей волне обрушения от 1.4250 уровни просчитаны по предыдущей волне подъема к 1.4250 а она уже полностью сформирована.
В метастоке неувязочка может быть на последней волне. Волну идущую вверх Метасток может загнуть на конце даже если RA в обратную сторону еще не пройден, лучше бы он этот апендикс вобще не рисовал. Потом этот апендикс может изчезнуть и волна продолжиться. Вот только этот апендикс может наврать( последняя вершина может быть ложной), а больше никакого заглядывания в будущее у зигзага быть не может.
Если в МТС открываться вниз если достигнута вершина зигзага (на тот момент она должна быть ложной), то это конечно заглядывание в будущее, но это уже совсем другое.
А вершина на 1.4250 уже сформирована оконательно, так как 2% вниз от нее уже пройдено и предпоследняя волна (подъема) уже не изменится и по ней можно вести расчеты.

И кстати стоит смотреть не только на те линии уровней которые в текущий момент приведены, но на те которые 1-2 волны назад были.

И еще одно по поводу зигзагов, для чего бы они не использовались, желательно чтобы они были хорошо положены. В смысле, чтобы они при примерно заданном RA как можно плотнее облегали график. Если не субъективно оценивать, то скажем, Фактор Восстановления Волны (если можно так выразится) должен быть побольше для получающихся волн. ФВВ (фактор восстановления волны) это длина волны поделенная на наибольший откат в обратную сторону во время формирования волны. (или можно сказать это степень трендовости волны,монотонности движения, качество тренда, как угодно). Желательно считать уровни от волн зигзага с хорошим ФВВ.

Если скажем у нас есть 4 треугольника: монотонный безоткатный подьем (с откатиками не больше 10..15pt) на 200pt, затем спад на 190pt, опять подьем на 200 итд.
Если выбрать RA=200, то откаты не будут подцеплены. И получится одна волна на 240pt с плохим ФВВ<2(внутри нее откаты по 190) ; Стоит только RA сделать 190 (вместо 200), и волна распадается на множество мелких волн с очень хорошими ФВВ>10. Стоит использовать именно такое разбиение.
У франка в середине лета например была волна на 10 фигур и 4 оката случались около 2 фигур. Нужно для больших RA разбивать чтоб вся волна целиком ложилась на 10 фигур. А для меньших RA желательно чтоб каждый из 4 выбросов был охвачен волной.
Еще Песавенто в книге о патернах говорил о резонансных числах на графиках, хоть и немного в другом контексте он это упоминал. При определенных числах RA Зигзаг может быть довольно устойчивым, даже если RA увеличить или уменьшить в полтора раза волновое разбиение практически не меняется. Потом при дальнейшем уменьшении в довольно узком диапазоне RA может начаться массовый распад волн. Не стоит выбирать такое неустойчивое RA, для любых целей, и особено для МТС систем.

Вот это например хорошее разбиение по волнам. Возле волн указаны ФВВ. То что ФВВ большие значит и наглаз хорошо волны облегают график и устойчивы по RA.


26.09.2003, 14:50 #8
Alexus
Цитата:
Сообщение от Silver_s

Это надо разбираться куда они заглядывает. На приведенном графике линии уровней которые проведены в текущий момент, на самом деле были сформированы предыдущей волной



Это не так. Последний уровень всегда скачет, как и сам Zig Zag. Я это сегодня на эксперте в реал тайм проверил.

Ну да ладно Я надеюсь, что Вы понимаете, что, говоря новичкам, я никак не Вас имел ввиду. А по Вашему ответу получается, что Вы мне объясняете. Я прекрасно понимаю, что Вы, я и многие другие правильно будут использовать данные функции. Но вот начинающие....да и прочитав Ваш ответ, у них голова пойдет кругом

А про Zig Zag я говорил в контексте работы систем-тестера. И только в том контексте, что нельзя применять в тупую. А если с хитростями всякими, почему нет.

26.09.2003, 16:02 #9
Silver_s
Цитата:
Сообщение от Alexus

Ну да ладно Я надеюсь, что Вы понимаете, что, говоря новичкам, я никак не Вас имел ввиду. А по Вашему ответу получается, что Вы мне объясняете.

Ну это не то чтобы я объяснял, скорее философствовал на тему зигзагов и всего с ними связаного.

Цитата:
Сообщение от Alexus
Это не так. Последний уровень всегда скачет, как и сам Zig Zag. Я это сегодня на эксперте в реал тайм проверил.

А вот это интересно, зигзаг последний действительно скачет, MS просто хвост на конце подрисовывает, даже если откат от волны не был больше RA, но функции Peak и Trough эти ложные развороты не возвращают.
А если написать:
Peak( 1, C, RA);
Trough(1,C,RA);
Что эти линии тоже скачут чтоли? В моем MS они не скачут. Оборваться эти линии могут и начать новую линию. Но если горизонтальная линия сформировалась она уже не двигается, даже если у зигзага ложный хвост подрисовывается.
Специально проверял, последнюю свечку редактировал, когда у зигзага есть ложный хвост на конце они не двигаются, когда хвост достигает RA то они перескакивают.


26.09.2003, 16:14 #10
Alexus
Цитата:
Сообщение от Silver_s
[А если написать:
Peak( 1, C, RA);
Trough(1,C,RA);
Что эти линии тоже скачут чтоли? В моем MS они не скачут. Оборваться эти линии могут и начать новую линию. Но если горизонтальная линия сформировалась она уже не двигается, даже если у зигзага ложный хвост подрисовывается.
Специально проверял, последнюю свечку редактировал, когда у зигзага есть ложный хвост на конце они не двигаются, когда хвост достигает RA то они перескакивают.



СКАЧУТ!

Сегодня выгнал из-за терминала оператора. Нанес эксперта по РАО ЕЭС. Пересечение линии Peak дало ЛОНГ сигнал. Следующая свечка закрылась черной и сигнал исчез. ЭТО ФАКТ

Я протестировал РАО с этими сигналами, результат - АХ! Потом уменьшил % в 10 раз - результат еще лучше. Такого быть не может! Ну, а проверка на реале расставила все точки над I. В принципе, я это и так знал, но никогда не проверял, просто полагался на мнения более опытных товарищей.


26.09.2003, 16:18 #11
Alexus
Думаю, правильно использовать ref(reak(),-1) при функции cross. Но это сильно ухудшает результат, а так как мне такие результаты не интересны, даже не стал думать, правильно это или нет.


26.09.2003, 16:48 #12
Silver_s
А.. кажется я догадываюсь почему скачет.
Если по цене закрытия свечи зигзаг строить то пока свеча не закроется она еще 100 раз успеет побывать и черной и белой. И естействено то волна последняя есть то ее нет.
Я всегда говорил что зигзаги (и подобное: ренки,каги,итд). Лучше строить и тестировать на маленьких таймфреймах (в смысле только свечки) а сам период может быть любым. В идеале вобще по тиковым графикам годовой интервал анализировать .
Просто из за прореживания по времени зигзаги не по экстремумам проходят. Экстремумы в тенях свечей находятся.
На предыдущем графике на дневках вон какой глючек, возле 1.3 несколько лет назад дневная тень на несколько фигур была, а зигзаг ее не взял. В остальных местах вроде достаточно точно.
И вобще это хороший вопрос на засыпку, всякие графические построения лучше по теням проводить или закрытиям.

А RA не стоит делать настолько маленьким что непойманая тень может серьезно результаты изменить, или вобще внутри свечи зигзаг может случиться. Желательно чтоб RA разочков в 10 хотябы был больше чем длина свечей, а лучше в 50 . Брать меньше таймфрейм за тот-же интервал и больше свечек.

А ref(peak(),-1) интересно что возвращает наверно вершину по предыдущей свече, а не предыдущий peak. Желательно такие таймфреймы выбирать чтобы предыдущая свеча от текущей не сильно отличалась по отношению к RA.


26.09.2003, 17:11 #13
Kur
Алексей, перечитай мой последний пост, там написано, как решить проблему "скачут - не скачут". Чтобы не присваивать чужие лавры, сразу скажу, что идея не моя, а Весёлого, мы её ещё полгода назад обкатали, у него даже МТС на этом принципе построена.


26.09.2003, 18:16 #14
Alexus
2Kur.

Юрий, я увидел ту идею, протестирую.

2Silver_s.

Я говорил про закрытие следующей свечи. Любой сигнал в эксперте будет скакать, пока свеча не закрылась. Но беда в том, что свеча закрылась. Сигнал получили. Дождались закрытия следующей свечи. Она перенастроила Peak. Пересечение отменилось и сигнал, полученный свечой раньше - исчез.

По поводу ref, нет, не так. Мы продлеваем линию вперед на один бар. Нас уже не волнует изменение, т.к. сигнал уже не отменится. Я так думаю, но я это не проверял. Просто используем так же, как если бы мы хотели пересечь канал основанный на HHV.

cross(h,ref(hhv(h,10),-1). Если не использовать ref, то пересечения ни когда не будет. Вот по аналогии, я и предложил сделать тоже самое с Peak и Trough.


26.09.2003, 18:20 #15
Silver_s
Цитата:
Trough(1, C, opt1)*(100+opt1)/100

opt1 - Это RA чтоли? Т.е. для 3% зигзагов мы поднимаем минимум на величину RA. Как то не очень понятно к чему это может привести, не вызовет ли это искажение системы что Trough ненастоящий получается.

Есть вроде и другой способ не заглядывать. Заглядывание в будущее ведь из-за чего образуется. Из-за того что возращается Trough или Peeak когда мы еще не отошли в коррекцию на величину RA, т.е. Trough фактически еще не сформирован. А если текущая цена ушла выше Trough, дальше чем на RA, то этот Trough уже абсолютно достоверный.

NotCheatingTrough:= RA<=( С - Trough(1, C, RA) )/ Trough(1, C, RA);
NotCheatingPeak := RA<=( Peak(1,C,RA)-C )/Peak(1,C,RA);

Точно не уверен, но вроде так. Булева переменная содержит true, если Peak или Trough можно доверять. Если false тогда сигнал забраковываем, т.к. неизвестно, может достоверный Peak (если он за границей RA побывал и вернулся), а может и не достоверный.


26.09.2003, 18:45 #16
Kur
Вот элемент системы на ZigZag без всяких заглядываний:

ENTER LONG:

OpPr:= Trough(1, C, opt1)*(100+opt1)/100;

Ref(C,-1)<OpPr AND C>=OpPr

Тут железно нет никакого заглядывания. Можно строить эксперт. Пока ZigZag окончательно не сформировал пик, сигнала не будет. Единственный недостаток, что такой ZigZag строится по ценам закрытия, а не по максимумам-минимумам.


26.09.2003, 19:09 #17
Silver_s

Цитата:
Сообщение от Alexus
2Kur.

...Но беда в том, что свеча закрылась. Сигнал получили. Дождались закрытия следующей свечи. Она перенастроила Peak. Пересечение отменилось и сигнал, полученный свечой раньше - исчез.

Может я недопонял проблему с пересечением но Peak не должен перенастраиваться при его пересечении как это делает HHV. Peak (максимум до отката) перенастраивается очень редко, когда свечка двинулась вниз и произошла просадка на RA.

Вот на первом графике франка, голубые линии это и есть Peak и Trough, на моем MS они никогда не двигаются в реалтайм, если по закрытиям свечей смотреть. Они могут только изредка переходить скачком на новый уровень. Причем желательно такой таймфрейм чтобы переходы не чаще одного раза за 50-100 свечек происходили иначе точность низкая.

Хоть у зигзага последний обрубок двигается но Peak у него считается правильно. Единственная проблема это заглядывание в историю.


26.09.2003, 19:37 #18
Silver_s
Цитата:
Сообщение от Kur
Вот элемент системы на ZigZag без всяких заглядываний:

ENTER LONG:
OpPr:= Trough(1, C, opt1)*(100+opt1)/100;
Ref(C,-1)<OpPr AND C>=OpPr

Понятно, тоже булева переменная срабатывает в момент достоверного формирования Trough.

Но поможет ли это если мы хотим протестировать пробитие предыдущего Trough, после отката вверх на RA? Это разные вещи перезаход на уровень после отката на 20 пип, или на 200, важное различие. Т.е. хотим узнать это повторный штурм сформировавшегося Trough или после незначительного откатика.

Тут как бы единственный критерий. Если мы находимся возле предыдущего Trough и после него был Peak, тогда достоверный Through. Либо проверять был ли описаный выше сигнал после последнего Trough, только как? MS состояния не запоминает, если только через всякие ValueWhen и похожих фичей.

А в MS что-то я не заметил средств определения того что возникло раньше по времени:
Trough(1, C, RA ) или Peak(1,C,RA)


26.09.2003, 20:59 #19
Kur
Цитата:
Сообщение от Silver_s
А в MS что-то я не заметил средств определения того что возникло раньше по времени:
Trough(1, C, RA ) или Peak(1,C,RA)

Для этого есть BarsSince()


27.09.2003, 10:05 #20
Alexus

Цитата:
Сообщение от Silver_s
Причем желательно такой таймфрейм чтобы переходы не чаще одного раза за 50-100 свечек происходили иначе точность низкая.

Хоть у зигзага последний обрубок двигается но Peak у него считается правильно. Единственная проблема это заглядывание в историю.

Возможно. Я специально занизил % Peak, чтобы как можно сильнее сузить канал. И у меня Peak перенастроился одной свечой (надо сказать, что это была очень приличная свеча). Видимо, здесь ошибка. На следующей неделе проверю с более широким каналом, таким, чтобы ни при каких обстоятельствах не происходила перенастройка по одному бару. Хех, я и сам очень хочу, чтобы такой подход работал Это считай, я на халяву получу 3-ю систему по РАО ЕЭС всего с одним ОПТОМ с результатами, достаточными для включения системы в портфель.

МУЖИКИ, ЕСЛИ ЧЕГО ЗНАЕТЕ, ОСТАНОВИТЕ МЕНЯ!

27.09.2003, 11:58 #21
Kur
Цитата:
Сообщение от Alexus
Это считай, я на халяву получу 3-ю систему по РАО ЕЭС всего с одним ОПТОМ с результатами, достаточными для включения системы в портфель.

МУЖИКИ, ЕСЛИ ЧЕГО ЗНАЕТЕ, ОСТАНОВИТЕ МЕНЯ!



Щас остановлю - почему бы не помочь человеку опуститься с неба не землю? Вот то, что вы с Silver'ом вчера обсуждали - есть у меня такая система. Построена на других индикаторах (ZigZag с его Peak и Tough я вообще не использовал), но принцип дествия один в один. Не получится у тебя с одним opt
А вот давай считать:
opt1 - параметр на вход (параметр самого ZigZag в твоём случае)
opt2 - параметр на стоп
opt3 - параметр на тейк-профит
opt4 - параметр на точку безубыточности
opt5 - параметр на трейлинг-стоп (а как без него?)
Вот и получили 5 параметров, как в любой нормальной системе. Даже если ты какие-то параметры возьмёшь с жёстко фиксированными значениями и не будешь оптимизировать, они от этого не перестанут быть параметрами (просто перейдут в разряд неявных).
А вообще-то идея хороша. Я, кроме своей, знаю ещё одну систему, построенную на этом принципе (она, кстати, построена на ZigZag). Тут, конечно, ещё реализация внесёт свой вклад - на одной и той же идее можно добиться сильно отличающихся результатов в зависимости от особенностей реализации.
К этой системе ещё бы хороший указатель тренда, чтобы играть только по тренду, и такая система будет тебя всю жизнь кормить и работать на всех графиках - знай только параметры настраивай.

PS. Кстати, не напоминает ли тебе это идею крестиков-ноликов


27.09.2003, 18:54 #22
000
Хорошо Юрий сказал про ХО. На принципе ZigZag полно систем. NRTR, Ренко, Крауз, Каги. Наверняка еще что то забыл. Все это по сути ZigZag.
__________________
ceterum censeo carthaginem esse delendam


28.09.2003, 10:01 #23
Silver_s
Оказалось что с помощью BarsSince невозможно определить положение Peak если текущая цена ушла выше чем Peak(даже если потом опустилась),
будет работать только если цена не выходила из коридора между Peak и Trough.
Но в MS обнаружилась функция TroughBars, PeakBars которые именно это и делают. А вот чтобы узнать было ли превышение RA, использовать BarsSince уже можно.

Вобщем получается так:
В предыдущей формуле вместо двух строчек:
hp:=Peak( 1, C, RA);
lp:=Trough(1,C,RA);

Надо использовать такое:
isTReal:=TroughBars(1 ,C ,RA ) > BarsSince( Trough(1, C, RA)*(1+RA/100)<=C );
isPReal:=PeakBars(1,C,RA) > BarsSince( Peak(1, C, RA)/(1+RA/100)>=C );
lp:=If(isTReal,Trough(1, C, RA),Trough(2, C, RA));
hp:=If(isPReal,Peak(1, C, RA),Peak(2, C, RA));

Тогда никакого заглядывания в будущее на истории не будет. Рисоваться все будет именно так как оно будет в реалтайме появляться. И ничего прыгать не будет (не считая когда свечка не закрылась).
А первый вариант в реалтайме появлялся как сейчас, а потом перепрыгивал. Уровни конечно остаются теми же но чуть попозже линии начинаются.

Такой график теперь получается:

Но нужно знать как считать проценты, если цена подешевеет на 90% а потом подорожает на 90% вернется ли она к исходному значению?
Есть два метода расчета удешевления на 30%
1) price*(1-0.3)
2) price/(1+0.3)

Я выбрал второй вариант, для вычисления момента формирования вершины, показалось что MS также считает, но точно не уверен.