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

по

Скачки в раундтрипе

Вопрос к тем трейдерам, у которых сервер на колокейшене. Наблюдаю скачки раундтрипа ( а если точнее, времени с момента прихода коллбэка до времени прихода собственных ордеров в ордерлог) в миллисекундах:

Скачки в раундтрипе

Вопрос, собственно, такой: это нормальная ситуация, то есть, биржа так лагает, или мне нужно искать у себя проблемы в аппаратной или программной части? Подозреваю, что узкое место у меня, поэтому буду благодарен за совет от коллег, кто добился стабильно малых задержек.

Не нравятся нейронные сети? Вы просто не умеете их готовить. Рецепт.

                                                               
Не нравятся нейронные сети? Вы просто не умеете их готовить. Рецепт. 
                                                                                                                                                                Silentium est aurum

                                                                Молчи, пока ты не в состоянии сказать нечто такое, что полезнее твоего молчания.                                                                                                                                                                                         (кто-то умный сказал)



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

Применение модели 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).

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

Применение наивного байесовского классификатора на R для поиска закономерностей и прогнозирования

    • 09 мая 2016, 13:48
    • |
    • SciFi
  • Еще
В последнее время изучаю R и машинное обучение. 

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

В этом посте я расскажу о том, как применить машинное обучение для поиска закономерностей и прогнозирования.

Использовал эту статью: Применение машинного обучения в трейдинге

Начнем с проверки того, работают ли тренды и как влияет день недели на направление движения цены. И если работают, насколько они смещают вероятность в нашу сторону. Применим для этого наивный байесовский классификатор. 

Теорема Байеса в теории вероятностей, как теорема Пифагора в геометрии.

Байесовская вероятность — это интерпретация понятия вероятности, используемая в байесовской теории. Вероятность определяется как степень уверенности в истинности суждения. Для определения степени уверенности в истинности суждения при получении новой информации в байесовской теории используется теорема Байеса. 

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

Расчет ожидаемого количества убыточных сделок подряд на R

    • 04 мая 2016, 21:35
    • |
    • SciFi
  • Еще
Применим R для того, чтобы быстро посчитать, каково должно быть ожидаемое количество убыточных сделок подряд при совершении 1000 сделок.

Я написал функцию runUnluck(n) которая выдает, сколько раз мы получим n убыточных сделок подряд, если совершим 10000 экспериментов по 1000 сделок в виде подбрасывания монетки, то есть с отношением риска к доходности 1 к 1.

# Created by SciFi, 2016

runUnluck <- function(n) {
        runArray <- numeric(10000)
        for(i in 1:10000) {
                runArray[i] <- sum(rle(sample(c(-1, 1), 1000, TRUE))$lengths == n)
        }
        hist(runArray, main="Гистограмма")
        mean(runArray)
}

Здесь подробнее про функцию rle. Она как раз считает количество одинаковых исходов подряд. 

Результаты:
> source("D:\\Dropbox\\R\\RunUnluck.r")
> runUnluck(6)
[1] 7.8161
> runUnluck(2)
[1] 125.2208
> runUnluck(3)
[1] 62.4047
> runUnluck(4)
[1] 31.179
> runUnluck(5)
[1] 15.6559
> runUnluck(6)
[1] 7.7635
> runUnluck(7)
[1] 3.8831
> runUnluck(8)
[1] 1.9382
> runUnluck(9)
[1] 0.9738
> runUnluck(10)
[1] 0.4922


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

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

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

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

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

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

Всем привет! Индикатор для QUIK - нештатный, нашару

Всем привет! 
Чуть о себе: зарабатываю на российском рынке (только для себя), делаю торговые программы (для себя и для других).
Давно читаю Smart-lab, нахожу что-то полезное и интересное. Вот добавлю одну свою легенькую утилитку для Квика, надеюсь пригодится.

Всем привет! Индикатор для QUIK - нештатный, нашару

Индикатор Fractal_Chennal, рисует уровни по «фракталам» с задаваемым периодом. В отличии от штатного  «Fractals» дожидается окончательного формирования формации. Я его использовал в качестве трейлинг-стопа в некоторых программах. Отдает два значения скриптам.
Код:

Settings={
Name = "Fractal_Chennal",
period=5,
line={
{
Name = "Level_High",
Type =TYPE_LINE,-- = LINE --линии  = DASH -- тире  = POINT -- точки
Width = 1,
Color = RGB(0,255, 0)--green
},
{
Name = "Level_Low",
Type =TYPE_LINE,
Width = 1,
Color = RGB(255,0,0)--root
}}}

idx_prosl=0

function Init()
return 2
end

function OnCalculate(idx)
if idx==1 then
P = math.floor(Settings.period/2)*2+1
message("Код бумаги: "..getDataSourceInfo().sec_code.." ; период индикатора: "..P,1)
t_H,t_L={},{}
end
if idx~=nil and idx>P then
if idx_prosl~=idx then
local l=idx-P
for l=l,idx-1 do
t_H[l]=H(l)
t_L[l]=L(l)
end
if t_H[#t_H-(P-1)/2]==math.max(unpack(t_H,#t_H-P+1,#t_H)) then
H_ind_value=t_H[#t_H-(P-1)/2]
end
if t_L[#t_L-(P-1)/2]==math.min(unpack(t_L,#t_L-P+1,#t_L)) then
L_ind_value=t_L[#t_L-(P-1)/2]
end
end
else
H_ind_value=nil
L_ind_value=nil
end
idx_prosl=idx
return H_ind_value, L_ind_value
end
Как пользоваться:

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

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