Автор |
Сообщение |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
SetBarsRequired(sbrAll, sbrAll);
LMin = L < Ref(L,-1) & L <= Ref(L,1) & H < Ref(H,1);
LMax = H > Ref(H,-1) & H >= Ref(H,1) & L > Ref(L,1);
dir = 1;
extrP = 0;
j = 1;
for( i = 1; i<BarCount; i++ )
{
if( i == 1 )
extrP = H[i];
if( dir == 1 )
{
if( LMin[i] )
{
if( L[i] <= extrP ) // новый минимум
{
LMin[j] = 0;
j = i;
}
else
LMin[i] = 0;
}
else if( LMax[i] ) // реверс
{
dir = -1;
extrP = H[i];
j = i;
}
else
if( L[i] < extrP )
extrP = L[i];
}
else
{
if( LMax[i] )
{
if( H[i] >= extrP ) // новый максимум
{
LMax[j] = 0;
j = i;
}
else
LMax[i] = 0;
}
else if( LMin[i] ) // реверс
{
dir = 1;
extrP = L[i];
j = i;
}
else
if( H[i] > extrP )
extrP = H[i];
}
}
Plot(C, "", colorBlack, styleCandle);
PlotShapes(LMax * shapeUpTriangle, colorGreen, 0, H, 12);
PlotShapes(LMin * shapeDownTriangle, colorRed, 0, L, 12);
|
??? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
Есть непонятки. В левой части графика (слева от черной линии) всё отлично, минимум - это минимум, а максимум - максимум. Затем пошли непонятки, нет минимумов и максимумов там, где они должны быть, и есть там, где их быть не должно. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Первая слева стрелка вниз (сразу после черной линии).
Там нет минимума потому, что не выполняется условие H третьей свечки больше чем H второй. Ну и т.д. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
Всё правильно, но всплывает именно та самая сложность.
Свеча 1. L < L вчера;
Свеча 2. Внутренняя свеча, её значения не выходят за рамки Свечи 1.
Свеча 3. Внутренняя свеча, её значения не выходят за рамки Свечи 1.
Свеча 4. Внутренняя свеча, её значения не выходят за рамки Свечи 1.
Свеча 5. Её H > H Свечи 1, именно в этот момент можно сказать, что L Свечи 1 - это текущий минимум.
Т.е. Свечи 2-4 никак нас не интересуют, т.к. они в диапазоне Свечи 1, а Свеча 5 уже выходит из этого диапазона. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Угу. Теперь вижу ошибку. Вечером исправлю. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Может так
Код: |
SetBarsRequired(sbrAll, sbrAll);
LMin = L < Ref(L,-1) & L <= Ref(L,1) & H < Ref(H,1);
LMax = H > Ref(H,-1) & H >= Ref(H,1) & L > Ref(L,1);
dir = 1;
extrPH[1] = H[0];
extrPL[1] = L[0];
j = 1;
for( i = 1; i<BarCount; i++ )
{
if( dir == 1 )
{
if( LMin[i] )
{
if( L[i] < extrPL[i-1] ) // новый минимум
{
LMin[j] = 0;
j = i;
extrPH[i] = H[i];
extrPL[i] = Min(extrPL[i-1], L[i]);
}
else
{
LMin[i] = 0;
extrPH[i] = Max(extrPH[i-1], H[i]);
extrPL[i] = Min(extrPL[i-1], L[i]);
}
}
else if( LMax[i] ) // реверс
{
if( H[i] >= extrPH[i] )
{
dir = -1;
extrPH[i] = H[i];
j = i;
}
else
{
LMax[i] = 0;
extrPH[i] = Max(extrPH[i-1], H[i]);
}
extrPL[i] = L[i];
}
else
{
extrPH[i] = Max(extrPH[i-1], H[i]);
extrPL[i] = Min(extrPL[i-1], L[i]);
}
}
else
{
if( LMax[i] )
{
if( H[i] >= extrPH[i-1] ) // новый максимум
{
LMax[j] = 0;
j = i;
extrPL[i] = L[i];
extrPH[i] = Max(extrPH[i-1], H[i]);
}
else
{
LMax[i] = 0;
extrPH[i] = Max(extrPH[i-1], H[i]);
extrPL[i] = Min(extrPL[i-1], L[i]);
}
}
else if( LMin[i] ) // реверс
{
if( L[i] <= extrPL[i-1] )
{
dir = 1;
extrPL[i] = L[i];
j = i;
}
else
{
LMin[i] = 0;
extrPL[i] = Min(extrPL[i-1], L[i]);
}
extrPH[i] = H[i];
}
else
{
extrPH[i] = Max(extrPH[i-1], H[i]);
extrPL[i] = Min(extrPL[i-1], L[i]);
}
}
}
Plot(C, "", colorBlack, styleCandle);
PlotShapes(LMax * shapeUpTriangle, colorGreen, 0, H, 12);
PlotShapes(LMin * shapeDownTriangle, colorRed, 0, L, 12);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
Так совсем странно.
Вчерашний отрезок графика, слева нормально, а справа пусто. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну давай разбирать этот пример.
слева от вертикальной линии есть зафиксированный минимум (красный треугольник).
Дальше ищем либо максимум, либо новый минимум.
Нашли ПРЕДВОРИТЕЛЬНЫЙ максимум (первая зеленая стрелка). Он зафиксируется если после него будет минимум который удовлетворяет условиям.
Первая красная стрелка не удовлетворяет условиям минимума. Я в прошлый раз писал. Она отпадает. Все следующие тоже не годятся т.к. находятся в "тени" формации которая обозначена первой красной стрелкой.
Казалось бы 4ая зеленая стрелка новый хай. Но на самом деле там нет хая т.к. не выполняются условия
Код: |
LMax = H > Ref(H,-1) & H >= Ref(H,1) & L > Ref(L,1); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
Давай разберем пример.
Но сначала вернёмся к истокам. Тут у нас возникло разное понимание минимумов и максимумов, видимо я недостаточно подробно пояснил и только больше запутал. Сейчас попробую всё исправить. Поэтому начну всё сначала, только теория.
Краткосрочный минимум (Lmin). Lmin – это день с более высокими минимумами с обоих сторон (с правой стороны минимум может быть равен) и с более высоким максимумом правой свечи.
Примеры на рисунке 1.
Lmin – свеча 2. Минимумы свечей 1 и 3 выше, чем свечи 2. Максимум свечи 3 выше свечи 2. Значит, сформировался краткосрочный минимум. Он больше НЕ ПОМЕНЯЕТСЯ.
Lmin – свеча 6. Минимумы свечей 5 и 7 выше, чем свечи 6. Максимум свечи 7 выше свечи 6. Значит, сформировался краткосрочный минимум. Он больше НЕ ПОМЕНЯЕТСЯ.
Lmin – свеча 9. Минимум свечи 8 выше, чем свечи 9 и минимум свечи 10 равен минимуму 9. Lmin НЕ СФОРМИРОВАЛСЯ, т.к. не пробит максимум свечи 9. У свечи 11 минимум выше, чем у свечи 9, но максимум ниже (внутренняя свеча). Lmin НЕ СФОРМИРОВАЛСЯ. У свечи 12 минимум выше, чем у свечи 9 и максимум выше, чем у свечи 9. ТОЛЬКО СЕЙЧАС можно сказать, что Lmin – свеча 9.
Lmin – свеча 15. Необходимое условие появляется только на свече 19. У свечи 14 минимум выше, чем у свечи 15, но пробиваем максимум свечи 15 только свечой 19. Минимум сформирован, и он больше не поменяется.
Краткосрочный минимум может отмениться, если их несколько подряд, без формирования краткосрочного максимума. Первый остаётся, все остальные отменяются до формирования краткосрочного максимума. Пример на рисунке 2.
По краткосрочному максимуму аналогично.
Теперь по примеру.
Цитата: |
слева от вертикальной линии есть зафиксированный минимум (красный треугольник).
Дальше ищем либо максимум, либо новый минимум. |
Только максимум.
Цитата: |
Нашли ПРЕДВОРИТЕЛЬНЫЙ максимум (первая зеленая стрелка). Он зафиксируется если после него будет минимум который удовлетворяет условиям. |
Это не предварительный максимум - это максимум, который нужно фиксировать. Минимум был? Был. Условия для формирования максимума были? Были. Значит максимум, и после него уже ждать формирования минимума.
Цитата: |
Первая красная стрелка не удовлетворяет условиям минимума. |
Как это не удовлетворяет? Смотри. Минимум у левой свечи выше, и пробиваем максимум в 14:26. Именно в 14:26 можно сказать, что минимум это свеча в 14:22.
Цитата: |
Но на самом деле там нет хая т.к. не выполняются условия
Код: |
LMax = H > Ref(H,-1) & H >= Ref(H,1) & L > Ref(L,1); |
|
Именно это условие не выполняется, согласен. Красная свеча - внутренняя (внутри диапазона предыдущей), и должна игнорироваться. А вот следующая красная пробивает минимум зеленой свечи и тем самым формирует максимум.
На эту тему выше показывал пример:
Dmitriy писал(а): |
Всё правильно, но всплывает именно та самая сложность.
Свеча 1. L < L вчера;
Свеча 2. Внутренняя свеча, её значения не выходят за рамки Свечи 1.
Свеча 3. Внутренняя свеча, её значения не выходят за рамки Свечи 1.
Свеча 4. Внутренняя свеча, её значения не выходят за рамки Свечи 1.
Свеча 5. Её H > H Свечи 1, именно в этот момент можно сказать, что L Свечи 1 - это текущий минимум.
Т.е. Свечи 2-4 никак нас не интересуют, т.к. они в диапазоне Свечи 1, а Свеча 5 уже выходит из этого диапазона. |
![Image Image](http://amisite.ru/phpBB2/files/g_213.jpg) |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
Но сначала вернёмся к истокам. Тут у нас возникло разное понимание минимумов и максимумов,
|
У нас ничего не возникало.
Вот это
Код: |
LMin = L < Ref(L,-1) & L <= Ref(L,1) & H < Ref(H,1);
LMax = H > Ref(H,-1) & H >= Ref(H,1) & L > Ref(L,1);
|
Я взял в твоем описании. Я даже ни разу не посмотрел этот кусок кода.
Так вот. Этот код не показывает.
Даже если отталкиваться от твоего нового описания.
Цитата: |
Lmin – это день с более высокими минимумами с обоих сторон (с правой стороны минимум может быть равен) и с более высоким максимумом правой свечи.
|
И в этом случае там, где первая красная стрелка 14:21 минимума не будет.
У второй и третьей свечки максимум 97130 а у правой должен быть выше.
Цитата: |
Это не предварительный максимум - это максимум, который нужно фиксировать. Минимум был? Был. Условия для формирования максимума были? Были. Значит максимум, и после него уже ждать формирования минимума.
|
А если после него минимума не будет а будет новый, более высокий максимум???? ![Laughing](images/smiles/icon_lol.gif) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
Цитата: |
И в этом случае там, где первая красная стрелка 14:21 минимума не будет.
У второй и третьей свечки максимум 97130 а у правой должен быть выше.
|
Именно, у ПРАВОЙ будет меньше, в этом и главная засада.
Возвращаемся к примеру в таблице:
Bar1 – это первая свеча;
Bar2 – значение High выше, чем у Bar1, все значения Х перезаписываем новыми Bar2;
Bar3 – находится в диапазоне значений Bar2, Х – Bar2, без изменений;
Bar4 – Low ниже, чем у Bar3, но не ниже Х (Bar2), Х не перезаписывается;
Bar6 – Low ниже, чем Х (Bar2), теперь Х – Bar6.
И по идее теперь останется построить минимумы и максимумы по свечам Х, т.е. сравнивая между собой значения Bar1, Bar2 и Bar6.
И конечно, 14:22, при текущих условиях, не может быть минимумом. Как-то нужно УБРАТЬ из анализа свечи: 2;3;4, т.к. они находятся ВНУТРИ ценового диапазона свечи 1. Т.е. нам нужно сравнить между собой свечи в 14:20, 14:21 и 14:26. Только тогда получится нужная свечная комбинация.
Понимаешь о чем говорю, чисто теоретически?
Цитата: |
А если после него минимума не будет а будет новый, более высокий максимум???? ![Laughing](images/smiles/icon_lol.gif) |
Нового максимума не может быть по определению. Цена не сможет уйти выше текущего максимума не сформировав новый минимум, не может быть такой комбинации свечек.
Вот чтобы всё было просто и понятно нужно убирать с графика внутренние свечи - свечи внутри предыдущего диапазона, такие как: свечи 2, 3 и 4. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Dmitriy писал(а): |
Цитата: |
А если после него минимума не будет а будет новый, более высокий максимум???? ![Laughing](images/smiles/icon_lol.gif) |
Нового максимума не может быть по определению. Цена не сможет уйти выше текущего максимума не сформировав новый минимум, не может быть такой комбинации свечек. ![Smile](images/smiles/icon_smile.gif) |
Как это не может?
Ну раз так, то вот на этом своем примере скажи где будет минимум после максимума 14:14 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
000 писал(а): |
Dmitriy писал(а): |
Цитата: |
А если после него минимума не будет а будет новый, более высокий максимум???? ![Laughing](images/smiles/icon_lol.gif) |
Нового максимума не может быть по определению. Цена не сможет уйти выше текущего максимума не сформировав новый минимум, не может быть такой комбинации свечек. ![Smile](images/smiles/icon_smile.gif) |
Как это не может?
Ну раз так, то вот на этом своем примере скажи где будет минимум после максимума 14:14 |
Непосредственно в 14:22.
14:14 - минимум; 14:15 - максимум; 14:22 - минимум.
После пробития минимума свечи 14:15 свечой в 14:16, формируется максимум, максимум - свеча в 14:15.
Вопрос: как ты считаешь, какая комбинация свечек должна сформироваться в 14:17 и далее, чтобы получился новый максимум, при это не сформировав новый минимум? |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Наверное ты имел ввиду 14:21 (две длинненькие черная и раядом белая). Но эта свечка не является минимумом по твоей же формуле
LMin = L < Ref(L,-1) & L <= Ref(L,1) & H < Ref(H,1);
Потому, что у следующей свечки максимум не выше. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Dmitriy
Зарегистрирован: 22.11.2016
Сообщения: 22
|
000 писал(а): |
Наверное ты имел ввиду 14:21 (две длинненькие черная и раядом белая). Но эта свечка не является минимумом по твоей же формуле
LMin = L < Ref(L,-1) & L <= Ref(L,1) & H < Ref(H,1);
Потому, что у следующей свечки максимум не выше. |
Неа, именно 14:22.
Смотри, представим, что свечей 2, 3 и 4 НЕТ НА ГРАФИКЕ, их не существует. В таком случаи будет 14:22 минимумом? |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|