Автор |
Сообщение |
Nero Wolfe
Зарегистрирован: 17.03.2010
Сообщения: 174
|
Вот в этой статье
http://www.russian-trader.ru/forum/viewtopic.php?t=7256&sid=18a6315b7f8528584ffdc56838a8d9fb
есть такой абзац
Цитата: |
Расчет волатильности по "теням".
Поскольку при расчете волатильности мы пытаемся определить величину рыночного "шума", то можно попытаться измерить величину "ложных колебаний". Так допустим, что цена в течение дня поднялась вверх, потом сильно упала и после небольшого отскока закрепилась немного ниже открытия дня. Консенсус продавцов и покупателей был достигнут на закрытии дня, поэтому "эффективным движением" считаем изменение цены от открытия до закрытия дня. А прочие ценовые уровни были достигнуты исключительно благодаря эмоциям и просчетам трейдеров. Вот как раз эти ценовые уровни и посчитаем в качестве случайных колебаний цены. Просчитаем величину, равную разнице между дневным диапазоном и "эффективным движением". Затем посчитаем стандартное отклонение полученного значения, чтобы определить эмоциональность за 15-барный период. Таким образом, мы получим интервал, в который цена может залететь по ошибке. Прибавляя это значение ко вчерашнему максимуму и вычитая из вчерашнего минимума, мы получим требуемый нам интервал волатильности. На границе этого интервала и поставим стоп-приказы на открытие позиции. |
Можно ли это записать на АФЛ вот таким образом?
Код: |
Rng = Param("Range", 15, 1, 100, 1);
//Rng = Optimize("Range", 15, 1, 50, 1);
HL = High - Low;
CO = Close - Open;
Vol = StDev((HL - abs( CO )), Rng);
Band_Top = Ref(High, -1) + Vol;
Band_Bot = Ref(Low, -1) - Vol;
Plot( Band_Top, "Band_Top", colorBlue, 1 );
Plot( Band_Bot , "Band_Bot", colorRed, 1 );
Buy = Cover = Cross( H, Band_Top );
BuyPrice = CoverPrice = Band_Top;
Short = Sell = Cross( Band_Bot, L );
ShortPrice = SellPrice = Band_Bot;
Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );
Short = ExRem( Short, Cover );
Cover = ExRem( Cover, Short );
//Equity(1);
PlotShapes( Buy*shapeSmallUpTriangle, colorBlue, 0, Low );
PlotShapes( Sell*shapeSmallDownTriangle, colorRed, 0, High );
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Для дневного интервала вроде так. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
А вы вдумывались в смысл подхода? Сам код тоже с погрешностями, возможно исчезновение сигналов, расчет цены входов-выходов врет. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Nero Wolfe
Зарегистрирован: 17.03.2010
Сообщения: 174
|
000 писал(а): |
Для дневного интервала вроде так. |
А почему только для дневного? Вы имеете в виду что High и Low это конкретно привязанные к дневному таймфрейму величины?
Цитата: |
А вы вдумывались в смысл подхода? Сам код тоже с погрешностями, возможно исчезновение сигналов, расчет цены входов-выходов врет. |
Смысл подхода описан в первом сообщении, в цитате, вот и хотелось это протестировать. Идея то в целом здравая - определение шума и выход за пределы этого шума.
Подскажите как подправить код, чтоб работал и внутри дня тоже.
Заранее спасибо |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
На дневном фрейме потому, что в описании упоминаются "закрытие дня", "дневной диапазон"..., а этот код будет брать именно дневные OHLC только если работает на дневках.На внутридневных данных тоже будет работать, но будет брать OHLC не дневные, а с рабочего периода. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Nero Wolfe
Зарегистрирован: 17.03.2010
Сообщения: 174
|
А чтоб не было исчезновения сигналов может стоит вот так?
Код: |
Vol = Ref(StDev((HL - abs( CO )), Rng), -1); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Да, этого будет достаточно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Band_Top = Ref(High, -1) + Vol;
Band_Bot = Ref(Low, -1) - Vol;
Из описания явствует что HL величины случайные причем прошлого бара, вы берете случайное от случайного (из пояснения получается так) т.е. должен браться массив O.
Код: |
Затем посчитаем стандартное отклонение полученного значения, чтобы определить эмоциональность за 15-барный период. |
Какое к черту стандартное отклонение пустой набор цифр, неимеющий под собой никаких основ. Данную величину можно посчитать только для окончательно сформированного бара. причем имея 3 изменяемых массива отклонение вообще теряет смысл, нет вообще никакой взаимосвязи между поведением массивов и так называемом отклонением. Вобщем теоритическая часть пуста и безидейна. Без обид, сам мудохаюсь с одной идеей без результатно недели 2.
При расчете цены для тестера не забываете про О уровень может превышаться ценой открытия бара причем прилично, а вы для тестера учитываете только сам уровень. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну на счет СКО ты перегнул. Статистика типа все таки наука. А од на счет того, что надо брать от Open полностью согласен. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
000 писал(а): |
Ну на счет СКО ты перегнул. Статистика типа все таки наука. А од на счет того, что надо брать от Open полностью согласен. |
Не о статистике речь, а целесообразности и логичности конкретного расчета. Что имеем его используя на текущем баре 1 известное О, неизвестные 3 массива, хрен его знает будет ли H больше О или С может равен им, может в расчет СКО основную составляющую дал H может L (средняя непонятно чего по палате на прошлых барах сомнительное подспорье), не прогноза движения цены на текущем баре, ни состояния рынка (рост падение), ни выгодной цены входа в позу. Доклад закончил. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Nero Wolfe
Зарегистрирован: 17.03.2010
Сообщения: 174
|
Цитата: |
При расчете цены для тестера не забываете про О уровень может превышаться ценой открытия бара причем прилично, а вы для тестера учитываете только сам уровень. |
Не понял вот этого, объясните, пож-та, по подробнее.
И если не касаться идеи, а с точки зрения математического расчета - почему собственно "хрен его знает" ? Ведь при расчете
Vol = Ref(StDev((HL - abs( CO )), Rng), -1); я сдвинул окно на бар назад, таким образом Vol считается по уже окончательно сформированному массиву O H L C.
P.S. Понял, нужно вот так:
Код: |
Buy = Cover = H > Band_Top;
BuyPrice = CoverPrice = Max(Band_Top, Open);
Short = Sell = L < Band_Bot;
ShortPrice = SellPrice = Min(Band_Bot, Open);
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Код: |
И если не касаться идеи, а с точки зрения математического расчета - почему собственно "хрен его знает" ? :) Ведь при расчете
Vol = Ref(StDev((HL - abs( CO )), Rng), -1); я сдвинул окно на бар назад, таким образом Vol считается по уже окончательно сформированному массиву O H L C. |
Пост писался с учетом REF, пояснение дал выше и по идеи и по получаемому результату добавить нечего. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
|