Избранное трейдера dimaAg

по

Задача. Мат. ожидание.

    • 24 июля 2016, 21:25
    • |
    • Dim
  • Еще
Представьте, что вы подбрасываете монетку до тех пор, пока два раза подряд не выпадет «орел». Сколько бросков (в среднем) вам потребуется?

Разумеется, мы считаем монетку «честной», то есть имеющей равные шансы выпадения «орла» и «решки». Ответ требует понимания того, что такое среднее число бросков. Математики обычно говорят о «математическом ожидании» числа бросков. Полезно заметить, что если результатом первого броска стало выпадение решки, то весь эксперимент как бы начался заново и продлится на один ход дольше.

Начнем с двух орлов. Пусть B — количество ходов, через которое в среднем наступит выигрыш. Рассмотрим также две вспомогательных величины BР и ВО: первая из них будет означать среднее число ходов до выигрыша, если на первом ходу выпала решка, а вторая — среднее число ходов до выигрыша, если на первом ходу выпал орел.

Заметим, что так как орел и решка на первом ходу имеют равные шансы, то В = (



( Читать дальше )

Для QUIK индикатор Parabolik учитывающий волатильность

   Добавляю код сделанного мной индикатора Parabolik в котором параметр ускорение зависит от волатильности. Чем больше волатильность, тем больше увеличивается ускорение и индикатор быстрее «догоняет» цену. Подобные есть на просторах интернета для метатрейдера (и не бесплатно), для квика не встречал.

 Для QUIK индикатор Parabolik учитывающий волатильность

Видно, что он дает меньше перескоков (красный), чем обычный Parabolik (черный). Хорошо себя зарекомендовал для выходов из позиций, открытых по тренду. На вход в боковике конечно будет давать ложные сигналы, как и обычный Parabolik (но меньше!), создатель которого не рекомендовал только его использовать для открытия позиций.

Код индикатора:

Settings = {
Name = "Parabolic ATR",
Period_ATR=14,
line = {{
                Name = "Parabolic ATR",
                Type = TYPE_POINT,
                Color = RGB(255,0,0),
                Width = 2
                }
                }
}

old_idx=0
long=false
short=false
revers=false


function Init()
        return 1
end

function OnCalculate(idx)
if idx<Settings.Period_ATR then
return nil
else
if idx==Settings.Period_ATR  then
psar={}
psar[idx]=L(idx)
long=true
hmax=H(idx)
per_ATR=Settings.Period_ATR
local TR=0
for js=(idx-per_ATR),idx-1 do
TR=(TR+H(js)-L(js))
end
Old_ATR=TR/per_ATR
revers=true
else

if idx~=old_idx then
local TR=0
for js=(idx-per_ATR),idx-1 do
TR=(TR+H(js)-L(js))
end
local ATR=TR/per_ATR
af=ATR/(Old_ATR+ATR)
af=af/10
Old_ATR=ATR
if long then
if hmax<H(idx-1) then
hmax=H(idx-1)
end
psar[idx]=psar[idx-1]+af*(hmax-psar[idx-1])
end
if short then
if lmin>L(idx-1) then
lmin=L(idx-1)
end
psar[idx]=psar[idx-1]+af*(lmin-psar[idx-1])
end
revers=true
end
if long and L(idx)<psar[idx] and revers then
psar[idx]=hmax
short=true
long=false
lmin=L(idx)
af=Step
revers=false
end
if short and H(idx)>psar[idx] and revers then
psar[idx]=lmin
long=true
short=false
hmax=H(idx)
af=Step
revers=false
end
end

old_idx=idx

return psar[idx]
end
end



( Читать дальше )

Добавление и оценка влияния внешнего регрессора BRN6 в модель ARIMA для RIM6 на R

    • 10 июня 2016, 03:33
    • |
    • SciFi
  • Еще
По мотивам поста Применение ARIMA для предсказания цены на RIM6 на R

Итак, я добавил в ARIMA для RIM6 внешний регрессор — цену на нефть BRN6. И проверил — действительно ли это улучшает модель. Теоретически, должно, так как цена на нефть должна опережать РТС. Сначала меняется мировой спрос на нефть — затем уже меняется спрос на рос. активы.

И действительно — это улучшило модель. Критерий AIC, характеризующий качество модели, уменьшился, несмотря на то, что 1 параметром в модели стало больше. Кроме этого, ошибки модели стали меньше. В усовершенствованной версии диапазон (-100, 100), а в простой — (-200, 200).  

Гистограммы остатков моделей

Добавление и оценка влияния внешнего регрессора BRN6 в модель ARIMA для RIM6 на R

Здесь на верхнем графике ошибки (остатки) модели с дополнительным регрессором fit.arima.reg, а на нижнем — обычной ARIMA fit.arima.

( Читать дальше )

О применении теории вероятностей и математической статистики в трейдинге

Натыкаясь на разные статьи о трейдинге, очень часто читаешь про некое матожидание. Например, среди «ручных» трейдеров постоянно циркулирует мысль о необходимости торговать положительное матожидание. Про «роботизированных» трейдеров и говорить нечего — у этой группы товарищей матожидание возведено в ранг святыни.

По большому счету, никакого матожидания ни у «ручников» ни у «робокопов» нет. У тех и других есть лишь средняя сделка, которую объективно можно посчитать по осуществленным на реальном счете торгам. Понятно, что любители роботов могут посчитать не только фактическую, но и гипотетическую среднюю сделку, какой она была бы на предыстории, если бы да кабы. Аналогично «ручные» трейдеры могут посчитать среднюю сделку на истории в зависимости от разных условий и правил при хорошей формализации. Собственно, при таком подходе никакой разницы между «ручными» и «роботизированными» трейдерами нет.

Итак, средняя есть, а матожидания нет. И взяться этому матожиданию неоткуда. Почему? В классической связке ТВиМС среднее как оценка матожидания воспринимается как оценка последнего не потому что в пределе при сходимости по вероятности, становясь эффективной, несмещенной и т.д. оценкой, средняя становится матожиданием, а потому что изначально всё строится в рамках простой схемы доминирования теории вероятностей над математической статистикой. Говоря проще, данные, по которым строится оценка матожидания, являются выборочными относительно некой генеральной совокупности, для идеальной модели которой существует матожидание.

( Читать дальше )

Применение модели ARIMA-GARCH для прогнозирования курса рубля на R

    • 12 мая 2016, 11:12
    • |
    • SciFi
  • Еще
Продолжаю копать в сторону машинного обучения и применения R для количественного анализа в трейдинге.

Мои статьи про R, машинное обучение, количественный анализ

В этом посте я расскажу о применении модели ARIMA-GARCH для прогнозирования курса рубля на R. 
Нашел полезную серию статей на тему анализа временных рядов на R. Использовал эту статью.

Немного общей информации из википедии:

ARIMA (англ. autoregressive integrated moving average, иногда модель Бокса — Дженкинса, методология Бокса — Дженкинса) — интегрированная модель авторегрессии — скользящего среднего — модель и методология анализа временных рядов. Является расширением моделей ARMA для нестационарных временных рядов, которые можно сделать стационарными взятием разностей некоторого порядка от исходного временного ряда (так называемые интегрированные или разностно-стационарные временные ряды). Модель ARIMA(p,d,q) означает, что разности временного ряда порядка d подчиняются модели ARMA(p, q).

( Читать дальше )

Не слушайте прогнозы, не делайте прогнозы

Точность прогнозов финансовых «гуру» составила 47,4%

www.cxoadvisory.com/gurus/

Это выдается как нечто плохое. На самом деле вполне приемлемая точность для статистического прогноза. Например, если Вы правильно определяете 70% сильных движений и мало теряете в них при ошибках, а малые движения правильно прогнозируете только в 30% случаев, то с точки зрения данного исследования Ваш результат прогнозирования тоже будет существенно меньше 50%. Однако с вероятностью 0,99 Вы будете в прибыли.

Алгоритмические онлайн-сервисы

В перерывах между ТСЛабом и голым кодингом копаюсь в разного рода онлайн сервисах по роботобилдингу. Пока вот очередной перерыв, решил опубликовать список из онлайн-сервисов, которые предоставляют разные возможности для бектестов и деплоймента алгоритмов. Т.к. большинство смартлабовцев сидят на иглах ТСЛаба и WL, делать детальное описание не буду, хотя покопался там изрядно. Может как-нибудь за следующим перерывом...

RIZM — прикольный конструктор. Недавно вроде гугл показал подобный кодогенератор. Суть — Вы не пишете коды, а складываете кубики. Только не такие, как в ТСЛабе или еще где-то, а более близкие к программированию. Т.е., если Вы умеете читать код, но не умеете его писать (аки покорный Ваш слуга), то это для Вас.

QUANTOPIAN — упоминался несколько раз тут на СЛ. Quantopian стал центром для выпускников математических и научных дисциплин, которые обладают навыками программирования. Для кодеров. Python. Многие говорят, что соскочили с квантконнекта в квантопиан именно по причине простоты питона. Легендарный

( Читать дальше )

Случайность цен: Давайте проанализируем и посмотрим

Если мы хотим строить прибыльные торговые системы, то надо понимать – случайны ли цены на рынке и или нет, есть ли разница между случайным блужданием и движением цены и в чем оно состоит?

Для более подробного изучения этого вопроса решил быстренько написать небольшую программу и визуально проанализировать.

На графике верхняя и средняя область (а нижний объем) — это свечные графики цены по ES. Один из них построен по реальным ценам, второй по случайным значениям. Как думаете какой из них реальный и почему?
Случайность цен: Давайте проанализируем и посмотрим

Подумали? Вот ответ, на верхнем — реальные цены, а на среднем — случайное блуждание. На сколько они схожи или отличаются и в чем? Прошу высказываться! ;)

 

