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



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

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

Алуксандр писал(а):
Mechanic писал(а):
f = f * f;

С вас 5 баксов за идею. ))

Ну я просто спросил . Задал такой вопрос .


Во второй строке Error 29
e = Ref(Avg, -1);
f = (e - Cl)^2;
g = MA(f, 12);
Plot(g, "G", colorGreen);
Посмотреть профиль Отправить личное сообщение
Mechanic



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

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

А что такое Cl? Если цена закрытия, то либо Close, либо просто C.
Посмотреть профиль Отправить личное сообщение ICQ Number
Aleksandr



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

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

Mechanic писал(а):
А что такое Cl? Если цена закрытия, то либо Close, либо просто C.

C Close формула стала рассчитываться . Спасибо
Посмотреть профиль Отправить личное сообщение
MrDrJOKER



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

СообщениеДобавлено: Пн Июн 17, 2013 7:23 pm Ответить с цитатой Вернуться к началу

привет.

подскажите, как правильно посчитать Historical Volatility за 10 дней?

Код:

HV =  ( Foreign( "spy", "High", 1 ) - Foreign( "spy", "Low", 1 ) ) * sqrt(250) ;

HV_MA = MA ( HV , 10 );



нарыл ещё такой вариант:
Код:

HV_stdev = StDev( Close, 10 )  * sqrt(250) ;


как же корректно посчитать?
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пн Июн 17, 2013 9:42 pm Ответить с цитатой Вернуться к началу

А что такое sqrt(250)? Почему именно 250?
Я лично использую просто vol = factor*EMA(ATR(1), 10), где factor какой-то множитель, который выбирается в зависимости от целей подсчета волатильности. Можно принять за 1.
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

СообщениеДобавлено: Пн Июн 17, 2013 9:44 pm Ответить с цитатой Вернуться к началу

Да вариантов расчета исторической волатильности как говна...
Код:

per = 10;
TimeFrameSet(inDaily);
 DC = C;
 Rt = ln(DC/Ref(DC, -1));
 Rm = MA(Rt, per);
 HV = sqrt(Sum((Rt - Rm)^2, per)/per);
TimeFrameRestore();
StDev

HV = TimeFrameExpand(HV, inDaily);

Код:

HV = round(StDev(log(C/Ref(C,-1)),per)*100*sqrt(256));

....

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



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

СообщениеДобавлено: Пн Июн 17, 2013 10:48 pm Ответить с цитатой Вернуться к началу

spitfire писал(а):
А что такое sqrt(250)? Почему именно 250?
Я лично использую просто vol = factor*EMA(ATR(1), 10), где factor какой-то множитель, который выбирается в зависимости от целей подсчета волатильности. Можно принять за 1.


250 - кол-во торговых сессий в году, т.к. HV считается в годовом исчислении.

000 писал(а):
Да вариантов расчета исторической волатильности как говна... ....

в том, то и дело. и все выдают разные значения, хотя правильный(классический) вариант по идее один.

по ходу эта и есть классическая:
Код:

HV = StDev( log( C / Ref( C, -1)), 10 ) * 100 * sqrt(252) ;

ещё потестю сейчас.

Олег, первая формула, видимо, неполная Wink
Посмотреть профиль Отправить личное сообщение
Mechanic



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

СообщениеДобавлено: Вт Июн 18, 2013 9:40 am Ответить с цитатой Вернуться к началу

MrDrJOKER писал(а):

в том, то и дело. и все выдают разные значения, хотя правильный(классический) вариант по идее один.

А что такое правильный вариант? В математике волатильность - это СКО. Ещё есть среднегодовая (среднемесячная и т.д.) волатильность - СКО, делённое на корень квадратный из длины выборки (поскольку СКО случайной величины растёт пропорционально корню из времени). Ещё можно считать волатильность просто как средний размах баров за период. Ещё можно вычислять АТР (это почти то же самое, но с учётом гэпов). И т.д. И какой вариант правильный (классический)?

Если первый вариант (СКО), то вот так:

Код:

n = Param("Period", 100, 10, 1000);
volat = StDev(Close, n);


Если второй (средневыборочная), то вот так:

