Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Помогите упростить поиск координат цены на графике Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Aleksandr



Зарегистрирован: 13.11.2011
Сообщения: 62

СообщениеДобавлено: Чт Мар 03, 2016 11:56 am Ответить с цитатой Вернуться к началу

000 писал(а):
Прежде чем сделать надо уточнить. Т.е. задача в том, чтобы найти минутную свечку на которой был дневной хай?

Есть цена High на вчерашней сессии + пусть Open минутной свечи на настощей сессии через (15 - 20) минут после открытия торгов , вот через эти две цены провести линию вправо .
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8507

СообщениеДобавлено: Пт Мар 04, 2016 12:31 am Ответить с цитатой Вернуться к началу

Код:

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
Сообщения: 62

СообщениеДобавлено: Пт Мар 04, 2016 11:58 am Ответить с цитатой Вернуться к началу

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
Сообщения: 62

СообщениеДобавлено: Ср Апр 26, 2017 4:15 pm Ответить с цитатой Вернуться к началу

[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
Сообщения: 8507

СообщениеДобавлено: Ср Апр 26, 2017 6:51 pm Ответить с цитатой Вернуться к началу

Код:

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
Сообщения: 62

СообщениеДобавлено: Чт Апр 27, 2017 2:47 am Ответить с цитатой Вернуться к началу

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
Сообщения: 8507

СообщениеДобавлено: Чт Апр 27, 2017 10:52 am Ответить с цитатой Вернуться к началу

Работаем с внутридневными данными
Код:

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
Сообщения: 62

СообщениеДобавлено: Чт Апр 27, 2017 5:27 pm Ответить с цитатой Вернуться к началу

[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
Сообщения: 8507

СообщениеДобавлено: Пт Апр 28, 2017 2:52 pm Ответить с цитатой Вернуться к началу

Код:

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
Сообщения: 62

СообщениеДобавлено: Пн Май 01, 2017 2:18 pm Ответить с цитатой Вернуться к началу

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
Сообщения: 8507

СообщениеДобавлено: Пн Май 01, 2017 11:21 pm Ответить с цитатой Вернуться к началу

Вот так
Код:

NewDay = TimeNum() == 100000; //Day() != Ref(Day(), -1);

Правда зависит от настроек ами. Может быть другое число.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Aleksandr



Зарегистрирован: 13.11.2011
Сообщения: 62

СообщениеДобавлено: Вт Май 02, 2017 4:17 pm Ответить с цитатой Вернуться к началу

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
Сообщения: 8507

СообщениеДобавлено: Вт Май 02, 2017 5:59 pm Ответить с цитатой Вернуться к началу

Ничего не понял.
Ты поставил 1:30 и это у тебя вчерашнее открытие сессии? Это как так?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Aleksandr



Зарегистрирован: 13.11.2011
Сообщения: 62

СообщениеДобавлено: Ср Май 03, 2017 2:53 am Ответить с цитатой Вернуться к началу

000 писал(а):
Ничего не понял.
Ты поставил 1:30 и это у тебя вчерашнее открытие сессии? Это как так?


Да неправ . Это я увеличил график ползунком и линия прошла через вчерашний open сессии 10-00 мск а в коде поставил 1300 .
Посмотреть профиль Отправить личное сообщение
Aleksandr



Зарегистрирован: 13.11.2011
Сообщения: 62

СообщениеДобавлено: Чт Май 11, 2017 4:03 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Ничего не понял.
Ты поставил 1:30 и это у тебя вчерашнее открытие сессии? Это как так?

Олег ! Всё зашибись , получилось , моей радости конца нету
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen