Марковские цепи - примеры алфавитов

  • Автор темы mehanizator1
  • Дата начала

mehanizator1

New member
Суть исследования рынка как марковской цепи, то есть как последовательности связанных состояний, состоит в том, чтобы определить эти состояния и матрицу вероятностей переходов между ними. А по матрице будет видно, если вдруг проявится какая-нибудь интересная зависимость.

Возьмем в качестве подопытного кролика Газпром в виде дневных баров с начала 2006 года. Определим следующий алфавит из двух букв: растущий рынок U - когда закрытие дня выше или равно закрытию прошлого дня, и соответственно падающий рынок D. Поиграв с вероятностями переходов, получаем следующие результаты:

Код:
state D (457) 0.4811
state U (493) 0.5189

level 1

D => D ( 200) 0.4376 / 0.9097
D => U ( 257) 0.5624 / 1.0837
U => D ( 257) 0.5224 / 1.0859
U => U ( 235) 0.4776 / 0.9204

level 2

DD => D (  85) 0.4250 / 0.8835
DD => U ( 115) 0.5750 / 1.1080
DU => D ( 126) 0.4922 / 1.0231
DU => U ( 130) 0.5078 / 0.9785
UD => D ( 115) 0.4475 / 0.9302
UD => U ( 142) 0.5525 / 1.0647
UU => D ( 131) 0.5574 / 1.1588
UU => U ( 104) 0.4426 / 0.8528

level 3

DDD => D (  27) 0.3176 / 0.6603
DDD => U (  58) 0.6824 / 1.3149
DDU => D (  60) 0.5217 / 1.0846
DDU => U (  55) 0.4783 / 0.9216
DUD => D (  55) 0.4365 / 0.9074
DUD => U (  71) 0.5635 / 1.0858
DUU => D (  73) 0.5615 / 1.1673
DUU => U (  57) 0.4385 / 0.8449
UDD => D (  58) 0.5043 / 1.0484
UDD => U (  57) 0.4957 / 0.9551
UDU => D (  66) 0.4681 / 0.9730
UDU => U (  75) 0.5319 / 1.0250
UUD => D (  60) 0.4580 / 0.9521
UUD => U (  71) 0.5420 / 1.0444
UUU => D (  57) 0.5481 / 1.1393
UUU => U (  47) 0.4519 / 0.8708
Здесь результаты представлены в следующем виде:
последовательность предыдущих состояний => текущее состояние (число случаев) вероятность перехода / коэффициент К

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

Попробуем теперь посчитать другой алфавит. Определим коэффициент r=(C-O)/(H-L). Он определяет отношение дневного изменения цены к внутридневной волатильности. Будем считать день, когда r по модулю больше 0.5 трендовым состоянием T, а когда меньше соответственно боковиком F. Для такого алфавита получаются следующие вероятности:

Код:
state F (485) 0.5105
state T (465) 0.4895

level 1

F => F ( 239) 0.4938 / 0.9672
F => T ( 245) 0.5062 / 1.0342
T => F ( 246) 0.5290 / 1.0362
T => T ( 219) 0.4710 / 0.9622

level 2

FF => F ( 123) 0.5146 / 1.0081
FF => T ( 116) 0.4854 / 0.9916
FT => F ( 128) 0.5224 / 1.0234
FT => T ( 117) 0.4776 / 0.9756
TF => F ( 116) 0.4735 / 0.9274
TF => T ( 129) 0.5265 / 1.0757
TT => F ( 118) 0.5388 / 1.0554
TT => T ( 101) 0.4612 / 0.9422

level 3

FFF => F (  63) 0.5122 / 1.0033
FFF => T (  60) 0.4878 / 0.9966
FFT => F (  53) 0.4569 / 0.8950
FFT => T (  63) 0.5431 / 1.1096
FTF => F (  61) 0.4766 / 0.9335
FTF => T (  67) 0.5234 / 1.0694
FTT => F (  57) 0.4872 / 0.9543
FTT => T (  60) 0.5128 / 1.0477
TFF => F (  60) 0.5172 / 1.0132
TFF => T (  56) 0.4828 / 0.9863
TFT => F (  75) 0.5814 / 1.1388
TFT => T (  54) 0.4186 / 0.8552
TTF => F (  55) 0.4701 / 0.9208
TTF => T (  62) 0.5299 / 1.0826
TTT => F (  61) 0.6040 / 1.1830
TTT => T (  40) 0.3960 / 0.8091
Теперь попробуем сделать алфавит из трех букв.
U: растущий рынок, r>=0.35
F: боковой рынок, -0.35<=r<0.35
D: падающий рынок, r<-0.35

Код:
state F (320) 0.3368
state D (340) 0.3579
state U (290) 0.3053

level 1

F => F ( 100) 0.3135 / 0.9306
F => D ( 120) 0.3762 / 1.0511
F => U (  99) 0.3103 / 1.0166
D => F ( 126) 0.3706 / 1.1002
D => D ( 103) 0.3029 / 0.8465
D => U ( 111) 0.3265 / 1.0695
U => F (  94) 0.3241 / 0.9623
U => D ( 117) 0.4034 / 1.1273
U => U (  79) 0.2724 / 0.8924

level 2

FF => F (  30) 0.3000 / 0.8906
FF => D (  42) 0.4200 / 1.1735
FF => U (  28) 0.2800 / 0.9172
FD => F (  46) 0.3833 / 1.1380
FD => D (  35) 0.2917 / 0.8150
FD => U (  39) 0.3250 / 1.0647
FU => F (  28) 0.2828 / 0.8396
FU => D (  45) 0.4545 / 1.2701
FU => U (  26) 0.2626 / 0.8603
DF => F (  40) 0.3200 / 0.9500
DF => D (  45) 0.3600 / 1.0059
DF => U (  40) 0.3200 / 1.0483
DD => F (  40) 0.3883 / 1.1529
DD => D (  29) 0.2816 / 0.7867
DD => U (  34) 0.3301 / 1.0814
DU => F (  33) 0.2973 / 0.8826
DU => D (  47) 0.4234 / 1.1831
DU => U (  31) 0.2793 / 0.9149
UF => F (  30) 0.3191 / 0.9475
UF => D (  33) 0.3511 / 0.9809
UF => U (  31) 0.3298 / 1.0803
UD => F (  40) 0.3419 / 1.0150
UD => D (  39) 0.3333 / 0.9314
UD => U (  38) 0.3248 / 1.0640
UU => F (  33) 0.4177 / 1.2401
UU => D (  25) 0.3165 / 0.8842
UU => U (  21) 0.2658 / 0.8708

level 3

FFF => F (   8) 0.2667 / 0.7917
FFF => D (  16) 0.5333 / 1.4902
FFF => U (   6) 0.2000 / 0.6552
FFD => F (  12) 0.2857 / 0.8482
FFD => D (  15) 0.3571 / 0.9979
FFD => U (  15) 0.3571 / 1.1700
FFU => F (  12) 0.4286 / 1.2723
FFU => D (  12) 0.4286 / 1.1975
FFU => U (   4) 0.1429 / 0.4680
FDF => F (  18) 0.3913 / 1.1617
FDF => D (  18) 0.3913 / 1.0934
FDF => U (  10) 0.2174 / 0.7121
FDD => F (  17) 0.4857 / 1.4420
FDD => D (   8) 0.2286 / 0.6387
FDD => U (  10) 0.2857 / 0.9360
FDU => F (  10) 0.2564 / 0.7612
FDU => D (  17) 0.4359 / 1.2179
FDU => U (  12) 0.3077 / 1.0080
FUF => F (   9) 0.3214 / 0.9542
FUF => D (  10) 0.3571 / 0.9979
FUF => U (   9) 0.3214 / 1.0530
FUD => F (   9) 0.2000 / 0.5938
FUD => D (  19) 0.4222 / 1.1797
FUD => U (  17) 0.3778 / 1.2375
FUU => F (  12) 0.4615 / 1.3702
FUU => D (   7) 0.2692 / 0.7523
FUU => U (   7) 0.2692 / 0.8820
DFF => F (  14) 0.3500 / 1.0391
DFF => D (  16) 0.4000 / 1.1176
DFF => U (  10) 0.2500 / 0.8190
DFD => F (  14) 0.3111 / 0.9236
DFD => D (  13) 0.2889 / 0.8072
DFD => U (  18) 0.4000 / 1.3103
DFU => F (   7) 0.1750 / 0.5195
DFU => D (  22) 0.5500 / 1.5368
DFU => U (  11) 0.2750 / 0.9009
DDF => F (   9) 0.2250 / 0.6680
DDF => D (  16) 0.4000 / 1.1176
DDF => U (  15) 0.3750 / 1.2284
DDD => F (  10) 0.3448 / 1.0237
DDD => D (   9) 0.3103 / 0.8671
DDD => U (  10) 0.3448 / 1.1296
DDU => F (  12) 0.3529 / 1.0478
DDU => D (  11) 0.3235 / 0.9040
DDU => U (  11) 0.3235 / 1.0598
DUF => F (   9) 0.2727 / 0.8097
DUF => D (  15) 0.4545 / 1.2701
DUF => U (   9) 0.2727 / 0.8934
DUD => F (  20) 0.4255 / 1.2633
DUD => D (  14) 0.2979 / 0.8323
DUD => U (  13) 0.2766 / 0.9061
DUU => F (  12) 0.3871 / 1.1492
DUU => D (  10) 0.3226 / 0.9013
DUU => U (   9) 0.2903 / 0.9511
UFF => F (   8) 0.2667 / 0.7917
UFF => D (  10) 0.3333 / 0.9314
UFF => U (  12) 0.4000 / 1.3103
UFD => F (  20) 0.6061 / 1.7992
UFD => D (   7) 0.2121 / 0.5927
UFD => U (   6) 0.1818 / 0.5956
UFU => F (   9) 0.2903 / 0.8619
UFU => D (  11) 0.3548 / 0.9915
UFU => U (  11) 0.3548 / 1.1624
UDF => F (  13) 0.3333 / 0.9896
UDF => D (  11) 0.2821 / 0.7881
UDF => U (  15) 0.3846 / 1.2599
UDD => F (  13) 0.3333 / 0.9896
UDD => D (  12) 0.3077 / 0.8597
UDD => U (  14) 0.3590 / 1.1760
UDU => F (  11) 0.2895 / 0.8594
UDU => D (  19) 0.5000 / 1.3971
UDU => U (   8) 0.2105 / 0.6897
UUF => F (  12) 0.3636 / 1.0795
UUF => D (   8) 0.2424 / 0.6774
UUF => U (  13) 0.3939 / 1.2905
UUD => F (  11) 0.4400 / 1.3063
UUD => D (   6) 0.2400 / 0.6706
UUD => U (   8) 0.3200 / 1.0483
UUU => F (   9) 0.4286 / 1.2723
UUU => D (   7) 0.3333 / 0.9314
UUU => U (   5) 0.2381 / 0.7800
 

