Автор |
Сообщение |
Griff
Зарегистрирован: 20.03.2008
Сообщения: 56
|
Помогите разобраться в следующем:
Пусть просадка капитала, на одну сделку не должна превышать 5% от общей суммы капитала. Из этого рассчитывается максимальное количество лотов.
Тут вроде все просто:
Код: |
Stop = 20;
PrStop = Stop * 0.01;
ApplyStop (stopTypeLoss, stopModePercent, Stop, ExitAtStop = 1, Volatile = False, ReEntryDelay = 0);
Money = Equity(1);
RiskMoney = Money * 0.05;
StopLong = IIf (Buy, BuyPrice - (BuyPrice * PrStop), 0);
NumberOpenLot = IIf (Buy, floor (RiskMoney / (BuyPrice - StopLong)), 0);
SetPositionSize (NumberOpenLot, spsShares);
//RiskMoney - это соответсвенно 5% от капитала
//StopLong - уровень стопа
//NumberOpenLot - максимальное количество лотов
|
Теперь, хотелось бы внести некоторые коррективы в это, т.е. сделать чтобы RiskMoney было неизменно в течение всего торгового месяца. Чтобы пересчет происходил в конце текущего месяца.
Что-то вроде этого:
Пусть торговля начинается с начала года, ну или в любой подходящий момент. На начало торгов пусть будет сумма - 10000, и если ее разложить по риску, то получится что:
Код: |
RiskMoney = 10000 * 0.05 = 500; //Максимальный риск на одну сделку
StopLong = 10 - (10 * 0.2) = 2; //Устанавливаем стоп
NumberOpenLot = 500 / 2 = 250; //Максимальное количество лотов
|
Получается, что в течении текущего месяца количество лотов не должно превышать 250. Если на последний торговый день капитал увеличивается / уменьшается, то тоже и происходит с количеством лотов на следующий месяц.
Если на конец месяца остается открытая сделка, то капитал считается так: сумма в кеше + кол. лотов * на последнею цену закрытия этого месяца. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Griff писал(а): |
Помогите разобраться в следующем:
Пусть просадка капитала, на одну сделку не должна превышать 5% от осяца остается открытая сделка, то капитал считается так: сумма в кеше + кол. лотов * на последнею цену закрытия этого месяца. |
А размер капитала ты как задаеш, ручками или у тебя роботек считывает таблицу из квика? |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Griff
Зарегистрирован: 20.03.2008
Сообщения: 56
|
commenced писал(а): |
А размер капитала ты как задаеш, ручками или у тебя роботек считывает таблицу из квика? |
Ручками |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Griff писал(а): |
commenced писал(а): |
А размер капитала ты как задаеш, ручками или у тебя роботек считывает таблицу из квика? |
Ручками |
Ну так ты и забивай кол-во лотов ручками, а для расчета в экселе програмку напиши. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Griff
Зарегистрирован: 20.03.2008
Сообщения: 56
|
commenced писал(а): |
Ну так ты и забивай кол-во лотов ручками, а для расчета в экселе програмку напиши. |
Смешно, т.е. ты мне предлогаешь в ручную каждый месяц все пересчитывать и забивать лоты руками. А как дальнейшая оптимизация и тестирование будет строиться тоже в экселе? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Griff писал(а): |
commenced писал(а): |
Ну так ты и забивай кол-во лотов ручками, а для расчета в экселе програмку напиши. |
Смешно, т.е. ты мне предлогаешь в ручную каждый месяц все пересчитывать и забивать лоты руками. А как дальнейшая оптимизация и тестирование будет строиться тоже в экселе? |
А для тестера не нужно забивать кол-во лотов, только начальную сумму, он сам все остальное сделает. Я тебе писал для робота. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Griff
Зарегистрирован: 20.03.2008
Сообщения: 56
|
commenced писал(а): |
А для тестера не нужно забивать кол-во лотов, только начальную сумму, он сам все остальное сделает. Я тебе писал для робота. |
Сделать то сделает, только вот мне нужно видеть результат при определенном стиле управления капиталом, а не так, как это делается по умолчанию - покупаются лоты на все имеющие средства. Вот |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Griff писал(а): |
commenced писал(а): |
А для тестера не нужно забивать кол-во лотов, только начальную сумму, он сам все остальное сделает. Я тебе писал для робота. |
Сделать то сделает, только вот мне нужно видеть результат при определенном стиле управления капиталом, а не так, как это делается по умолчанию - покупаются лоты на все имеющие средства. Вот |
Ну ограничь
Код: |
SetPositionSize(
IIf(Name() == "GAZP", 8,
IIf(Name() == "LKOH", 8,
IIf(Name() == "GMKN",8,
IIf(Name() == "ROSN",8,
IIf(Name() == "SPFB.RTS",68,
0))))),2); |
Т.е. используя функцию SetPositionSize(50,2). тестер будет брать только 50% дэпо при тесте на открытой бумаге, ну я на это надеюсь , тестить портфель только начал. А самое главное можно вычеслить размер депо при котором будет просадка равная Х, просто одним из оптимизируемых параметров сделай размет используемого дэпо в процентах. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Подобную штуку скорее всего можно реализовать при помощи Advanced Porfolio Backtester Interface
По простому реализовать не получится. В принципе не проблемма расчитать кол-во лотов от Money = Equity(1); на начало месяца и потом в течении месяца его использовать, но проблемма в том, что Money это не настоящая эквити, а эквити полученная без использования RiskMoney.
С другой стороны непонятно зачем надо использовать такой хитрый метод? Обычно пересчитывают редко чтобы избежать лишнего гемороя с постоянным пересчитыванием, типа сойдет и так. А если кол-во лотов считает программа, то какой скрытый смысл в месячной фиксации сайза? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Griff
Зарегистрирован: 20.03.2008
Сообщения: 56
|
Никакого хитрого метода здесь нет , также как и постоянного пересчитывания. Пересчет будет осуществляться только на конец месяца, когда будет зафиксирована сумма счета и посчитана соответсвенно максимальная сумма риска для одной сделки на следующй месяц. Если сумма счета выросла (опять же по результатам конца месяца), то и сумма риска увеличивается, что в свою очередь позволяет покупать большее количество лотов. Если произошло обратное и сумма счета уменьшилась, то происходит сокращение позиций.
Хорошо, тогда обратный вопрос, каким образом вы высчитываете количество покупаемых лотов? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Griff
Зарегистрирован: 20.03.2008
Сообщения: 56
|
000 писал(а): |
Подобную штуку скорее всего можно реализовать при помощи Advanced Porfolio Backtester Interface ... |
На этом месте можно немного по подробнее? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
На этом месте можно немного по подробнее? |
Я не знаю. Я с этом не разбирался. Пока небыло необходимости. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Griff писал(а): |
000 писал(а): |
Подобную штуку скорее всего можно реализовать при помощи Advanced Porfolio Backtester Interface ... |
На этом месте можно немного по подробнее? |
Пересчитывай в конце рабочего дня, это 5 мин максимум. И тестируй обычным методом. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
|