Автор |
Сообщение |
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
000 писал(а): |
Например типа так. |
Почти так. Получается, что значения цены перезаписываются каждую свечку. Как тогда найти начальную точку (свечу) от куда можно будет рисовать линию от максимума до минимума и наоборот? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Можешь даже сделать SelectedValue() и выбирать ее руками на графике. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
000 писал(а): |
Можешь даже сделать SelectedValue() и выбирать ее руками на графике. |
В ручную не вариант, после 2-3 дней просмотра истории минутного графика и глаза будут в кучу, там уже не до анализа... Должно же быть какое-то решение. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Тогда не знаю. Мне не известно по каким критериям надо выбирать эту свечу. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
000 писал(а): |
Тогда не знаю. Мне не известно по каким критериям надо выбирать эту свечу. |
Мда, следствие зашло в тупик. Вот если бы создать свой массив данных, заполнить данными только отмеченных свечек и оперировать уже с ними... Но, насколько я понимаю, это не реализовать. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Почему? Не вижу проблем. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
000 писал(а): |
Почему? Не вижу проблем. |
Как это сделать?
В принципе тогда останется по определенным критериям убирать лишнее и оставлять только самый минимум, т.е. свечи непосредственно участвовавшие в формировании максимумов и минимумов, и уже по ним стоить линии. Так?
Код: |
Begin = 0;
for(i = 0; i < BarCount; i++)
{
if(Begin == 0)
{
if(i == 1)
{
Begin = 1;
Hi[i] = H[i];
Lo[i] = L[i];
}
}
else
{
if(L[i] < Lo[i-1] OR H[i] > Hi[i-1])
{
Hi[i] = H[i];
Lo[i] = L[i];
Hi2[i] = H[i];
Lo2[i] = L[i];
}
else
{
Hi[i] = Hi[i-1];
Lo[i] = Lo[i-1];
Hi2[i] = H[i];
Lo2[i] = L[i];
}
}
}
X1 = Hi==Hi2;
X2 = Lo==Lo2;
Plot(C, "", colorBlack, styleCandle);
Plot(Hi, "Hi", colorGreen);
//Plot(Hi2, "Hi2", colorGreen);
Plot(Lo, "Lo", colorRed);
//Plot(Lo2, "Lo2", colorRed);
PlotShapes((X1 & X2)*shapeSmallDownTriangle, colorGreen, 0, H);
PlotShapes((X1 & X2)*shapeSmallUpTriangle, colorRed, 0, L);
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот так.
Код: |
Hi = Lo = 0;
j = 0;
for(i = 0; i < BarCount; i++)
{
if(myCandle)
{
Hi[j] = H[i];
Lo[j] = L[i];
j++;
}
}
|
Ума не приложу как тебе это поможет и нафига это вообще нужно.
Ты лучше напиши четко свою задачу. И не забудь описание критериев твоей некой свечки от которой ведется отсчет. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
Тогда начну с самого начала.
1. Определяем краткосрочные минимумы и максимумы:
1.1. Рисунок 1. Краткосрочный минимум – это минимум с более высоким минимумом слева от свечи и равный, либо с более высоким минимумом справа от свечи. Максимум правой свечи должен быть выше предыдущего максимума.
Код: |
Получится так:
LMin = L < Ref(L,-1) & L <= Ref(L,1) & H < Ref(H,1);
Или так:
LMin = L >= Ref(L,-1) & H > Ref(H,-1) & Ref(L,-1) < Ref(L,-2);
|
1.2. Рисунок 2. Краткосрочный максимум – это максимум с более низким максимумом слева от свечи и равный, либо с более низким максимумом справа от свечи. Минимум правой свечи должен быть ниже предыдущего минимума.
Код: |
Получится так:
LMax = H > Ref(H,-1) & H >= Ref(H,1) & L > Ref(L,1);
Или так:
LMax = L < Ref(L,-1) & H >= Ref(H,-1) & Ref(H,-1) > Ref(H,-2);
|
2. Соединяем краткосрочные минимумы и максимумы:
Рисунок 3. Минимумы и максимумы чередуются на графике. Строим линию от одной точки до другой.
3. Проблемы построения:
Рисунок 4.
Проблема со свечами, которые идут внутри диапазона некой большей свечи. И главная проблема, как ее вычислить. Тут вижу два варианта:
1 Вариант. Запоминать значение каждой свечи (Х) и сравнивать последующие свечи с этим значением. Условием перезаписи Х будет выход (выше или ниже) из запомненных значений.
По рисунку 5 получается:
Bar1 – это первая свеча;
Bar2 – значение High выше, чем у Bar1, все значения Х перезаписываем новыми Bar2;
Bar3 – находится в диапазоне значений Bar2, Х – Bar2, без изменений;
Bar4 – Low ниже, чем у Bar3, но не ниже Х (Bar2), Х не перезаписывается;
Bar6 – Low ниже, чем Х (Bar2), теперь Х – Bar6.
И по идее теперь останется построить минимумы и максимумы по свечам Х, т.е. сравнивая между собой значения Bar1, Bar2 и Bar6.
2 Вариант. С заглядыванием в будущее, т.е. текущую свечку сравниваем с последующей.
Как это выглядит (с циклами у меня совсем плохо, поэтому так):
Код: |
LMin = H < Ref(H,1) & L <= Ref(L,1) & H< Ref(H,2) & L <= Ref(L,2) … & H < Ref(H,100) & L <= Ref(L,100)
LMax = L > Ref(L,1) & H >= Ref(H,1) & L > Ref(L,2) & H >= Ref(H,2) … & L > Ref(L,100) & H >= Ref(H,100)
|
В данном случае пытаемся найти свечку, которая бы выходила за текущий ценовой диапазон. Затем сравнить текущие значение со значением найденной свечи. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ок. Вроде понятно но есть вопросы.
Цитата: |
2. Соединяем краткосрочные минимумы и максимумы:
Рисунок 3. Минимумы и максимумы чередуются на графике. Строим линию от одной точки до другой.
|
А если идет несколько LMin и между ними нет LMax тогда что делаем? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
И еще. Поясни вот это
Цитата: |
3. Проблемы построения:
Рисунок 4.
Проблема со свечами, которые идут внутри диапазона некой большей свечи. И главная проблема, как ее вычислить. Тут вижу два варианта:
|
Какая в этом проблема? Почему надо исключать экстремумы которые не вылезают за прошлый диаппазон? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
000 писал(а): |
Ок. Вроде понятно но есть вопросы.
Цитата: |
2. Соединяем краткосрочные минимумы и максимумы:
Рисунок 3. Минимумы и максимумы чередуются на графике. Строим линию от одной точки до другой.
|
А если идет несколько LMin и между ними нет LMax тогда что делаем? |
Игнорируем. Если сформировался LMin, то следующим должен сформироваться LMax. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
000 писал(а): |
И еще. Поясни вот это
Цитата: |
3. Проблемы построения:
Рисунок 4.
Проблема со свечами, которые идут внутри диапазона некой большей свечи. И главная проблема, как ее вычислить. Тут вижу два варианта:
|
Какая в этом проблема? Почему надо исключать экстремумы которые не вылезают за прошлый диаппазон? |
Они не должны участвовать в формировании минимумов и максимумов, т.к. искажают картину. Получается, что цена находится в определенном диапазоне - в боковике, т.е. нужно дождаться выхода цены из боковика, а затем уже делать вывод об окончании движения и формировании минимума либо максимума.
В двух словах: движение и боковики отдельно друг от друга. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Наверное тогда надо сформулировать по другому.
Назовем LMax и LMin точками реверса.
Тогда очередная точка реверса должна установить новый min/max с момента прошлого реверса. Может быть так? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
|
Посмотреть профиль Отправить личное сообщение |
|
|