Данила

New member
Для того, чтобы попытаться на этом заработать кое-чего не хватает: допустим, с большой вероятностью, по предыдущей комбинации следующая свеча будет белой, но здесь не учитывается её размер. Можно угадывать правильное направление большее количество раз, но при этом остаться с убытком.
 

mehanizator1

New member
Для того, чтобы попытаться на этом заработать кое-чего не хватает: допустим, с большой вероятностью, по предыдущей комбинации следующая свеча будет белой, но здесь не учитывается её размер. Можно угадывать правильное направление большее количество раз, но при этом остаться с убытком.
само собой, нужна еще матрица перехода "состояние" -> "доходность" для конкретной стратегии. это второй этап.
 
Правильно ли я понимаю, по Level 3 из первой задачи,
что вероятность, что после DDD пойдёт U равна 68%?

а что за коэффициент К так и не понял...
 

mehanizator1

New member
Правильно ли я понимаю, по Level 3 из первой задачи,
что вероятность, что после DDD пойдёт U равна 68%?
да
а что за коэффициент К так и не понял...
средний уровень для U 52%, а здесь целых 68%, отношение 68/52 и есть коэффициент K
 
средний уровень для U 52%, а здесь целых 68%, отношение 68/52 и есть коэффициент K
о! спасибо, так понятнее...

теперь ищем максимумы по К из всего списка ... и вот сильные фишки

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

или такие буквы, как:
К[рахъ] = (O - C) > 7000 по РИ
и
Н[икто_не_ждал_прихода_испанской_инквизиции] = (H - L) < 3000

тоже могут составлять алфавит?

т.е. эти две буквы не описывают всего-всего?
 

Anchorit

New member
Мех, а почему Вы взяли именно период с 2006 по 2009 год?
Где-то читал у Вас, что сейчас рынок таков, что для тестирования систем бесполезно брать данные ранее 2008.

Если взять за период расчета скажем, месяц или два, сильно отличаются вероятности переходов для разных периодов на промежутке 2006-2009?
 

mehanizator1

New member
Мех, а почему Вы взяли именно период с 2006 по 2009 год?
Где-то читал у Вас, что сейчас рынок таков, что для тестирования систем бесполезно брать данные ранее 2008.
для интрадея да, для дневок 4 года нормально. тут я попытался вытащить некое среднее поведение акции на дневках.

Если взять за период расчета скажем, месяц или два, сильно отличаются вероятности переходов для разных периодов на промежутке 2006-2009?
ну я сейчас все брошу и начну разные периоды проверять :) конечно же разница будет, это и так понятно. даже из-за случайных флуктуаций.
 

conquistador99

New member
Позволил себе проанализировать вероятностный метод.
На примере Up-Down видно только то, что Газпрому не дают "упасть", так как вероятность Up после Down всегда повышена и чем больше подряд Даунов, тем вероятнее Ап.
В остальном вероятности не очень отличаются от 1/2.
 

conquistador99

New member
Если же увеличивать число состояний и глубину последовательности, то очень скоро получим необозримую таблицу, в которой будут только две цифры: 0 и 1 (было - не было), что совершенно ни о чем говорить не будет из-за малого числа ситуаций.
Хотя, возможно, что интересное и выплывет. Или я не прав? У кого какие мнения?
 

mehanizator1

New member
давайте посчитаем.

игра с 52% выйгрышей и равными исходами.

это значит, что на одну ставку в среднем получается 4% прибыли от размера ставки.

согласно критерию келли оптимальный размер ставки равен f=(вероятность прибыли - вероятность убытка)=4% от капитала. то есть на одну ставку в среднем получается 0.16% прибыли. в нашем случае - в день. в год это получается 1.0016^250=1.49=49% прибыли.
 

conquistador99

New member
на одну ставку в среднем получается 4% прибыли от размера ставки.
Немного недопонял Вашу методу, поэтому приведу свою. Одна из минимальных брокерских комиссий составляет 0.03% с оборота. То есть сделав 100 сделок, Вы заплатите 3%. При этом Вы 52 раза выиграете и 48 раз проиграете. Если принять среднюю величину выигрыша за пару сделок "купить-продать" в 1.5% (что близко к реальности), получим прибыль 0%.
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху