Еще раз о теории вероятностей и соотношении стоп/профит, или пол смартлаба знает теорвер на 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 прошу накинуть плюсов, что бы вывести на главную. Пусть прочитают люди, голосовавшие за вчерашний пост, что бы им стало немножко стыдно)
если цена сначала поднялась, потом опустилась, то стопа не будет.
а вот если поднялась, опустилась, опустилась, то будет стоп
еще в программе можно 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 попытки внутри цикла
заносить значения в переменный а1 а2
Где А1 равно +1 тик в плюсе.
Где А2 равно +2 тик в плюсе.
Для условий где стоп дальше 1 тика и тейк дальше 3 тиков. варианты увеличиваются в геометрической.
В итоге стопы срабатывают в 3 раза реже. Грааль! **)
**) но бьют в три раза сильнее.
У нас Тик не постоянен. Изменчива вола. + комиссия, у нас постоянно игра с отрицательным мат ожиданием=)
И какими только причудливыми способами мы не смещаем вероятность в нашу сторону=)
Всё. По пивку. ;-)
— используется равномерное распределение (мы же не монетку подкидываем)
— автор предыдущего топика намекал, что распределение ценовых приращений, вообще говоря — как минимум, нормальное, и уж точно не равномерное, он просто не совсем удачно упростил объяснение, (или я его не так понял)
конечно, не правильно поняли, и меня, и его. Речь вообще не шла о приращениях.
PS я специально выложил код, что бы в нем можно было покопаться. Советую прочитать его несколько раз.
__
Функция MathLab X = rand(n) формирует массив размера n х n, элементами которого являются случайные величины, распределенные по равномерному закону в интервале (0, 1).
__
еще раз повторю: некорректно представление цены через N тиков на основе равномерного распределения
Отношение в любом случае будет 1/3.
Если работать с позицией, наблюдать за происходящим, то можно не ждать +3, а взять +2 или +1. И наоборот, пропустить +3 и взять +9. Всё в динамике, это же рынок, а не стельба по мишеням (классический пример из теорвера), где пуля линейно летит и ничего не исправить.
«Так, как мне лень было искать ошибку в доказательстве», то Вы просто подобрали код, который даёт такой результат, какой вам нужен)) Только дело вовсе не в лени, я думаю тут каждый убедился, что Вы — человек не ленивый, раз проделали такой кусок работы. А в том, что никакой ошибки в доказательстве нет. За исключением того, что этот расчёт не имеет никакого отношения к практике. И об этом я по-моему очень подробно написал.
На практике вероятность срабатывания тейка 3:1 зависит от качества вашей точки входа! Именно поэтому, специально для пассажиров бронепоезда, я выделил это капслоком. Но к сожалению у моих оппонентов есть талант — не замечать очевидного.
Что касается теоретических расчётов, ответьте на один вопрос: куда делись траектории, которые при неограниченном числе тиков, тем не менее не приводят к срабатыванию ни тейка, ни стопа. Например, вверх-вниз, вверх-вниз и так до бесконечности?
Опять Вы торопитесь с выводами. То что я написал «Например, вверх-вниз, вверх-вниз и так до бесконечности» не означает, что это единственная траектория, при которой не сработает ни тейк, ни стоп! Это всего лишь НАПРИМЕР. Подумайте, какие ещё траектории могут привести к такому же результату и всё встанет на свои места. Дам подсказку. Например, вверх-вниз, вверх-вниз, вверх-вверх-вниз-вниз… Если Вы переберете все возможные, Вы увидите, что вероятность такого исхода вовсе не так ничтожно мала, как Вам сразу показалось…
Попробую спорить с Вами не как с математиком, а как с трейдером)
Я запускал программу более 10 раз, программа завершалась в течении одной секунды, то есть за 100000 трейдов не возникло ни одной серии из тиков, которая бы привела к количеству тиков большему, чем процессор может рассчитать за 1 секунду. За 100000 запусков ни бесконечность, ни достаточно большие количества блужданий, не приводящих к закрытию трейда НЕ ПРОИЗОШЛИ. Вам этого мало?
НУ ТУПЫЕ (Задорнов)