Код:

n = Param("Period", 100, 10, 1000);
volat = StDev(Close, n) / sqrt(n) ;
Посмотреть профиль Отправить личное сообщение ICQ Number
MrDrJOKER



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

СообщениеДобавлено: Вт Июн 18, 2013 12:22 pm Ответить с цитатой Вернуться к началу

Mechanic, меня интересует та HV, что используется в опционной торговле. какая там из всех этих формул?
Посмотреть профиль Отправить личное сообщение
Mechanic



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

СообщениеДобавлено: Вт Июн 18, 2013 12:30 pm Ответить с цитатой Вернуться к началу

Я никогда не торговал опционами, так что не знаю, что там используется. Вопрос-то этот к вам, а не к нам, что именно вам нужно посчитать. Скажете, что посчитать - забросаем вас кодами, за этим дело не станет. Smile
Посмотреть профиль Отправить личное сообщение ICQ Number
Nero Wolfe



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

СообщениеДобавлено: Вт Июн 18, 2013 4:29 pm Ответить с цитатой Вернуться к началу

Цитата:
меня интересует та HV, что используется в опционной торговле

Вот тут участник форума делал анализ разных методов оценки волы
http://option-lab.ru/forum/index.php?topic=3455.0

По его выводам получается что наилучшую корреляцию с IV показали методы расчета H-L и Wilder...

_________________
Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает.
Посмотреть профиль Отправить личное сообщение
MrDrJOKER



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

СообщениеДобавлено: Пт Июн 21, 2013 6:46 pm Ответить с цитатой Вернуться к началу

Mechanic писал(а):
Я никогда не торговал опционами, так что не знаю, что там используется. Вопрос-то этот к вам, а не к нам, что именно вам нужно посчитать. Скажете, что посчитать - забросаем вас кодами, за этим дело не станет. Smile


да если б я сам знал, что там за формула)

глянул код HV в платформе TOS, выглядит он так:
Код:

# @reference
#
# TD Ameritrade IP Company, Inc. (c) 2007-2013
#

declare lower;

input length = 20;
input basis = {default Annual, Monthly, Weekly, Daily};

def ap = getAggregationPeriod();

assert(ap >= AggregationPeriod.MIN, "Study can only be calculated for time-aggregated charts: " + ap);

def barsPerDay = (regularTradingEnd(getYyyyMmDd()) - regularTradingStart(getYyyyMmDd())) / ap;
def barsPerYear =
    if ap > AggregationPeriod.WEEK then 12
    else if ap == AggregationPeriod.WEEK then 52
    else if ap >= AggregationPeriod.DAY then 252 * AggregationPeriod.DAY / ap
    else 252 * barsPerDay;

def basisCoeff;
switch (basis) {
case Annual:
    basisCoeff = 1;
case Monthly:
    basisCoeff = 12;
case Weekly:
    basisCoeff = 52;
case Daily:
    basisCoeff = 252;
}

def clLog = log(close / close[1]);
plot HV = stdev(clLog, length) * Sqrt(barsPerYear / basisCoeff * length / (length - 1));
HV.SetDefaultColor(GetColor(0));


значения у неё тоже совсем не те, что мне нужны.

в англоинете встречал эту формулу в AFL в основном:
Код:

HV = StDev( log( C / Ref( C, -1)), 10 ) * 100 * sqrt(252) ;
Посмотреть профиль Отправить личное сообщение
Aleksandr



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

СообщениеДобавлено: Чт Июл 31, 2014 6:57 pm Ответить с цитатой Вернуться к началу

Aleksandr писал(а):
000 писал(а):
Код:
 f = ( e-Cl )^2;


Спасибо

Код.
Filter = 1;
Par1 = Param("Ref", 2, 1, 100, 1);
A1 = Ref(Close,-par1);
AddColumn( Close, "Close price", 1.4);
AddColumn( A1, "A1", 1.4);

"Close price" вписывает правильно , а вот A1 неправильно .

A1 это же Close две свечи назад .
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Июл 31, 2014 8:44 pm Ответить с цитатой Вернуться к началу

Хе. Так и пиши
Код:
-1*par1

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen