Lafert
Lafert личный блог
17 октября 2014, 12:02

Еще раз о теории вероятностей и соотношении стоп/профит, или пол смартлаба знает теорвер на 2

Вчера был топик, где доказывалось, что при соотношении стопа к профиту, скажем, 1:3 стоп будет срабатывать не в 3, а в 5 раз чаще, и даже было дано какое-то
доказательство. Так, как мне лень было искать ошибку в доказательстве, то приведу просто программу, которая моделирует эту ситуацию в матлаб. Если кто хочет проверить лично, покупаем Матлаб (или берем демо-версию), или скачиваем его бесплатный аналог Octave, после чего вставляем код и запускаем.

Логика программы такова. Мы задаем стоп и профит. После этого проводим 10000 испытаний, в каждом из которых моделируем изменения цены на 1 тик, пока цена не достигнет или стопа, или профита

s=0;
p=0;
stop=1;
profit=3;
for i=1:10000
   a=0;
   while not(a<=-stop || a>=profit)
      r=rand();
      if r>0.5
         a=a+1;
      end
      if r<0.5
         a=a-1;
      end
   end
   if a<=-stop
      s=s+1;
   end
   if a>=profit
      p=p+1;
   end
end
s
p

А теперь результаты программы за 5 запусков
Кол-во
стопов профитов
7536   2464
7410   2590
7521   2479
7494   2506 
7490   2510

Ну, думаю, тут всем видно, что соотношение все таки скорее 3:1, чем 5:1