Для желающих «побаловаться» и покопаться поглубже предлагаю скачать мою программку вот тут https://cloud.mail.ru/public/35qz/rAuePAS63 (вирусов нет). Для работы требует .net 4.5 у кого нет могут установить от сюда 



( Читать дальше )

Я и программирование

Не умея программировать, я ощущаю себя неполноценным человеком. Это всё равно что не знать английского языка в современном мире. Вообще, я закончил политех, факультет тех. кибернетики, поэтому программировать обязан был по определению. Но не пошло. Как я программировал в универе? 

1. был у нас предмет ТПП. Теория технология программирования. Вёл его замдекана Евдокимов Виктор Евгеньевич. Так вёл, как будто всё уже давно умеют программировать и иногда шутил. Но проблема была в том, что все кто сидел на лекции на первом курсе, действительно похоже умели программировать, а я один сидел и ни черта не мог понять.
Я и программирование 
Я даж тогда карикатуру нарисовал про лекции по ТПП:
Я и программирование

2. был у нас предмет компьютерная графика. Вёл Сальников Вячеслав Юрьевич. Там были жесткие лабы и это был единственный раз, когда я реально был вынужден чего-то программировать на C++. Сальников был норм препод, я ничерта не понимал, как всегда, но можно было растопить лёд кое-как.

