Автор |
Сообщение |
srtrade
Зарегистрирован: 09.11.2010
Сообщения: 233
|
Хочу построить графики и провести анализ АА по P/E, EV/EBITDA и прочим финансовым данным. Проблема в том, что в AmiBroker можно вводить только последние значение EPS и других финансовых показателей. А я хочу ввести историю изменений EPS, EBITDA поквартально.
Как лучше это сделать, куда "запихнуть" данные? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В общем проще всего создать дополнительный символ
Например есть SBER создать SBER_FIN и в него запихать нужные данные. Если не хватит, то создать еще доп символ. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
srtrade
Зарегистрирован: 09.11.2010
Сообщения: 233
|
Я об это думал уже. Было два варианта: в отдельный символ или в тот же в поля Aux1, Aux2.
Но вот как это сделать, т.к. нужно же по всему кварталу по всем данным EPS записывать?
Можно, конечно, класть данные только на последний день квартала, но тогда нужно сдожную логику программировать, чтобы нужные числа для расчета брались. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если засунешь их в отдельный символ только в те даты где появляются новые данные, то Ами их сам растянет. Ничего сложного. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
srtrade
Зарегистрирован: 09.11.2010
Сообщения: 233
|
Олег, спасибо, понял.
А как тогда быть с рассчетными формулами. Например, я запихнул EPS в отдельный символ, теперь хочу построить график Price/EPS (Price беру как Close из исходного симовла). Как быть? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну как? Как обычно foreign() |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
srtrade
Зарегистрирован: 09.11.2010
Сообщения: 233
|
Я имел в виду другое:
Исходный символ имеет Close по всем датам.
Новый символ с EPS будет заполнен только по датам на конец отчетного периода, т.е. за год только 4 значения.
Теперь, мне нужно создать новый массив P/E = Close / EPS.
Вопрос: Как это сделать, т.е. в EPS только 4 числа и значит по всем остальным датам массив P/E будет неопределен? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Это понятно. А почитать про foreign()?
foreign( TICKER, DATAFIELD, fixup = 1)
Цитата: |
0 - the holes are not fixed
1 - default value - missing data bar OHLC fields are all filled using previous bar Close and volume is set to zero.
Note: you can use Foreign/RelStrength without specifying last parameter:
Foreign( "ticker", "field" ), RelStrength( "ticker" ) - then the holes will be fixed.
2 - (old pre-4.90 behaviour) - causes filling the holes in the data with previous O, H, L, C, V values
Unless you know what you are doing you should use DEFAULT value of fixup parameter (Fixup=1). If you do not use fixup=1, data holes will have the value of Null that you would need to handle by yourself.
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
srtrade
Зарегистрирован: 09.11.2010
Сообщения: 233
|
Спасибо.
Даже в голову не пришло, что так хорошо все может быть продумано в AmiBroker :) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
srtrade
Зарегистрирован: 09.11.2010
Сообщения: 233
|
Если я данные EPS положу в текущий символ в поле Aux1, то тут есть что-то похожее, чтобы AmiBroker брал также последнее значение, если по какой-либо дате Close есть, а Aux1 (в него я запихну EPS) нет? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если в символ, то только при помощи ValueWhen() |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
srtrade
Зарегистрирован: 09.11.2010
Сообщения: 233
|
Мысль понял, но не могу понять, какое логическое выражение вставить:
PE = Close / ValueWhen(???, Aux1)
Значения EPS я могу вставлять на первое число каждого квартала, т.е. 1.01, 1.04, 1.07, 1.10. Сегодня у нас 13.04.2012 - какое логическое выражение мне задать, чтобы я получил значение EPS за 01.04.2012 (если оно там есть еще), а не какое-либо другое? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Попробуй так
Код: |
PE = Close / ValueWhen(Aux1 != 0, Aux1); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|