PS прошу накинуть плюсов, что бы вывести на главную. Пусть прочитают люди, голосовавшие за вчерашний пост, что бы им стало немножко стыдно) 
106 Комментариев
  • Lyoha111
    17 октября 2014, 12:10
    Даа… Похоже преимущество даёт только точка входа.
  • Reshpekt Fund Russia ☮
    17 октября 2014, 12:10
    Вот тут кроется философская ошибка r=rand(); не математическая.
      • Reshpekt Fund Russia ☮
        17 октября 2014, 14:16
        Lafert, ну, подумайте сами просто глядя на результаты. Они в сумме равны 10'000, что уже не так.
        • Twilight_reg73
          17 октября 2014, 14:24
          Reshpekt Fund Russia, Их должно было быть 9950 = так как 0.5 50 раз должно было выпасть =) при шаге 0.01
          • Reshpekt Fund Russia ☮
            17 октября 2014, 14:30
            Twilight_reg73, да не, я ж грю философская ошибка, но можно и математической назвать. До срабатывания тейка 3 цена проходит 2 тика в сторону тейка. Эти тики не учтены, они на стороне позиции. На цифрах если, то в 10000 случаях (из примера) стопы сработают ~2450 раз, тейки ~850 раз, всего по сумме 3300 случаев, 6700 случаев за бортом. Угадаем с 3-х раз, профит там или убыток.
            • П М
              17 октября 2014, 15:27
              Reshpekt Fund Russia, в программе всё честно,
              если цена сначала поднялась, потом опустилась, то стопа не будет.
              а вот если поднялась, опустилась, опустилась, то будет стоп

              еще в программе можно i увеличивать внутри while, тогда будет 10000 подкидываний монетки, что есть более честно.
              но и в этом случае соотношение остаётся 3:1 (стопы чаще)

              я тут на смарте где-то комментировал и писал что при стоп: тейк как 1:3 вероятность стопа будет 1:2 (вероятность тейка 1/8), но я не учёл ситуации, когда
              +1-1-1, т.е. стоп срабатывает не сразу.
              • Twilight_reg73
                17 октября 2014, 15:31
                Павел Bosco М, 16% срабатывания тейка при 1 к 3 то есть 1 к 6
              • Reshpekt Fund Russia ☮
                17 октября 2014, 15:31
                Павел Bosco М, я же говорю, что правильно всё, 1 к 3, но философски неверно. Тики в пользу позиции не учтены.
                • Twilight_reg73
                  17 октября 2014, 15:35
                  Reshpekt Fund Russia, Внизу темы картинка с учетом позиций
          • Reshpekt Fund Russia ☮
            17 октября 2014, 14:36
            Lafert, да нет же. Чуть ниже ответил. Каждый случай у вас приводит либо к одному, либо к другому, а так не должно быть.
            • Twilight_reg73
              17 октября 2014, 14:38
              Reshpekt Fund Russia, Там вообще то цикл While он выполняется каждый случай пока не будет тейк или стоп.
              Он отличается от for про который вы имеет ввведу
              • Reshpekt Fund Russia ☮
                17 октября 2014, 14:45
                Twilight_reg73, я не знаю на чём это написано. Я быстро написал, на чём знаю и вижу, что вижу. Если на пальцах, то выбрасываем рандом (1 или 0). Если 1, то идём вверх к тейку, если 0, то идём вниз к стопу, а по сути сразу стопимся, т.к. стоп всего в 1 тике от позиции. Отсюда сразу понятно, то тейк или стоп сработает в 1/3 всех перебооров, а 2/3 — это «в профите без тейка».
                • Twilight_reg73
                  17 октября 2014, 14:56
                  Reshpekt Fund Russia, при шаге 1 тик и стопе 1 тик Стоп сработает в 50% случаях
                  • Twilight_reg73
                    17 октября 2014, 14:58
                    Из оставшихся 50% Будет 50% в БУ(0) на 2 тике и 50% +2 тика от начальной позиции
                    • Reshpekt Fund Russia ☮
                      17 октября 2014, 15:13
                      Twilight_reg73, нет, неправильно. Напишите программку-то. БУ вообще не катит, т.к. в этом нет смысла.
                  • Reshpekt Fund Russia ☮
                    17 октября 2014, 15:12
                    Twilight_reg73, про тейк забыли, если позиция 0, стоп -1, а тейк +1, то да, 50%. Именно тогда количество итераций 10'000 составит сумму случаев. В нашем примере такого быть не может по-определению, так-как 2 тика в торону тейка не попадают в исход.
                    • Twilight_reg73
                      17 октября 2014, 15:18
                      Reshpekt Fund Russia, 1 итерация это конечное условия стоп либо тейк
                      внутри 1 итерации есть 8 возможностей достижения результата
                      и пока результат не достигнут новая не начинается. по этому 10 000 это верный результат.
                      • Reshpekt Fund Russia ☮
                        17 октября 2014, 15:52
                        Twilight_reg73, итерация — это случай, рандомно генерируемый «вверх или вниз». Движение вверх на 1 и 2 тика — работают на позицию.
                        • Twilight_reg73
                          17 октября 2014, 15:55
                          Reshpekt Fund Russia, В определениях уже запутался=)
                          Нельзя такие вопросы в пятницу обсуждать =)
                          • Reshpekt Fund Russia ☮
                            17 октября 2014, 16:03
                            Twilight_reg73, согласен, надо по пивку уже, но код я тебе кинул, забавляйся.
                            • Twilight_reg73
                              17 октября 2014, 16:07
                              Reshpekt Fund Russia, Я в экселе уже все посчитал =) мне достаточно
                              результат % будут такие же на бесконечности.
                • Mr. Bean
                  17 октября 2014, 16:34
                  Reshpekt Fund Russia, тогда больше в 2 раза а не в 3:))
              • Reshpekt Fund Russia ☮
                17 октября 2014, 14:46
                Twilight_reg73, как формировать луп не важно, важно, как учесть результаты, когда позиция не лосит, но не тейкнута.
                  • Reshpekt Fund Russia ☮
                    17 октября 2014, 15:41
                    Lafert, сможете в консоль браузера код кинуть? Я напишу. Шесть строчек всего.
            • Twilight_reg73
              17 октября 2014, 14:41
              Reshpekt Fund Russia, ТО есть вайл будет в 1 цикле перезапускатся столько раз пока в 8 известных вариантов событый не достигнит стопа или тейка. тоесть минимум 3 максимум 8 раз будет перезапускатся while внутри каждого попытки из 10 000
  • Twilight_reg73
    17 октября 2014, 12:14
    Сделайте тест стоп 3 тейк 9 тиков
      • Twilight_reg73
        17 октября 2014, 12:16
        Lafert, Код покажите где стоп 3 тейк 9
        • Twilight_reg73
          17 октября 2014, 12:16
          Twilight_reg73, С шагом 1
    • Twilight_reg73
      17 октября 2014, 12:15
      При тесте стоп 1 тик вероятность срабатывания всегда будет около 66%
      • Twilight_reg73
        17 октября 2014, 12:18
        Так же сделайте тест стоп 9 тейк 27 и 38 114
        • Twilight_reg73
          17 октября 2014, 12:18
          Да и rand() всегда ненастоящий обычно.
          • RIH2
            17 октября 2014, 12:24
            Twilight_reg73, Достаточно чтобы у него было равномерное распределение с матожиданием 0.5. Мы же не все тики предсказываем.
  • Mr. Bean
    17 октября 2014, 12:21
    ахах))) да поймите уже дело не в том сколько раз стоп выпал, а сколькими способами он МОГ выпасть. этот тест не учитывает всё пространство элементарных событий.
      • Mr. Bean
        17 октября 2014, 12:45
        Lafert, если не сложно, могли бы вы переписать код чтобы он не стопы считал а чтобы делал три шага и считал количество пересечений линии стопа (т.е. без остановки цикла на стопе, а чтоб доделывал оставшиеся шаги) и выложить статистику?
          • Mr. Bean
            17 октября 2014, 13:39
            Lafert, а как вы иначе вероятность посчитаете? вот у вас чему равна вероятность выпадения стопа и как вы её посчитали можете объяснить?
      • Mr. Bean
        17 октября 2014, 13:15
        Lafert, кроме того у вас цикл вайл может сделать бесконечное кол-во шагов.
          • Mr. Bean
            17 октября 2014, 13:44
            Lafert, если их поставить очень далеко то да. но нас всё же интересует вопрос когда что-то из них исполнилось. тогда цена сделала конечное число шагов, но цена могла пойти и по другому пути и за это же число шагов не попасть ни в стоп ни в профит. чтобы вычислить верную вероятность надо и эти случаи тоже учесть иначе не понятно что вы принимаете за 100%. а ваш код показывает просто число стопов и профитов, ну и что с того, это же ещё не вероятности.
    • Дар Ветер
      17 октября 2014, 12:26
      Mr. Bean, да, это моделирует ситуацию когда трейдом не управляют, или тейк или профит, а сколько раз было когда немного не доходило до тейка. но в конце концов если и управлять то вероятности будут на периоде те же
  • Twilight_reg73
    17 октября 2014, 12:21
    И приблизительно к реальным условиям 200 к 600.
  • старый трейдер
    17 октября 2014, 12:24
    Традиционное отождествление модели и реального рынка, что в корне ошибочно, IMHO.

    Намёк: я торгую руками в разы профитнее, чем любой, торгующий с сопоставимой частотой алгоритм, включая собственные.
      • старый трейдер
        17 октября 2014, 13:25
        Lafert, по теорверу возражений нет, а все-таки лучше упомянуть виртуальность выводов, в части переноса в реал.

        Ведь если взять реальные данные (пусть и не за бесконечное количество времени) и «помонтекарлить», легко заметить отличия.
          • старый трейдер
            17 октября 2014, 14:44
            Lafert, подразумевалось отличие не столько в результатах, сколько в характере распределений.

            А модели всегда нужны, трудность лишь в нахождении подходящих.
  • RIH2
    17 октября 2014, 12:25
    rand может быть равен 0.5? Если да, то не следует это число игнорировать.
    Если rand дает число в полуинтервале [0;1) то делать надо так:
    r<0.5
    r>=0.5
      • RIH2
        17 октября 2014, 12:30
        Lafert, да, я знаю. Но однажды у меня довольно сильный перекос возник по подобной причине, поэтому я уже придирчив стал.
        • RIH2
          17 октября 2014, 12:31
          RIH2, просто у меня rand выдавала целые числа, и там вероятность центрального числа была довольно высокой.
      • Twilight_reg73
        17 октября 2014, 12:33
        А я бы вообще сделал точку входа если rand >=0.9 то лонг если <= 0.1 то шорт =)
        А еще как вариант если 2 раза подряд <= 0.5 или >= 0.5 =) микро тренд =) Тогда мы вероятность смещаем в свою сторону=)
          • Twilight_reg73
            17 октября 2014, 13:01
            Lafert, Так я за крыс =) я за продолжение тренда=)
    • Reshpekt Fund Russia ☮
      17 октября 2014, 12:31
      RIH2, ещё и описание rand() надо глянуть, может там неравномерное распределение, если единица exclusive.
  • Машковский Евгений
    17 октября 2014, 12:34
    Все правильно, просто предыдущий автор скорей пытался себя же убедить в своих призрачных теориях, еще и комментарии отключил.Вообще стоп/профит в чистом виде элемент подгонки, на больших дистанциях статистического преимущества не дает.Как подметил Александр Горчаков на флете стоп стремится к бесконечности, на тренде к минимуму.
      • Машковский Евгений
        17 октября 2014, 12:41
        Lafert, Я автору вчера в личку написал, но он как то к диалогу не готов, и просил больше не писать, хотя такие темы требуют дискуссии именно так и рождается какая то истина.
  • П М
    17 октября 2014, 15:02
    Внимание всем! Делаем стоп 3 тика, тейпрофит 1 тик.
    В итоге стопы срабатывают в 3 раза реже. Грааль! **)

    **) но бьют в три раза сильнее.
    • Twilight_reg73
      17 октября 2014, 15:05
      Павел Bosco М, В Вакууме да. Но нас тупо убивает комиссия =)
  • Twilight_reg73
    17 октября 2014, 15:04
    В общем как не крути при стопе 1 тик стоп будет срабатывать в 66% случаях
    • Twilight_reg73
      17 октября 2014, 15:11
      • Twilight_reg73
        17 октября 2014, 15:54
        Расчеты конечно хорошо. но они не имеют практического применения к реальным боевым условиям на рынке.
        У нас Тик не постоянен. Изменчива вола. + комиссия, у нас постоянно игра с отрицательным мат ожиданием=)
        И какими только причудливыми способами мы не смещаем вероятность в нашу сторону=)
        • Mr. Bean
          17 октября 2014, 17:19
          Twilight_reg73, тик в реале один и тот же.
      • Reshpekt Fund Russia ☮
        17 октября 2014, 15:59
        Twilight_reg73, неправильно, в нижней строке всё должно укладываться в количество попыток, в 100.
        • Twilight_reg73
          17 октября 2014, 16:03
          Reshpekt Fund Russia, Нижняя строка это % вероятности такого исхода из 100 тиков после открытия ордера
  • goelro
    17 октября 2014, 17:08
    честно говоря, доказательство так себе:
    — используется равномерное распределение (мы же не монетку подкидываем)
    — автор предыдущего топика намекал, что распределение ценовых приращений, вообще говоря — как минимум, нормальное, и уж точно не равномерное, он просто не совсем удачно упростил объяснение, (или я его не так понял)
      • goelro
        17 октября 2014, 17:22
        Lafert, да прочитал я код — ваш результат — это просто периодическая функция — у вас график цены похож на синус?
        __
        Функция MathLab X = rand(n) формирует массив размера n х n, элементами которого являются случайные величины, распределенные по равномерному закону в интервале (0, 1).
        __
        • goelro
          17 октября 2014, 17:30
          goelro, тут задачка из серии парадокса Монти Холла и решать ее подкидыванием монетки неправильно
          • goelro
            17 октября 2014, 17:42
            Lafert, ну раз вы такой начитанный :) прогоните данный тест на реальных данных — и все встанет на свои места, всем все докажете

            еще раз повторю: некорректно представление цены через N тиков на основе равномерного распределения
            • Twilight_reg73
              17 октября 2014, 17:53
              goelro, Если все бары перевести в ренко рендж бары равные 1 тиком 10 пунктов то все норм становится.
              • goelro
                17 октября 2014, 22:56
                Twilight_reg73, ок
  • Slepoy
    17 октября 2014, 22:59
    Если честно, я не догоняю зачем некоторые для расчёта используют тики: 3 тика, 9 тиков. Зачем? Рынок — это битва объёмов и один удар ломает сразу 3 тика, другой удар и 1го тика не пробъёт. Я не понимаю фразы типа: «Тики в пользу позиции не учтены.» Их не нужно учитывать! Вместо монетки с 2мя возможными исходами, нам данном расчёте нужна фигура «Тетраэдр» ru.wikipedia.org/wiki/Тетраэдр

    Отношение в любом случае будет 1/3.
    • Reshpekt Fund Russia ☮
      18 октября 2014, 12:19
      Slepoy, никто не спорит, что 1 к 3, но это если заморозиться и не управлять позицией (не трейдить). Как в простейшем алго. Ждём однозначно стопа или тейка.

      Если работать с позицией, наблюдать за происходящим, то можно не ждать +3, а взять +2 или +1. И наоборот, пропустить +3 и взять +9. Всё в динамике, это же рынок, а не стельба по мишеням (классический пример из теорвера), где пуля линейно летит и ничего не исправить.
  • monte_carlo
    18 октября 2014, 12:47
    Доброе утро, господа :)
    «Так, как мне лень было искать ошибку в доказательстве», то Вы просто подобрали код, который даёт такой результат, какой вам нужен)) Только дело вовсе не в лени, я думаю тут каждый убедился, что Вы — человек не ленивый, раз проделали такой кусок работы. А в том, что никакой ошибки в доказательстве нет. За исключением того, что этот расчёт не имеет никакого отношения к практике. И об этом я по-моему очень подробно написал.
    На практике вероятность срабатывания тейка 3:1 зависит от качества вашей точки входа! Именно поэтому, специально для пассажиров бронепоезда, я выделил это капслоком. Но к сожалению у моих оппонентов есть талант — не замечать очевидного.
    Что касается теоретических расчётов, ответьте на один вопрос: куда делись траектории, которые при неограниченном числе тиков, тем не менее не приводят к срабатыванию ни тейка, ни стопа. Например, вверх-вниз, вверх-вниз и так до бесконечности?
  • monte_carlo
    18 октября 2014, 17:54
    //А вот вверх-вниз-вверх-вниз. Да, такое может быть, в таком случае моя программа будет работать вечно, но по теории вероятностей, вероятность того, что цена сделает хотя бы тысячу таких тиков и не попадет ни в одно состояние ничтожно мала.//

    Опять Вы торопитесь с выводами. То что я написал «Например, вверх-вниз, вверх-вниз и так до бесконечности» не означает, что это единственная траектория, при которой не сработает ни тейк, ни стоп! Это всего лишь НАПРИМЕР. Подумайте, какие ещё траектории могут привести к такому же результату и всё встанет на свои места. Дам подсказку. Например, вверх-вниз, вверх-вниз, вверх-вверх-вниз-вниз… Если Вы переберете все возможные, Вы увидите, что вероятность такого исхода вовсе не так ничтожно мала, как Вам сразу показалось…

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн