Автор |
Сообщение |
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
000 писал(а): |
Прежде чем сделать надо уточнить. Т.е. задача в том, чтобы найти минутную свечку на которой был дневной хай? |
Есть цена High на вчерашней сессии + пусть Open минутной свечи на настощей сессии через (15 - 20) минут после открытия торгов , вот через эти две цены провести линию вправо . |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
DH = TimeFrameGetPrice("H", inDaily);
bi = BarIndex();
NewDay = Day() != Ref(Day(), -1);
lastNewDay = LastValue(ValueWhen(NewDay, bi));
lvbi = LastValue( bi );
if((lastNewDay + 15) > lvbi)
{
firstBi = LastValue(ValueWhen(DH == H, bi, 3));
lastBi = LastValue(ValueWhen(NewDay, bi + 15, 2));
}
else
{
firstBi = LastValue(ValueWhen(DH == H, bi, 2));
lastBi = LastValue(ValueWhen(NewDay, bi + 15));
}
x0 = firstBi;
y0 = H[firstBi];
x1 = lastBi;
y1 = O[ lastBi ];
Plot( C, "input", colorDefault, styleCandle );
Plot(DH, "", colorBlue);
Plot( LineArray( x0, y0, x1, y1, 1 , True ), "line", colorRed, styleThick );
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
000 писал(а): |
Код: |
DH = TimeFrameGetPrice("H", inDaily);
bi = BarIndex();
NewDay = Day() != Ref(Day(), -1);
lastNewDay = LastValue(ValueWhen(NewDay, bi));
lvbi = LastValue( bi );
if((lastNewDay + 15) > lvbi)
{
firstBi = LastValue(ValueWhen(DH == H, bi, 3));
lastBi = LastValue(ValueWhen(NewDay, bi + 15, 2));
}
else
{
firstBi = LastValue(ValueWhen(DH == H, bi, 2));
lastBi = LastValue(ValueWhen(NewDay, bi + 15));
}
x0 = firstBi;
y0 = H[firstBi];
x1 = lastBi;
y1 = O[ lastBi ];
Plot( C, "input", colorDefault, styleCandle );
Plot(DH, "", colorBlue);
Plot( LineArray( x0, y0, x1, y1, 1 , True ), "line", colorRed, styleThick );
|
|
Спасибо за помощь |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
[quote="Aleksandr"][quote="000"][code]
Здравствуйте .Есть цена High на вчерашней сессии + пусть Open минутной свечи на настощей сессии через (15 - 20) минут после открытия торгов , вот через эти две цены провести линию вправо .
DH = TimeFrameGetPrice("H", inDaily); //Хай вчерашнего дня
bi = BarIndex(); // это номер бара
NewDay = Day() != Ref(Day(), -1); //Новый день неравен дню вчерашнему
lastNewDay = LastValue(ValueWhen(NewDay, bi));
lvbi = LastValue( bi );
if((lastNewDay + 15) > lvbi)
{
firstBi = LastValue(ValueWhen(DH == H, bi, 3));
lastBi = LastValue(ValueWhen(NewDay, bi + 15, 2));
}
else
{
firstBi = LastValue(ValueWhen(DH == H, bi, 2));
lastBi = LastValue(ValueWhen(NewDay, bi + 15));
}
x0 = firstBi;
y0 = H[firstBi];
x1 = lastBi;
y1 = O[ lastBi ];
А вот дальше прокомментировать каждую строчку кода можно подробно, когда будет время.Код вообщем небольшой |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
Plot( C, "input", colorDefault, styleCandle );
Plot(DH, "", colorBlue);
Plot( LineArray( x0, y0, x1, y1, 1 , True ), "line", colorRed, styleThick );
|
Вот это прокомментировать? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
000 писал(а): |
Код: |
Plot( C, "input", colorDefault, styleCandle );
Plot(DH, "", colorBlue);
Plot( LineArray( x0, y0, x1, y1, 1 , True ), "line", colorRed, styleThick );
|
Вот это прокомментировать? |
Нет ,прокомментировать надо сам код, до Plotoв. Спасибо |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Работаем с внутридневными данными
Код: |
DH = TimeFrameGetPrice("H", inDaily);
// Берем максимальную цену дня
bi = BarIndex();
// номер последнего бара
NewDay = Day() != Ref(Day(), -1);
// Если номер дня бара не равен номеру дня предыдущего бара значит начался новый день
lastNewDay = LastValue(ValueWhen(NewDay, bi));
// Номер бара когда начался последний новый день
lvbi = LastValue( bi );
// общее число баров
if((lastNewDay + 15) > lvbi) // если последний день начался мене15 баров до конца графика (последний день на графике не полный)
{
firstBi = LastValue(ValueWhen(DH == H, bi, 3)); // Берем номер бара когда случился максимум предпоследнего полного дня
lastBi = LastValue(ValueWhen(NewDay, bi + 15, 2)); // номер бара на котором начался последний полный день +15
}
else // последний день полный
{
firstBi = LastValue(ValueWhen(DH == H, bi, 2)); // то же что и выше
lastBi = LastValue(ValueWhen(NewDay, bi + 15)); // то же что и выше
}
x0 = firstBi; // номер бара откуда начинаем рисовать линию.
y0 = H[firstBi]; // цена откуда начинаем рисовать линию
x1 = lastBi;// Номер бара где заканчивается линия
y1 = O[ lastBi ]; // цена на которой заканчивается линия |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
[quote="000"]Работаем с внутридневными данными
[code]
По этому коду хотел соединить линией открытие вчерашнего дня в 10-00 мск с открытием сегодня в 10-00 мск но что то не вылезает
DayOpenVchera = TimeFrameGetPrice("O", inDaily);// это открытие вчерашнего дня в 10-00 мск
DayOpenSegodn =TimeFrameGetPrice("O",inDaily,0);//открытие сегодня в 10-00 мск
bi = BarIndex(); // номер последнего бара
NewDay = Day() != Ref(Day(), -1); // Если номер дня бара не равен номеру дня предыдущего бара значит начался новый день
lastNewDay = LastValue(ValueWhen(NewDay, bi)); // Номер бара когда начался последний новый день
lvbi = LastValue( bi ); // общее число баров
if((lastNewDay) > lvbi)// если последний день равен открытию сегодня
{
firstBi = LastValue(ValueWhen(DayOpenVchera == O, bi, 3)); // Берем номер бара когда случился ОПЕН предпоследнего полного дня
lastBi = LastValue(ValueWhen(NewDay, bi , 2));// номер бара на котором начался последний полный день
}
else
{
firstBi = LastValue(ValueWhen(DayOpenVchera == H, bi, 2)); // Берем номер бара когда случился ОПЕН предпоследнего полного дня
lastBi = LastValue(ValueWhen(NewDay, bi )); // номер бара на котором начался последний полный день
}
x0 = firstBi; // номер бара откуда начинаем рисовать линию
y0 = DayOpenVchera[firstBi]; // цена откуда начинаем рисовать линию
x1 = lastBi; // Номер бара где заканчивается линия
y1 = DayOpenSegodn[ lastBi ]; // цена на которой заканчивается линия
Plot( C, "input", colorDefault, styleCandle );
Plot(DayOpenSegodn, "", colorBlue);
Plot( LineArray( x0, y0, x1, y1, 1 , True ), "line", colorRed, styleThick );
... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
bi = BarIndex();
NewDay = Day() != Ref(Day(), -1);
firstBi = LastValue(ValueWhen(NewDay, bi, 2));
lastBi = LastValue(ValueWhen(NewDay, bi, 1));
x0 = firstBi; // номер бара откуда начинаем рисовать линию
y0 = Open[firstBi]; // цена откуда начинаем рисовать линию
x1 = lastBi; // Номер бара где заканчивается линия
y1 = Open[lastBi]; // цена на которой заканчивается линия
Plot( C, "input", colorDefault, styleCandle );
Plot( LineArray( x0, y0, x1, y1, 1 , True ), "line", colorRed, styleThick );
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
000 писал(а): |
Код: |
bi = BarIndex();
NewDay = Day() != Ref(Day(), -1);
firstBi = LastValue(ValueWhen(NewDay, bi, 2));
lastBi = LastValue(ValueWhen(NewDay, bi, 1));
x0 = firstBi; // номер бара откуда начинаем рисовать линию
y0 = Open[firstBi]; // цена откуда начинаем рисовать линию
x1 = lastBi; // Номер бара где заканчивается линия
y1 = Open[lastBi]; // цена на которой заканчивается линия
Plot( C, "input", colorDefault, styleCandle );
Plot( LineArray( x0, y0, x1, y1, 1 , True ), "line", colorRed, styleThick );
|
|
Не то , Код берёт открытие суток , а надо Open сессии 10-00
мск вчера и Open сессии 10-00 мск сразу на открытии сессии сегодня вот между этими открытиями и чертится линия . На сайте нашёл вот это
sessionOpenPrice = ValueWhen(Cross(TimeNum(), StartTime), O);
самому никак . |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот так
Код: |
NewDay = TimeNum() == 100000; //Day() != Ref(Day(), -1);
|
Правда зависит от настроек ами. Может быть другое число. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
000 писал(а): |
Вот так
Код: |
NewDay = TimeNum() == 100000; //Day() != Ref(Day(), -1);
|
Правда зависит от настроек ами. Может быть другое число. |
Число 100000 не даёт линию , поставил 13000 держит вчерашнее открытие сессии но не попадает на открытие сегодня и ещё правый конец линии дёргается взависимости от закрытия на минуте.
Вот здесь близко к решению , но всё портит строка firstBi = LastValue(ValueWhen(NewDay, bi, 3)); упорно берёт открытие суток
bi = BarIndex();
NewDay = Day() != Ref(Day(), -1);
firstBi = LastValue(ValueWhen(NewDay, bi, 3));
lastBi = LastValue(ValueWhen(NewDay, bi, 1));
x0 = firstBi; // номер бара откуда начинаем рисовать линию
y0 = Open[firstBi]; // цена откуда начинаем рисовать линию
x1 = lastBi; // Номер бара где заканчивается линия
y1 = Open[lastBi]; |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ничего не понял.
Ты поставил 1:30 и это у тебя вчерашнее открытие сессии? Это как так? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
000 писал(а): |
Ничего не понял.
Ты поставил 1:30 и это у тебя вчерашнее открытие сессии? Это как так? |
Да неправ . Это я увеличил график ползунком и линия прошла через вчерашний open сессии 10-00 мск а в коде поставил 1300 . |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
000 писал(а): |
Ничего не понял.
Ты поставил 1:30 и это у тебя вчерашнее открытие сессии? Это как так? |
Олег ! Всё зашибись , получилось , моей радости конца нету |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|