PAlex
PAlex личный блог
10 марта 2013, 15:22

Расчет оптимального количества контрактов

Народ, плюсаните пожалуйсто, что бы на главную вылезть, чем больше народу посмотрит, тем больше вероятность что моя проблема решится.

Для начала процетирую кусочек текста из книги  Р.Винса «Математика управления капиталом»

-----------------------------------------
Таким образом, мы можем сказать, что существует некий делитель (число между 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>";
}
 
 
 
21 Комментарий
  • Aleksander
    10 марта 2013, 15:28
    Кто-нибудь понИл что тут написано???
  • Camel
    10 марта 2013, 15:33
    похоже математиков отпустило первых после праздников… засилье прям
  • FanatikBMW
    10 марта 2013, 16:15
    WTF?? не легче взять стоп т.е.допустимый риск на сделку и от этого уже плясать? к примеру
    100тр счет. риск на сделку 1000р. средний стоп по фРТС например 300п.
    300п =186 р примерно 1 контр. 1000/186=5 контр

    и нех выдумывать заумные расчеты и т.д
      • FanatikBMW
        10 марта 2013, 16:21
        PAlex, а оно надо?
          • FanatikBMW
            10 марта 2013, 16:24
            PAlex, о боже.
              • FanatikBMW
                10 марта 2013, 16:27
                PAlex, это уже посмотри соотношение прибыльных сделок к убыточным и там видно будет. надо проще относится к торговле.
                  • Антон Денисков (Fry)
                    10 марта 2013, 16:56
                    Если уйти от реалий (считать сферического коня в вакууме), то у вас почти всё верно и в скрипте и в размышлениях, за исключением одного пункта. Цитирую:
                    > если продолжать играть достаточно долго

                    40 испытаний — это статистически не достоверно. Поставьте $j<10000 хотя бы. И для уверенности, что псевдорандом не подводит (а он подводит!) меняйте знак if ($x > 500) чтобы проверить «псевдослучайность» на перекос.
                  • Антон Денисков (Fry)
                    10 марта 2013, 17:02
                    вот здесь один педантичный спец провёл глубокое исследование:
                    articles.mql4.com/ru/801
                    Жаль, что основной код не опубликовал… хотя может на мыло отзовётся и пришлёт лично?!
                    Было бы интересно глянуть.
                      • Антон Денисков (Fry)
                        10 марта 2013, 19:12
                        PAlex, прошу прощения. Выше ввел вас в заблуждение.
                        Невнимательно прочёл топик. Не вник в суть вопроса.
                        Вы пытаетесь тестировать ММ, на основе доли от счёта. А у вас лот фиксирован.

                        То есть вот это:

                        for($i = 0; $i<3; $i++) $lot[$i] = $balance[$i] * $f[$i];

                        Надо вставить в основной цикл!
                        Иначе у вас фиксируется лот.
                          • Антон Денисков (Fry)
                            10 марта 2013, 19:52
                            PAlex, подписи какие-то странные, а скрипт не вижу.
                            Короче, раньше у вас было вот что — 20 серий +2-1, то есть ~= +20. А надо было добавить множитель, который зависит от текущего баланса в каждой итерации.
                            То есть +2*lot-1*lot, где lot = баланс*долю.
                            Так сделали?
                            Тогда почему доля в принтах меняется?
              • FanatikBMW
                10 марта 2013, 16:39
                PAlex, и посмотреть максимальный период убыточных сделок. к примеру если их было 20 шт подряд. т.е. конечно не нужно брать риск более 1% на сделку.а лучше и вообще о.5%
  • FARTER
    10 марта 2013, 17:21
    плюсанул, но не вышло

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

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