Народ, плюсаните пожалуйсто, что бы на главную вылезть, чем больше народу посмотрит, тем больше вероятность что моя проблема решится.
Для начала процетирую кусочек текста из книги Р.Винса «Математика управления капиталом»
-----------------------------------------
Таким образом, мы можем сказать, что существует некий делитель (число между 0 и 1) наибольшего предполагаемого убытка для определения количества контрактов. Например, если при счете в 50 000 долларов вы ожидаете, в худшем случае, убыток 5000 долларов на контракт, и открыто 5 контрактов, то делителем будет 0,5, так как:
50 000/(5000/0,5) =5
Другими словами, у вас есть 5 контрактов на счет в 50 000 долларов, т. е. 1 контракт на каждые 10000 долларов баланса. Вы ожидаете в худшем случае потерять 5000 долларов на контракт, таким образом, вашим делителем будет 0,5. Если бы у вас был один контракт, то делителем в этом случае было бы число 0,1, так как:
50 000/(5000/0,1)=1
Этот делитель мы назовем переменной f. Таким образом, сознательно или подсознательно при любой сделке вы выбираете значение f, когда решаете, сколько контрактов или акций приобрести.
Теперь посмотрите на рисунок 1-1. На нем представлена игра, где у вас 50% шансов выиграть 2 доллара против 50% шансов потерять 1 доллар в каждой игре. Отметьте, что здесь оптимальное f составляет 0,25, когда TWR составляет 10,55 после 40 ставок (20 последовательностей +2, -1). TWR — это «относительный конечный капитал» (Terminal Wealth Relative), он представляет доход по вашим ставкам в виде множителя. TWR = 10,55 означает, что вы увеличили бы в 10,55 раз ваш первоначальный счет, или получили бы 955% прибыли. Теперь посмотрите, что произойдет, если вы отклонитесь всего лишь на 0,15 от оптимального f= 0,25. Когда f равно 0,1 или 0,4, ваш TWR = 4,66. Это не составляет даже половины того, что будет при 0,25, причем вы отошли только на 0,15 от оптимального значения и сделали только 40 ставок!
О какой сумме в долларах мы говорим? При f = 0,1 вы ставите 1 доллар на каждые 10 долларов на счете. При f= 0,4 вы ставите 1 доллар на каждые 2,50 долларов на счете. В обоих случаях мы получаем TWR = 4,66. При f= 0,25 вы ставите 1 доллар на каждые 4 доллара на счете. Отметьте, что если вы ставите 1 доллар на каждые 4 доллара на счете, то выигрываете в два раза больше после 40 ставок, чем в случае ставки одного доллара на каждые 2,50 доллара на вашем счете! Очевидно, что не стоит излишне увеличивать ставку. При ставке 1 доллар на каждые 2,50 доллара вы получите тот же результат, что и в случае ставки четверти этой суммы, то есть 1 доллар на каждые 10 долларов на вашем счете! Отметьте, что в игре 50/50, где вы выигрываете вдвое больше, чем проигрываете, при f= 0,5 вы только «остаетесь при своих»! При f больше 0,5 вы проигрываете в этой игре, и теперь окончательное разорение — это просто вопрос времени! Другими словами, если f (в игре 50/50, 2:1) на 0,25 отклоняется от оптимального, вы будете банкротом с вероятностью, которая приближается к определенности, если продолжать играть достаточно долго. Таким образом, нашей целью будет объективный поиск пика кривой f для данной торговой системы.
-----------------------------------------
захотелось проверить это, написал скриптик и что то ни чего подобного не получилось, чем больше ставка тем больше выигрыш либо быстрй пройгрыш, но ни как при f = 0.25 не получилось получить больше прибыли
может я что то не так понял?
-----------------------------------------
«При f = 0,1 вы ставите 1 доллар на каждые 10 долларов на счете. При f= 0,4 вы ставите 1 доллар на каждые 2,50 долларов на счете. При f= 0,25 вы ставите 1 доллар на каждые 4 доллара на счете. „
-----------------------------------------
возьмем три счета по 100$ и проверим для первого f будет 0.1, для второго 0.25, для третьего 0.4 соответственно для первого счета будем ставить 10$, для второго 25$, для третьего 40$
Делаем 40 подкидываний монетки, если проиграли то отнимаем соответствующую ставку от соответствующего счета, иначе прибавлям две ставки в случае выйграша.
Если на балансе сумма будет меньше одной ставки, то на этом счете обнуляем баланс и прекращаем игру. Ниже приведен код скрипта, а по этой ссылке можно проверить его работу
peksh.ru/test.php
При обновлении страницы все пересчитывается
$balance = array(100, 100, 100);
$f = array(0.1, 0.25, 0.4);
for($i = 0; $i<3; $i++) $lot[$i] = $balance[$i] * $f[$i];
echo “<pre>»;
for($i = 0; $i<3; $i++) echo $lot[$i]." ";
echo "<hr>";
for($j = 0; $j<40; $j++) {
$x = rand(0, 999);
if ($x < 500) {
echo «проиграли »;
for($i = 0; $i<3; $i++)
if ($balance[$i] >= $lot[$i])
$balance[$i] = $balance[$i] — $lot[$i];
else
$balance[$i] = 0;
}
else {
echo «выйграли »;
for($i = 0; $i<3; $i++)
if ($balance[$i] >= $lot[$i]) $balance[$i] = $balance[$i] + $lot[$i] * 2;
}
for($i = 0; $i<3; $i++) printf("%9d", $balance[$i]);
echo "<br>";
}
100тр счет. риск на сделку 1000р. средний стоп по фРТС например 300п.
300п =186 р примерно 1 контр. 1000/186=5 контр
и нех выдумывать заумные расчеты и т.д
а может быть риск в 2т.р. или 3т.р. был бы более оптимальным для моей торговой системы
ну как то так…
> если продолжать играть достаточно долго
40 испытаний — это статистически не достоверно. Поставьте $j<10000 хотя бы. И для уверенности, что псевдорандом не подводит (а он подводит!) меняйте знак if ($x > 500) чтобы проверить «псевдослучайность» на перекос.
articles.mql4.com/ru/801
Жаль, что основной код не опубликовал… хотя может на мыло отзовётся и пришлёт лично?!
Было бы интересно глянуть.
Невнимательно прочёл топик. Не вник в суть вопроса.
Вы пытаетесь тестировать ММ, на основе доли от счёта. А у вас лот фиксирован.
То есть вот это:
for($i = 0; $i<3; $i++) $lot[$i] = $balance[$i] * $f[$i];
Надо вставить в основной цикл!
Иначе у вас фиксируется лот.
Короче, раньше у вас было вот что — 20 серий +2-1, то есть ~= +20. А надо было добавить множитель, который зависит от текущего баланса в каждой итерации.
То есть +2*lot-1*lot, где lot = баланс*долю.
Так сделали?
Тогда почему доля в принтах меняется?
у меня доля высчитывается как баланс * на f,
а f не меняется $f = array(0.1, 0.25, 0.4, 0.1, 0.25, 0.4);
для первых трех столбцов переменная доля рассчитывается один раз, а для 4-6 столбца рассчитывается каждый раз в цикле.
исходный код тут peksh.ru/test.txt
— И, пожалуй, самый главный вывод, который можно сделать из этого исследования, — это то, что нельзя выбрать однозначно лучший метод из двух рассмотренных. Эффективность ММ зависит от очень большого количества фактором. Различные комбинации этих факторов дают различные результаты. Поэтому в каждом конкретном случае, в зависимости от свойств ТС, условий ДЦ, возможностей и пожеланий трейдера нужно выбирать наиболее подходящий для этого случая ММ.
---