Автор |
Сообщение |
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
В очередной раз мне понадобилась помощь сего уважаемого сообщества и его Главного.
С одной стороны суть довольно простая, но лично мне моих знаний не хватает. Возможно, в реалиях не так уж все и просто, а может мои знания ужасно низки. Ну ладно, это лирика...
Если в двух словах, то выглядит это примерно так:
Т.е. от каждого экстремум вправо уходит некая кривая "А", которую в данном случае для упрощения возьмем в качестве прямой, выходящей из уровня этого самого экстремума.
Живет кривая до тех пор, пока не будет пробита ценой на определенный уровень N в пунктах.
На графике от максимум может быть три кривых от лоевых экстремумов и три кривых от хаевых экстремумов.
Если у нас, к примеру в случае с лоевыми экстремумами, ниже трех экстремумов, от которых построены кривые есть еще, от которых можно построить кривые, которые будут не пробиты, то они не рисуются, а появляются поочередно, если верхние будут пробиты.
А теперь попробую по-шагово разобрать построение, чтобы стали предельно ясны мои мысли. Но в данном случае для объяснения построения будут идти последовательно вперед. На самом же деле они пойдут, видимо, назад. В последствии станет ясно.
Итак. Открываем график и имеем ситуацию, показанную на следующей картинке. В данном случае, мы считаем что и хай и лой текущей свечи у нас экстремум априори. И отмечаем это дело кружками.
Появляется новая свеча. Ни хай новой свечи, ни лой не пробивают соответствующие области предыдущей свечи. Поэтом от предыдущей свечи, а точнее от её экстремумов начинают строится кривые (как мы указали для упрощения в нашем случае являются прямыми). И также лои и хаи текущей свечи отмечаются кружками, поскольку они не пробиты.
Следующая свеча. Нижняя кривая висит на графике, поскольку она не пробита. А верхняя ушла - хай текущей свечи пробил её.
Идем дальше. Новая свеча. Хай пробивает хай предыдущей, соответственно, кружек красный рисуется только на этой свече. Нижние синии кружки также отрисовываются, поскольку лои не пробиты.
На следующей свече отрисовывается верхняя кривая от хая прошлой свечи. Она висит на графике, поскольку не пробита текущим хаем.
Идем дальше. Синяя последняя точка переходит на текущую свечу. Красная кривая на месте, синяя на месте.
В итоге выглядит это все примерно так.
Синии кружки, как и красные, отмечают экструмумы (возможно односторонние), запущенные с которых кривые не пробиты текущими значениям цены.
Две нижних синих кривых сделаны тускло. По идеи их не должно быть на графике, поскольку мы рисуем только по три кривых с каждой из сторон.
Если у нас идет совокупность рядом стоящих "экстремумов" (кружков), то кривая должна рисоваться от того края, который указывается в настройках. Т.е. в нашем примере - от левого крайнего.
Ну вот как-то так. Надеюсь, я понятно изложил проблему?
Ну и да. В реале, как я понимаю, все это должно рассчитываться в обратном направлении. Ибо при открытии графика на текущий момент, мы уже должны получить картину, подобную той, что представлена на последней картинке. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Еще надо как минимум определение экстремума. Что мы считаем экстремумом? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
000 писал(а): |
Еще надо как минимум определение экстремума. Что мы считаем экстремумом? |
А я и пишу, что изначально, априори, любая последняя свеча является экстремумом, пока не доказано обратное. Т.е. пока не появится новый.
Картинки последовательно давал, как оно одно за одним идет. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Что такое экстремум?????
И еще. Вот твоя картинка. Почему обведенные кружком не считаются экстремумами? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
000 писал(а): |
Что такое экстремум?????
И еще. Вот твоя картинка. Почему обведенные кружком не считаются экстремумами? |
Ну так я же писал, они не учитываются, поскольку прямая, проведенная из них, пробита последующем движением цены вниз |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А пока она не была пробита они учитывались? А потом, когда линии пробили мы откатились назад, на более старые экстремумы? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
000 писал(а): |
А пока она не была пробита они учитывались? А потом, когда линии пробили мы откатились назад, на более старые экстремумы? |
Совершенно верно! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
И на последней картинке, наверное, должен быть синий круг под лоем - я не дорисовал. Ибо на данный момент эта точка является последним непробитым лоем.
Если цена пробивает верхнюю бирюзовую линию, то она перестает существовать. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
EcsUp = H > Ref(H, -1) AND H > Ref(H, 1);
EcsDw = L < Ref(L, -1) AND L < Ref(L, 1);
dcnt = ucnt = dw = up = dl1 = dl2 = dl3 = 0;
for(i = BarCount-1; i > 0; i--)
{
if(i == BarCount - 1)
{
dw = L[i];
up = H[i];
}
if(EcsDw[i])
{
if(dcnt < 3)
{
if(L[i] < dw)
{
if(dcnt == 0)
dl1[i] = L[i];
else if(dcnt == 1)
dl2[i] = L[i];
else if(dcnt == 2)
dl3[i] = L[i];
dcnt++;
}
}
dw = Min( L[i], dw );
}
if(EcsUp[i])
{
if(ucnt < 3)
{
if(H[i] > up)
{
if(ucnt == 0)
ul1[i] = H[i];
else if(ucnt == 1)
ul2[i] = H[i];
else if(ucnt == 2)
ul3[i] = H[i];
ucnt++;
}
}
up = max( H[i], up );
}
if(dcnt == 3 AND ucnt == 3)
i = 0;
}
dl1 = Highest(dl1);
dl1 = IIf(dl1 < 0.01, Null, dl1);
dl2 = Highest(dl2);
dl2 = IIf(dl2 < 0.01, Null, dl2);
dl3 = Highest(dl3);
dl3 = IIf(dl3 < 0.01, Null, dl3);
ul1 = Highest(ul1);
ul1 = IIf(ul1 < 0.01, Null, ul1);
ul2 = Highest(ul2);
ul2 = IIf(ul2 < 0.01, Null, ul2);
ul3 = Highest(ul3);
ul3 = IIf(ul3 < 0.01, Null, ul3);
Plot(C, "", colorBlack, styleCandle);
Plot(dl1, "", colorRed, styleThick);
Plot(dl2, "", colorRed, styleThick);
Plot(dl3, "", colorRed, styleThick);
Plot(ul1, "", colorGreen, styleThick);
Plot(ul2, "", colorGreen, styleThick);
Plot(ul3, "", colorGreen, styleThick);
|
Как понял так и написал. Если не так, то править не буду. Времени нет. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
Спасибо!
Добавил инициализацию ul сверху и заработало нормально |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|