Еще раз о теории вероятностей и соотношении стоп/профит, или пол смартлаба знает теорвер на 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 прошу накинуть плюсов, что бы вывести на главную. Пусть прочитают люди, голосовавшие за вчерашний пост, что бы им стало немножко стыдно)
Reshpekt Fund Russia, ну, тогда предложите математическое доказательство моей правоты) А вообще, надо мне как-то самому вспомнить теорвер и написать доказательство. Утверждение то ведь совсем не сложное.
Twilight_reg73, да не, я ж грю философская ошибка, но можно и математической назвать. До срабатывания тейка 3 цена проходит 2 тика в сторону тейка. Эти тики не учтены, они на стороне позиции. На цифрах если, то в 10000 случаях (из примера) стопы сработают ~2450 раз, тейки ~850 раз, всего по сумме 3300 случаев, 6700 случаев за бортом. Угадаем с 3-х раз, профит там или убыток.
Reshpekt Fund Russia, в программе всё честно,
если цена сначала поднялась, потом опустилась, то стопа не будет.
а вот если поднялась, опустилась, опустилась, то будет стоп
еще в программе можно i увеличивать внутри while, тогда будет 10000 подкидываний монетки, что есть более честно.
но и в этом случае соотношение остаётся 3:1 (стопы чаще)
я тут на смарте где-то комментировал и писал что при стоп: тейк как 1:3 вероятность стопа будет 1:2 (вероятность тейка 1/8), но я не учёл ситуации, когда
+1-1-1, т.е. стоп срабатывает не сразу.
Reshpekt Fund Russia, Там вообще то цикл While он выполняется каждый случай пока не будет тейк или стоп.
Он отличается от for про который вы имеет ввведу
Twilight_reg73, я не знаю на чём это написано. Я быстро написал, на чём знаю и вижу, что вижу. Если на пальцах, то выбрасываем рандом (1 или 0). Если 1, то идём вверх к тейку, если 0, то идём вниз к стопу, а по сути сразу стопимся, т.к. стоп всего в 1 тике от позиции. Отсюда сразу понятно, то тейк или стоп сработает в 1/3 всех перебооров, а 2/3 — это «в профите без тейка».
Twilight_reg73, про тейк забыли, если позиция 0, стоп -1, а тейк +1, то да, 50%. Именно тогда количество итераций 10'000 составит сумму случаев. В нашем примере такого быть не может по-определению, так-как 2 тика в торону тейка не попадают в исход.
Reshpekt Fund Russia, 1 итерация это конечное условия стоп либо тейк
внутри 1 итерации есть 8 возможностей достижения результата
и пока результат не достигнут новая не начинается. по этому 10 000 это верный результат.
Reshpekt Fund Russia, Twilight все правильно говорит. Моделирование тиков идет до тех пор, пока не произойдет или тейк, или стоп. Только после наступления тейка или стопа мы переходим ко следующей итерации. То есть, для разных итераций количество тиков различное. Написано, как я указал в посте, на Матлабе. На Октаве скорее всего тоже будет работать аналогично.
Reshpekt Fund Russia, ТО есть вайл будет в 1 цикле перезапускатся столько раз пока в 8 известных вариантов событый не достигнит стопа или тейка. тоесть минимум 3 максимум 8 раз будет перезапускатся while внутри каждого попытки из 10 000
Twilight_reg73, в коде есть переменные stop и profit. Шаг всегда 1. Меняете их и получаете, что надо. Я вам уже в комментарии ответил, что при stop=3 profit=9 результаты эксперимента
ахах))) да поймите уже дело не в том сколько раз стоп выпал, а сколькими способами он МОГ выпасть. этот тест не учитывает всё пространство элементарных событий.
Lafert, если не сложно, могли бы вы переписать код чтобы он не стопы считал а чтобы делал три шага и считал количество пересечений линии стопа (т.е. без остановки цикла на стопе, а чтоб доделывал оставшиеся шаги) и выложить статистику?
Lafert, если их поставить очень далеко то да. но нас всё же интересует вопрос когда что-то из них исполнилось. тогда цена сделала конечное число шагов, но цена могла пойти и по другому пути и за это же число шагов не попасть ни в стоп ни в профит. чтобы вычислить верную вероятность надо и эти случаи тоже учесть иначе не понятно что вы принимаете за 100%. а ваш код показывает просто число стопов и профитов, ну и что с того, это же ещё не вероятности.
Mr. Bean, да, это моделирует ситуацию когда трейдом не управляют, или тейк или профит, а сколько раз было когда немного не доходило до тейка. но в конце концов если и управлять то вероятности будут на периоде те же
Twilight_reg73, запустил. Проц раскалился докрасна и что-то считает. Если за 5 минут закончит, напишу результат, если нет, остановлю расчет. Код есть, можете считать сами)
старый трейдер, понятно, что модель может быть точной только в некоторых пределах, и Вам можно только позавидовать, если умеете делать профит безо всяких моделей, но просто, кое-кто получил 192 плюса за то, за что на экзамене по теорверу получил бы неуд. Так что, многим тут стоило бы и азы повторить)
старый трейдер, реально ситуация будет хуже, так, как
1) при достижении цены лимитка тейка не всегда исполняется, или может исполниться частично
2) при достижении стопа стоп всегда выстреливает, но реальная цена исполнения не всегда равна цене стопа
то есть, понятно, что на качественном самописном бектестере с поддержкой ордерлога мы получим не такие результаты. Да и вероятности тоже не 1/2, но это будет влиять в меньшей мере, да и техники, как точно оценить вероятности, у нас нет.
А я бы вообще сделал точку входа если rand >=0.9 то лонг если <= 0.1 то шорт =)
А еще как вариант если 2 раза подряд <= 0.5 или >= 0.5 =) микро тренд =) Тогда мы вероятность смещаем в свою сторону=)
Twilight_reg73, о… люди против крыс) Погуглите тему) Почему если зеленая лампочка загорается в три раза чаще красной, то крысы всегда ставят на зеленую, а люди после трех последовательных зеленых ставят на красную, и кто прав выходит)
Все правильно, просто предыдущий автор скорей пытался себя же убедить в своих призрачных теориях, еще и комментарии отключил.Вообще стоп/профит в чистом виде элемент подгонки, на больших дистанциях статистического преимущества не дает.Как подметил Александр Горчаков на флете стоп стремится к бесконечности, на тренде к минимуму.
Машковский Евгений, удивляет реакция смартлаба, одобряющая такие посты. К тому же, его доказательство даже меня сразу смогло убедить. Только продолжив эту мысль, и поняв, что взяв ее за основу, можно получить грааль, я понял ошибку.
Lafert, Я автору вчера в личку написал, но он как то к диалогу не готов, и просил больше не писать, хотя такие темы требуют дискуссии именно так и рождается какая то истина.
Машковский Евгений, я тоже ему писал в личку, но меня в статье другое смутило, в принципе, я бы не сказал, что автор не готов к диалогу. Но когда задумался о основном тезисе, тут уж не сдержался, и написал пост.
Расчеты конечно хорошо. но они не имеют практического применения к реальным боевым условиям на рынке.
У нас Тик не постоянен. Изменчива вола. + комиссия, у нас постоянно игра с отрицательным мат ожиданием=)
И какими только причудливыми способами мы не смещаем вероятность в нашу сторону=)
честно говоря, доказательство так себе:
— используется равномерное распределение (мы же не монетку подкидываем)
— автор предыдущего топика намекал, что распределение ценовых приращений, вообще говоря — как минимум, нормальное, и уж точно не равномерное, он просто не совсем удачно упростил объяснение, (или я его не так понял)
goelro, используется распределение Бернулли с параметром 0.5 вообще-то. Просто значение случайной бернуллиевской величины расчитывается как функция от равномерно распределенной с.в.
конечно, не правильно поняли, и меня, и его. Речь вообще не шла о приращениях.
PS я специально выложил код, что бы в нем можно было покопаться. Советую прочитать его несколько раз.
Lafert, да прочитал я код — ваш результат — это просто периодическая функция — у вас график цены похож на синус?
__
Функция MathLab X = rand(n) формирует массив размера n х n, элементами которого являются случайные величины, распределенные по равномерному закону в интервале (0, 1).
__
goelro, или Вы изучали какую-то другую математику, или намекаете на периодичность псевдослучайных чисел. Если первое, то стоит книги почитать, вроде книга Ширяева «Вероятность» неплохая. А если второе, то период функции rand() в матлабе 2^1492.
Если честно, я не догоняю зачем некоторые для расчёта используют тики: 3 тика, 9 тиков. Зачем? Рынок — это битва объёмов и один удар ломает сразу 3 тика, другой удар и 1го тика не пробъёт. Я не понимаю фразы типа: «Тики в пользу позиции не учтены.» Их не нужно учитывать! Вместо монетки с 2мя возможными исходами, нам данном расчёте нужна фигура «Тетраэдр» ru.wikipedia.org/wiki/Тетраэдр
Отношение в любом случае будет 1/3.
Slepoy, никто не спорит, что 1 к 3, но это если заморозиться и не управлять позицией (не трейдить). Как в простейшем алго. Ждём однозначно стопа или тейка.
Если работать с позицией, наблюдать за происходящим, то можно не ждать +3, а взять +2 или +1. И наоборот, пропустить +3 и взять +9. Всё в динамике, это же рынок, а не стельба по мишеням (классический пример из теорвера), где пуля линейно летит и ничего не исправить.
Доброе утро, господа :)
«Так, как мне лень было искать ошибку в доказательстве», то Вы просто подобрали код, который даёт такой результат, какой вам нужен)) Только дело вовсе не в лени, я думаю тут каждый убедился, что Вы — человек не ленивый, раз проделали такой кусок работы. А в том, что никакой ошибки в доказательстве нет. За исключением того, что этот расчёт не имеет никакого отношения к практике. И об этом я по-моему очень подробно написал.
На практике вероятность срабатывания тейка 3:1 зависит от качества вашей точки входа! Именно поэтому, специально для пассажиров бронепоезда, я выделил это капслоком. Но к сожалению у моих оппонентов есть талант — не замечать очевидного.
Что касается теоретических расчётов, ответьте на один вопрос: куда делись траектории, которые при неограниченном числе тиков, тем не менее не приводят к срабатыванию ни тейка, ни стопа. Например, вверх-вниз, вверх-вниз и так до бесконечности?
monte_carlo, хорошо, я Вам скажу, как решать такие задачи. Это задача о случайном блуждании на графе с двумя финальными состояниями. Надо составить матрицу переходов, потом найти фундаментальную матрицу, потом из нее находится матрица вероятностей попадания в финальные состояния. Поверьте, это не проще, совсем не проще, чем написанная мною программа. Но такой метод даст не оценку вероятности, а именно ее теоретическое значение. А вот вверх-вниз-вверх-вниз. Да, такое может быть, в таком случае моя программа будет работать вечно, но по теории вероятностей, вероятность того, что цена сделает хотя бы тысячу таких тиков и не попадет ни в одно состояние ничтожно мала. Это не 0.00000000000000000001, а действительно ничтожно малое число.
//А вот вверх-вниз-вверх-вниз. Да, такое может быть, в таком случае моя программа будет работать вечно, но по теории вероятностей, вероятность того, что цена сделает хотя бы тысячу таких тиков и не попадет ни в одно состояние ничтожно мала.//
Опять Вы торопитесь с выводами. То что я написал «Например, вверх-вниз, вверх-вниз и так до бесконечности» не означает, что это единственная траектория, при которой не сработает ни тейк, ни стоп! Это всего лишь НАПРИМЕР. Подумайте, какие ещё траектории могут привести к такому же результату и всё встанет на свои места. Дам подсказку. Например, вверх-вниз, вверх-вниз, вверх-вверх-вниз-вниз… Если Вы переберете все возможные, Вы увидите, что вероятность такого исхода вовсе не так ничтожно мала, как Вам сразу показалось…
monte_carlo, сами ведь игнорируете то, что Вам пишут. Я комментом выше описал план четкого математического решения этой задачи.
Попробую спорить с Вами не как с математиком, а как с трейдером)
Я запускал программу более 10 раз, программа завершалась в течении одной секунды, то есть за 100000 трейдов не возникло ни одной серии из тиков, которая бы привела к количеству тиков большему, чем процессор может рассчитать за 1 секунду. За 100000 запусков ни бесконечность, ни достаточно большие количества блужданий, не приводящих к закрытию трейда НЕ ПРОИЗОШЛИ. Вам этого мало?
DoxodVoborot, потому что они есть у Урала и если они выросли в цене, то эта бумажная прибыль отражается в отчёте о прибылях и убытках. Потому как она бумажная, то на её размер делают корректировку ...
SberCIB обновил топ наиболее привлекательных акций РФ. Добавили Фосагро и Аэрофлот, исключили Банк Санкт-Петербург и расписки Ozon Аналитики обновили подборку акций, добавив «ФосАгро» и «Аэрофлот», и ...
SberCIB обновил топ наиболее привлекательных акций РФ. Добавили Фосагро и Аэрофлот, исключили Банк Санкт-Петербург и расписки Ozon Аналитики обновили подборку акций, добавив «ФосАгро» и «Аэрофлот», и ...
Следим за Лукойлом, как только он начнет геп закрывать (там акционеры серьезные, скоро начнут закупаться), индекс за собой потянет и мы со Сбером за ним полетим...
В России около 85% строительных компаний испытывают дефицит кадров «Мы видим, что через три года после выпуска всего лишь каждый пятый студент колледжа или техникума остается в отрасли. Это катастрофи...
В России около 85% строительных компаний испытывают дефицит кадров «Мы видим, что через три года после выпуска всего лишь каждый пятый студент колледжа или техникума остается в отрасли. Это катастрофи...
если цена сначала поднялась, потом опустилась, то стопа не будет.
а вот если поднялась, опустилась, опустилась, то будет стоп
еще в программе можно i увеличивать внутри while, тогда будет 10000 подкидываний монетки, что есть более честно.
но и в этом случае соотношение остаётся 3:1 (стопы чаще)
я тут на смарте где-то комментировал и писал что при стоп: тейк как 1:3 вероятность стопа будет 1:2 (вероятность тейка 1/8), но я не учёл ситуации, когда
+1-1-1, т.е. стоп срабатывает не сразу.
Он отличается от for про который вы имеет ввведу
внутри 1 итерации есть 8 возможностей достижения результата
и пока результат не достигнут новая не начинается. по этому 10 000 это верный результат.
Нельзя такие вопросы в пятницу обсуждать =)
результат % будут такие же на бесконечности.
7494 стопов и 2506 профитов
Намёк: я торгую руками в разы профитнее, чем любой, торгующий с сопоставимой частотой алгоритм, включая собственные.
Ведь если взять реальные данные (пусть и не за бесконечное количество времени) и «помонтекарлить», легко заметить отличия.
1) при достижении цены лимитка тейка не всегда исполняется, или может исполниться частично
2) при достижении стопа стоп всегда выстреливает, но реальная цена исполнения не всегда равна цене стопа
то есть, понятно, что на качественном самописном бектестере с поддержкой ордерлога мы получим не такие результаты. Да и вероятности тоже не 1/2, но это будет влиять в меньшей мере, да и техники, как точно оценить вероятности, у нас нет.
А модели всегда нужны, трудность лишь в нахождении подходящих.
Если rand дает число в полуинтервале [0;1) то делать надо так:
r<0.5
r>=0.5
А еще как вариант если 2 раза подряд <= 0.5 или >= 0.5 =) микро тренд =) Тогда мы вероятность смещаем в свою сторону=)
В итоге стопы срабатывают в 3 раза реже. Грааль! **)
**) но бьют в три раза сильнее.
У нас Тик не постоянен. Изменчива вола. + комиссия, у нас постоянно игра с отрицательным мат ожиданием=)
И какими только причудливыми способами мы не смещаем вероятность в нашу сторону=)
— используется равномерное распределение (мы же не монетку подкидываем)
— автор предыдущего топика намекал, что распределение ценовых приращений, вообще говоря — как минимум, нормальное, и уж точно не равномерное, он просто не совсем удачно упростил объяснение, (или я его не так понял)
конечно, не правильно поняли, и меня, и его. Речь вообще не шла о приращениях.
PS я специально выложил код, что бы в нем можно было покопаться. Советую прочитать его несколько раз.
__
Функция MathLab X = rand(n) формирует массив размера n х n, элементами которого являются случайные величины, распределенные по равномерному закону в интервале (0, 1).
__
еще раз повторю: некорректно представление цены через N тиков на основе равномерного распределения
Отношение в любом случае будет 1/3.
Если работать с позицией, наблюдать за происходящим, то можно не ждать +3, а взять +2 или +1. И наоборот, пропустить +3 и взять +9. Всё в динамике, это же рынок, а не стельба по мишеням (классический пример из теорвера), где пуля линейно летит и ничего не исправить.
«Так, как мне лень было искать ошибку в доказательстве», то Вы просто подобрали код, который даёт такой результат, какой вам нужен)) Только дело вовсе не в лени, я думаю тут каждый убедился, что Вы — человек не ленивый, раз проделали такой кусок работы. А в том, что никакой ошибки в доказательстве нет. За исключением того, что этот расчёт не имеет никакого отношения к практике. И об этом я по-моему очень подробно написал.
На практике вероятность срабатывания тейка 3:1 зависит от качества вашей точки входа! Именно поэтому, специально для пассажиров бронепоезда, я выделил это капслоком. Но к сожалению у моих оппонентов есть талант — не замечать очевидного.
Что касается теоретических расчётов, ответьте на один вопрос: куда делись траектории, которые при неограниченном числе тиков, тем не менее не приводят к срабатыванию ни тейка, ни стопа. Например, вверх-вниз, вверх-вниз и так до бесконечности?
Опять Вы торопитесь с выводами. То что я написал «Например, вверх-вниз, вверх-вниз и так до бесконечности» не означает, что это единственная траектория, при которой не сработает ни тейк, ни стоп! Это всего лишь НАПРИМЕР. Подумайте, какие ещё траектории могут привести к такому же результату и всё встанет на свои места. Дам подсказку. Например, вверх-вниз, вверх-вниз, вверх-вверх-вниз-вниз… Если Вы переберете все возможные, Вы увидите, что вероятность такого исхода вовсе не так ничтожно мала, как Вам сразу показалось…
Попробую спорить с Вами не как с математиком, а как с трейдером)
Я запускал программу более 10 раз, программа завершалась в течении одной секунды, то есть за 100000 трейдов не возникло ни одной серии из тиков, которая бы привела к количеству тиков большему, чем процессор может рассчитать за 1 секунду. За 100000 запусков ни бесконечность, ни достаточно большие количества блужданий, не приводящих к закрытию трейда НЕ ПРОИЗОШЛИ. Вам этого мало?