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
    //А вот вверх-вниз-вверх-вниз. Да, такое может быть, в таком случае моя программа будет работать вечно, но по теории вероятностей, вероятность того, что цена сделает хотя бы тысячу таких тиков и не попадет ни в одно состояние ничтожно мала.//

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

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

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