3. был у нас предмет по микропроцессоррам. Лобан Валерий Иванович. Я едва успевал чото делать. Помню свой шок, когда для какой-то лабы он сказал невзначай — ну а тут вам надо налабать драйвер на ассемблере, чтобы подключить микропроц к компу. Тут я ваще в осадок выпал. Как я это в состоянии сделать? Меня этому никто не учил! Нет же никаких книг и инструкций на эту тему!!! Где узнать как это сделать? Купил даже какую-то толстую книгу по ассемблеру, прочел страниц 30, и забросил....


( Читать дальше )

История успеха

Написал бектестер на С++ для тестирования скальперских стратегий, с перспективой дописания его до рабочего робота. Вот только прибыльную стратегию родить так и не смог. Теперь вот не знаю, как поиметь какой-нибудь профит с разработки. Возможно заинтересованная общественность что-нибудь предложит.

Тут хочется сделать некоторое отступление и написать немножечко о С++. Здесь на сайте частенько попадаются сообщения в стиле «хочешь быстрого робота, пиши на плюсах!». Понятно что большинство здешних «программистов», советующих или критикующих С++, дальше lua (в лучшем случае C#) ничего не трогало, поэтому помимо высокой скорости работы программ, написанных на С++, единственное, что ещё упоминается, так это то, что писать программы на этом С++ безумно сложно. Отчасти это так, однако современный С++ (11-й и 14-й стандарты) — это (простите за тавтологию) современный язык программирования, который в выразтиельности программ может вполне потягаться с тем же С#.

Вобщем что может мой бектестер сейчас:

( Читать дальше )

....все тэги
UPDONW
Новый дизайн