Избранное трейдера Чужой

по

Индикатор "Параболическая регрессия/тренд" (Бонус к линейной)

Предыдущая часть: smart-lab.ru/blog/337952.php

Для всех QUIKеров в свободное пользование индикатор «Параболическая регрессия/тренд» (LUA).

Индикатор "Параболическая регрессия/тренд" (Бонус к линейной)

Settings = 
{
        Name = "xLinRegP",
        period = 128,
        deviation=2,
        line=
        {
                {
                        Name = "xLinRegP",
                        Color = RGB(128, 128, 255),
                        Type = TYPE_LINE,
                        Width = 4
                },
                {
                        Name = "xLinRegP",
                        Color = RGB(192,128,128),
                        Type = TYPE_LINE,
                        Width = 4
                },
                {
                        Name = "xLinRegP",
                        Color = RGB(96, 128,96),
                        Type = TYPE_LINE,
                        Width = 4
                }
        
        }
}

----------------------------------------------------------
----------------------------------------------------------
----------------------------------------------------------
function cached_FF()
        local AMA={}
        local CC={}
        local II2 = 0
        local II4 = 0
        
        
        return function(ind, _p,_ddd)
                local period = _p
                local index = ind
                
                local vol = 0
        
                local sigma = 0
                local sigma2 = 0
                local sigma3 = 0
                local sigma4 = 0

                local aav = 0
                local aa = 0
                local bb = 0
                local cc = 0
                local ZZZ = 0
                local ttt = 0


                                                
                if index == 1 then
                        
                        AMA={}
        
                        CC={}

                        CC[index]=(C(index)+H(index)+L(index))/3
                
                        AMA[index]=(C(index)+O(index))/2
                
                                II2=0
                                II4=0
                        for i = 0, period-1 do
                                ttt=(-(period-1)/2+i)^2
                                II2=II2+ttt
                                II4=II4+ttt^2
                        end
                
                        return nil
                end
                
                ------------------------------
                
                        AMA[index]=AMA[index-1]
                        ----------------------------------
                        CC[index]=(C(index)+H(index)+L(index))/3
                        ---------------------
                


                        
                if index < (Size()-2) then return nil end
                
                ----------------------------------------------------


                sigma=0
                sigma2=0
                sigma3=0
                sigma4=0
                aav=0
                ZZZ=0
                for i = 0, period-1 do
                        ZZZ=CC[index+i-period+1]
                        
                        aav=aav+ZZZ
                        sigma=sigma+ZZZ*(-(period-1)/2+i)
                        ttt=(-(period-1)/2+i)^2
                        sigma3=sigma3+ZZZ*ttt
                end
                
                ------------------------
        bb=sigma/II2
    cc=(sigma3-aav*II2/period)/(II4-II2*II2/period)
        aa=(aav-cc*II2)/period
        aav=aav/period
                
        AMA[index]=aa+bb*((period-1)/2)+cc*((period-1)/2)^2             ------- парабола
        -------------------------------

                
                sigma=0
                sigma2=0
                sigma3 = 0
                for i = 0, period-1 do
                        ZZZ=CC[index+i-period+1]
                        sigma2=aa+bb*(-(period-1)/2+i)+cc*(-(period-1)/2+i)^2           ------- парабола
                        sigma=sigma+(ZZZ-sigma2)^2

                end
                sigma=(sigma/period)^(1/2)
                
                for i = 1, period-1 do
                        ZZZ=aa+bb*(-(period-1)/2+i)+cc*(-(period-1)/2+i)^2
                        SetValue(index+i-period+1, 3, ZZZ)
                        SetValue(index+i-period+1, 2, ZZZ+sigma*_ddd)
                        SetValue(index+i-period+1, 1, ZZZ-sigma*_ddd)

                end     
                        SetValue(index+0-period+1, 3, nil)
                        SetValue(index+0-period+1, 2, nil)
                        SetValue(index+0-period+1, 1, nil)
        
                
                ----------------------------------
                                                                
                        return AMA[index]-sigma*_ddd,AMA[index]+sigma*_ddd, AMA[index]
                        
        end
end
----------------------------    ----------------------------    ----------------------------
----------------------------    ----------------------------    ----------------------------
----------------------------    ----------------------------    ----------------------------

