Автор |
Сообщение |
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
Можно ли сделать так что бы на графике отрисовывались линии хая-лоя свечи следующим образом?
Если установлен часовой ТФ, то линии хая-лоя, отрисовываются по свече первого часа открытия дня (только за текущий день). Если тф меняем на 30 минут то отрисовываются линии хая лоя свечки первого получаса с открытия дня и т.д.
Т.е. на произвольном ТФ линии самоотрисовываются строго на первой свече с открытия текущего дня.
Как будет выглядеть код который "ловит" эту свечу и рисует линии? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
NewDay = Day() != Ref(Day(), -1);
FirstHigh = ValueWhen(NewDay, High);
FirstLow = ValueWhen(NewDay, Low);
Plot(FirstHigh, "FirstHigh", ColorRed);
Plot(FirstLow, "FirstLow", ColorRed); |
Типа как то так. Не проверял, код писал прямо в браузере. Возможны ошибки. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
000 писал(а): |
Типа как то так. Не проверял, код писал прямо в браузере. Возможны ошибки. |
ага, все круто, но вот один момент - линия рисуется за каждый день (вчерашний, позавчерашний и т.д.). А можно что бы только за текущий день лини рисовались а за прошедшие дни их не было? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Перед Plot вставь 2 строки
Код: |
FirstHigh = IIf(DayOfYear() == LastValue(DayOfYear()), FirstHigh, Null);
FirstLow = IIf(DayOfYear() == LastValue(DayOfYear()), FirstLow, Null); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
000 писал(а): |
Перед Plot вставь 2 строки
|
воот теперь то что надо!!! супер ))) Спасибо))) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
А толщина линии как то регулируется??? а то совсем едва видно на графике... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
000 писал(а): |
http://amibroker.com/guide/afl/plot.html
styleThick |
О!!! Вещь!!! ))) Спасибо ))) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
А вот такой вопрос. Когда "стартовая свеча" уходит за левый край графика и её не видно, то линии пропадают (хотя масштаб не меняется, т.е. шкала цены не расширяется) это нормальное поведение ??? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Да, это нормально. Так сделано для ускорения расчетов. Это поведение можно отключить. Добавь в начало строку.
Код: |
SetBarsRequired(sbrAll, sbrAll); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
|
Посмотреть профиль Отправить личное сообщение |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
итоговый код получился такой
Код: |
_SECTION_BEGIN("line");
SetBarsRequired(sbrAll, sbrAll);
NewDay = Day() != Ref(Day(), -1);
FirstHigh = ValueWhen(NewDay, High);
FirstLow = ValueWhen(NewDay, Low);
FirstHigh = IIf(DayOfYear() == LastValue(DayOfYear()), FirstHigh, Null);
FirstLow = IIf(DayOfYear() == LastValue(DayOfYear()), FirstLow, Null);
Plot(FirstHigh, "FirstHigh", colorRed, styleThick , 2, 0, 1);
Plot(FirstLow, "FirstLow", colorGreen, styleThick , 2, 0, 1);
_SECTION_END(); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
Hokum писал(а): |
000 писал(а): |
http://amibroker.com/guide/afl/plot.html
styleThick |
О!!! Вещь!!! ))) Спасибо ))) |
Thickness of a line can be adjusted in Plot() function also (and better)!
Код: |
Plot( Lastvalue( C ), "", colorRed, styleLine, Null, Null, 0, 0, width = -60 ); |
positive values specify pixel (step size 1 -> 1, 2, 3, ...)
negative values specify percent of current bar width (step size 10 -> -10, -20, -30, ...) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|