Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
Автор |
Сообщение |
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
У меня ещё такой вопрос - есть в AFL такая функция, которая координату из реальных значений в пиксели и наоборот? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вроде нет. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Действительно теперь есть. Не внимательно слежу за новинками. Things |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
Спасибо.
Я знал об этой функции. Но я имел в виду такую функцию, в которой аргумент - реальное значение, а результат - значение в пикселях.
Просто мне нужно провести горизонтальную линию по уровню, заданному в реальных значениях и сверху неё вывести надпись, которая отстоит от этой линии на расстоянии заданном в пикселях.
Но похоже я нашёл решение:
PlotText( ''text'', x, y, color, bkcolor = colorDefault, yoffset = 0 ).
Здесь величина y задаётся в реальных значениях, а yoffset в пикселях. Как раз то что надо.
А я пытался использовать GfxTextOut... для этой цели.
В любом случае, всем спасибо. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Marcello
Зарегистрирован: 30.05.2015
Сообщения: 69
|
Есть 5-минутки, нужно получить среднее значение объемов за первые 15 минут каждого дня. Соображалки хватило только на получение объема в каждый день вот так:
Код: |
TimeFrameSet(in15Minute);
NewDay = Day() != Ref(Day(), -1);
V15 = ValueWhen( NewDay, V );
TimeFrameRestore();
V15 = TimeFrameExpand( V15, in15Minute );
Plot( V15, "V15", colorYellow );
Plot( V, "Vol", colorWhite, styleHistogram );
|
А взять их среднее значение, скажем за 5 дней, не получается. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Был когда то подобный вопрос.
Проще всего написать цикл и посчитать.
если очень надо, то сделаю. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Marcello
Зарегистрирован: 30.05.2015
Сообщения: 69
|
Вообще задача решилась бы сама собой, если бы удалось из дневок "углубиться" в 15-минутки (у нас же интрадейные данные) и потом значения объема вынести "наверх" в дневки (путано объяснил). Может TimeFrameCompress тут как-то можно использовать? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Имеешь ввиду обнулить объемы которые за пределами 15 первых минут, потом перевести в дневки и взять среднее? Может получиться. Попробуй. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Функция для сжатия TimeFrameCompress() |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Marcello
Зарегистрирован: 30.05.2015
Сообщения: 69
|
000 писал(а): |
Имеешь ввиду обнулить объемы которые за пределами 15 первых минут, потом перевести в дневки и взять среднее? Может получиться. Попробуй. |
Вообще-то думал "сжать" вот эту желтую линию в дневки. По сути нужно только значение, обведенное кругом, т.к. оно не меняется до окончания первой 15-тиминутки следующего дня. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот этот массив сжимай в дневки...
Код: |
mV = iif(TimeNum() > 101500, 0, V); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если надо замени 101500 на 101000 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Marcello
Зарегистрирован: 30.05.2015
Сообщения: 69
|
Получилась какая-то ерунда. До 15 минут все норм, а выше не идет.
Код: |
TimeFrameSet( in5Minute );
V15 = iif( TimeNum() > 101000, 0, V );
TimeFrameRestore();
V15 = TimeFrameCompress( V15, inHourly ); // вот тут ставил inDaily и то же самое все
Plot( V15, "V15", colorBrightGreen );
Plot( V, "Vol", colorWhite, styleHistogram ); |
Выше 15 минут суммируется еще что-то лишнее. Видно на картинках. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А вот это зачем?
Код: |
TimeFrameSet( in5Minute ); |
Как то так
Код: |
V15 = iif( TimeNum() > 101000, 0, V );
V15 = TimeFrameCompress( V15, inDaily, compressVolume );
V15 = TimeFrameExpand( V15, inDaily );
Plot( V15, "V15", colorBlue );
Plot( V, "Vol", colorRed, styleHistogram ); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|