function Init()
        myFF = cached_FF()

        return 3
end

function OnCalculate(index)
        
        return myFF(index, Settings.period,Settings.deviation)
        
                
end




Для 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



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

оп! Увидел в телике фильм на нашу тему: "Представь себе"

Эдди Мерфи, трейдер:)
оп! Увидел в телике фильм на нашу тему: "Представь себе"
Фильм с Эдди Мерфи. Идёт прям счас по СТС...

Вот что пишет про него кинопоиск:
Эван Дэниелсон — успешный финансовый аналитик, который так занят работой, что совсем не уделяет внимания своим домашним. Но однажды его карьера оказывается под угрозой. Тут-то неожиданно и выясняется, что маленькая дочка Эвана в своих рисунках каким-то чудесным образом предсказывает биржевые котировки. Эван находит выход из, казалось бы, безнадежной ситуации, и это заставляет его пересмотреть свое отношение к семье…
Почему я обратил на него внимание?
1. Потому что я его не видел и не слышал про него до этого.
2. Потому что его нет в нашем списке фильмы про биржу 

Зайдите кстати по ссылочке, там почти всё собрано:))

Легендарный Гарвардский курс CS50 на русском

Легендарный Гарвардский курс CS50 на русском


Трейдеру не обязательно быть программистом, но общие знания и основы желательны.
Более 30 лет существует суперпопулярный курс основ программирования переведен на многие языки, рассчитанный на слушателей от 12 лет)) и непрофильных студентов. На русском не было.
На хабре нашел статью, ребята из javarush занялись переводом на русский( не просто субтитры, а качественный перевод). В комментах пишут, что даже жена Сергея Брина прослушав этот курс, переехала в Кремниевую  долину и стала исполнительным директором Ютюба.
25  бесплатных лекций по 45 минут — рекоммендую

Маржинальная торговля и иммунитет к Margin Call.

    • 19 июня 2016, 14:08
    • |
    • ШОУ
  • Еще

Доброе.

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

Данный пост будет больше относиться к интрадэям и спекулянтам, которые строят свою торговлю на  использовании плечей на рынке акций московской биржи. Когда получив и вовремя не закрыв большой убыток, уже становится трудно с ним расстаться, лелея надежды выйти в прибыль, что в свою очередь создает  избирательное мышление в дальнейшем —  в направлении  собственной позиции. Что же ждет при таком сценарии развития событий?

Кто не вышел из убыточной позиции по любым причинам — усреднение, глупость, тильт, обязан бороться за свой счет. Надо точно знать УДС, так как если УДС будет меньше 0, брокер принудительно закроет маржинальные позиции, восстановив УДС к 1,0 при этом убыток будет примерно около 60 % от счета.

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

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

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

У всех разные стратегии спекуляций. Кто-то торгует при отбое цены от кого-то уровня, где шла проторговка, кто-то ловит разворот, торгуя в противоход движению цены. Обе стратегии имеют место быть, и обе дают прибыль, важно ограничение убытков. Убытки в обоих случаях  спекуляций естественная часть торговли. И это надо принять как должное. А вот соотношение прибыльных и убыточных сделок и величина стоп-профит дает счету либо расти, либо уменьшаться. 

УДС — Уровень достаточности средств 
= (Стоимость Портфеля — Мин. Маржа) / (Нач. Маржа – Мин. Маржа). 
На счете без открытых позиций УДС = 9,99. 
УДС < 1 – Ситуация движется в сторону принудительного закрытия позиций Клиента; 
УДС < 0 –После наступления этого события Брокер обязан произвести принудительное закрытие позиций Клиента. 

Если по счету УДС уже 0,2, надо начинать скидывать лоты и быть готовым к еще большим скидкам для положительного УДС. Если счет не большой и есть средства на доливку этим необходимо воспользоваться, так можно сократить плечи, восстановить УДС, тем самым уменьшить ежедневную комиссию. Но на высвободившиеся плечи торговать не рекомендуется, так как очень большое психологическое давление. Надо ждать. И это будет борьба за выживание собственного счета, над которым идет эксперимент (по-другому это сложно назвать), но если так идет борьба за счет из заемных средств или средств под управлением, то надо  остановиться  и кардинально пересмотреть свою торговлю. Также загонял в просадку для эксперимента свой счет, и при УДС ниже 0,2  расставлял стопы, так как могут быть мощные проливы или отсутствие у монитора или техническое ограничение доступа к торговле (сбой компьютера  и программ,  интернет, электричество).  Но стопы нужно корректировать каждый день, так как счет уменьшается из-за убытков (комиссия ежедневная с плеч), уменьшается УДС и стопы надо корректировать и ставить до отмены.

Всё это крайне запущенное состояние убыточной  позиции. В действительности для  прибыльной торговли допускать пике депо, с одной только надеждой на возврат цены, не допускается. Вход всегда выполняется по собственным выработанным правилам, как и выход. Надо быть готовым к любому сценарию развития событий, зависать — тильтовать не следует. И если цена идет против позиции, надо признать ошибку сразу и избавиться от убытка, когда он ещё мал.  И если УДС набранных  плечей — чуть больше 1,0, то фикс убытка будет на несколько сотых УДС ниже (был УДС 1,05 – фиксация на УДС 1,02), и это несколько % убытка по счету. Если всегда у монитора, то закрывать можно руками, но это крайне опасно (технический сбой оборудования – это отсутствие контроля), а так и если удаляетесь – стоп и тейк-профит до отмены. Десятки раз наблюдал, как цена, пробивая поддержку или сопротивление стремительно двигалась против позы и после усреднения (улучшения средней) цена, произведя коррекцию к движению подходила к средней (БУ), и именно фиксация там позволяла избежать больших убытков при возобновлении  движения цены против позиции. Эта стратегия выхода из убытков намного рискованнее, чем стоп-лосс, но позволяет выйти с меньшими убытками, конечно  с вероятностью 50/50, вместо фиксированного убытка по стопу, что является повышенным риском.

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

Убытки необходимо закрывать сразу, а при усреднении, очень часто цена делает откат и доходит до средней цены (искушая, и вселяя надежду на выход в прибыль), давая умным (признавшим сразу свою ошибку) возможность выйти в 0 или с минимальным убытком, но если это не сделать, то результат будет очевиден – это слив части счета… Отсюда можно сделать вывод, что менее рискованно пересиживать  просадки цены инвесторам, которые  находятся в лонгах и только на свои средства. Конечно, это тоже под большим вопросом и выдерживают ли из них многие. Инвесторам маржин колл не грозит, но грозит многократное обесценивание бумаги, где играет фактор времени и политика эмитента. Держать убыточные позиции с плечами в шортах или в лонгах — это очень большой риск, и в большинстве случаев эти убытки направлены на маржин колл (Margin Call). 

Margin Call – обстоятельство, при котором осуществляется принудительное закрытие убыточной сделки брокером. Такое происходит, когда уровень достаточности средств счета приблизился к 0, либо при стремительном движении цены не в нужную сторону, когда баланс счета, необходимый для поддержания суммы залога всех активных сделок, приблизился к нулю. 

И для тех, кто дочитал до конца. Раскрою один секрет.  Есть масса переменных, которые влияют на движение цены, все их знать, увязывая в логические цепочки и оперативно принимать правильные решения — это большой труд долгих лет торговли и самоанализа, при том что рынок постоянно меняется. Индикаторы создают лишь иллюзию контроля за движением цены. Намного легче имея длинные деньги собирать портфель и тянуть годами или месяцами при быстрых движениях. Многие акции двигаются разнонаправленно, компенсируя убыток по счету в целом — взял бумагу  на 10% от счета, а цена просела на -5-10% и что? убыток всего -0,5-1% по позиции. А с 3-5 плечами убыток уже -15-50%! И где легче обнулить счет? Правильно — это торгуя и гадая с максимум плеч,  не ограничивая убытки, и не фиксируя профит. Так значит, нужен постоянный контроль над убытками и профитом!

P.S. Привет интрадэям! Снег, твоё творчество всегда мне импонировало, продолжай, ведь для чего-то это нужно. 


Видео курс по бухгалтерскому учету! Фундаментал - часть 1

На смарт-лабе думаю многие уже знают, а есть и те кто еще незнает но очень хотел бы знать как фунционирует весь бухгалтерский учет и что из себя представляет эта финансовая отчетность...
Специально для тех кто давно хотел и думал с чего начать или продолжить наработку знаний по бухгалтерскому учету...
Видео курс поэтапно рассказывает как и что отражается в учете компании и как это все по итогу отразится в отчетности...
По литературе посоветовал бы данного автора т.к. излагает он все более проще и понятнее https://www.ozon.ru/context/detail/id/15883022/ 
Поехали: Сохраняем к себе и изучаем!
Финансовая отчетность в 3D. Часть 1

Логика дебетования и кредитования. Часть 2

Модели проводок. Часть 3

Т-счета. Часть 4


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

Применение ARIMA для предсказания цены на RIM6 на R (Часть 2)

    • 09 июня 2016, 12:28
    • |
    • SciFi
  • Еще
Вчера написал пост Применение ARIMA для предсказания цены на RIM6 на R

Но в нем было всего 2 сделки. Непрезентативно. 

Попробовал сегодня еще раз руками поскальпить, предсказывая цену с помощью R на ближайшие 5 минут. В принципе, заработал 500 р за 17 сделок (34 операции) 1 лотом RIM6.  

Применение ARIMA для предсказания цены на RIM6 на R (Часть 2)

Выводы

1. ARIMA работает как я ожидал в том плане, что когда цена сильно падает, модель предсказывает цену ниже, когда цена стоит — предсказание примерно как цена закрытия. Спред считается хорошо — заявки исполняются. Когда модель предсказывает цену ниже текущей, нужно ставить заявку только на шорт. А то я ловил ножи и выходил с убытком несколько раз. 

2. Я закрывал сделку по цели, не давал прибыли течь. Может быть стоит сначала предсказывать цену на следующие 5 минут и если цена ниже, то шорт не закрывать, а держать дальше, двигая заявку на выкуп. Тогда будет экономия на комиссии и может быть удастся ловить крупные движения. 

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

Применение ARIMA для предсказания цены на RIM6 на R

    • 08 июня 2016, 12:48
    • |
    • SciFi
  • Еще
Решил копнуть чуть глубже в ARIMA и другие подобные модели. Попробовал предсказывать цену, а точнее, диапазон цен на ближайшую минуту и 5 минут и на этом сделать какие-то деньги. И что интересно, получилось. Хотя, возможно, это случайность отчасти, не тестировал на большом горизонте времени.

В комментариях к коду все есть.

ARIMA (англ. autoregressive integrated moving average, иногда модель Бокса — Дженкинса, методология Бокса — Дженкинса) — интегрированная модель авторегрессии — скользящего среднего — модель и методология анализа временных рядов. 

Основная идея этой модели в том, что цена в будущем зависит от цен в прошлом (авторегрессионная часть AR) и возврата к среднему (MA часть). А интегрированность означает то, что предварительно определяется порядок интегрированности для временного ряда. К примеру, порядок 1 означает, что разности 1 порядка являются стационарными. Для самой цены порядок интегрированности должен получаться равным 1, а для доходностей — 0. 

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

Анализ коинтеграции пар активов на R и можно ли торговать RTS только по Brent

    • 02 июня 2016, 06:47
    • |
    • SciFi
  • Еще
Продолжаю изучать R и делиться кодом. На этот раз проанализируем коинтегрированность. Вообще, торговать корреляции опасно, так как они могут оказаться случайными. Гораздо безопаснее коинтеграцию. Хотя и она может ломаться.

Далее используется тест Энгла-Грэнджера. Тест основан на коинтеграционном уравнении, оценённом с помощью обычного МНК. Идея теста заключается в том, что если остатки этой модели нестационарны (имеют единичный корень), то коинтеграция временных рядов отсутствует. Нулевая гипотеза — отсутствие коинтеграции, то есть наличие единичного корня в ошибках модели (коинтеграционного уравнения). Для проверки гипотезы единичного корня применяется статистика расширенного теста Дики-Фулера, однако в отличие от классического случая этого теста в данном случае критические значения статистики иные, они больше по абсолютной величине.


Коинтеграция Si со спотом
 

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

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