Бектест портфеля

Questions about QUIK trading plugin for Russian brokers and general MultiCharts questions can be asked here in Russian; they will be answered in Russian by our staff. No registration necessary.
nevr

Бектест портфеля

Postby nevr » 02 Dec 2011

Добрый день.

Вопрос к разработчикам. Как на изи написать такой же манименеджмент, как он "зашит" в бектесте портфеля? Для одного инструмента получилось сразу, а для нескольких инструментов добиться распределения сайзов, как в МЧ не получилось.

То есть я хочу прописать модуль управления сайзом в изи и чтобы он совпадал с бектестом, который идет при сайзе = 0 и установленных параметрах на закладке Portfolio Settings.

Заранее спасибо.

User avatar
Katrin Yanenko
Posts: 55
Joined: 28 Nov 2011
Has thanked: 18 times
Been thanked: 23 times

Re: Бектест портфеля

Postby Katrin Yanenko » 02 Dec 2011

Здравствуйте, nevr!
Вы можете попробовать реализовать это с помощью глобальных переменных (http://www.bigmiketrading.com/tradestat ... harts.html - можете ознакомиться с более подробной информацией и примерами на Big Mike's Forum), либо Вы можете заказать разработку индивидуального проекта, обратившись к своему аккаунт менеджеру или написав нам на support@multicharts.com

nevr
Posts: 7
Joined: 02 Dec 2011
Has thanked: 1 time

Re: Бектест портфеля

Postby nevr » 03 Dec 2011

Катрин, спасибо за оперативный ответ. С "написать" проблем нет. У меня не получается "расшифровать" логику, которую заложили разработчики в бектест портфеля. С одной стороны, задача простая и должна легко воспроизводиться, с другой стороны, полученная модель не совпадает с тем что делает МЧ. И сразу возникает вопрос: возможно МЧ при бектесте портфеля ошибочно считает?

Я, как и многие пользователи, хочу быть уверен, что бектест портфеля работает корректно. Поэтому я хочу тупо на калькуляторе иметь возможность проверить корректность его работы. Я потратил достаточно времени в попытках получить подтверждение корретности работы бектеста портфеля и у меня не получилось выйти на данные МЧ.

Поэтому, если это ошибка, то давайте ее исправим. Если бектест считает правильно, то давайте покажем, как он это делает. Мне не нужен код на изи или готовый продукт. Можно просто формулу на понятийном уровне. Там всего пять переменных. Покажите, что на что вы в седьмом релизе умножаете и делите, чтобы получались те результаты, которые МЧ рисует в бектест репорте.

Заранее спасибо за ответ.

P.S. На всякий случай повторяю. Меня интересует расчет именно количества контрактов, которые подставляет бектестер, если выбрана опция расчета количества контрактов в зависимости от эквити.

User avatar
Katrin Yanenko
Posts: 55
Joined: 28 Nov 2011
Has thanked: 18 times
Been thanked: 23 times

Re: Бектест портфеля

Postby Katrin Yanenko » 07 Dec 2011

Здравствуйте, nevr!

Надеюсь, эта информация Вам поможет.
В режиме «Percent of Equity» просчет количества контрактов (NumberOfContracts) для ордера-входа осуществляется по следующей формуле:
NumberOfContracts = IntPortion( (EntryAmmount – CommVpt – SlippageVpt) / ( MaxPotentialLossPerContract + MarginPerContract + CommVpc + SlippageVpc) );, где:
• CommVpt – Значение комиссии в режиме per Trade. Если выбран другой режим значение равно 0.
• SlippageVpt – Значение слипаджа в режиме per Trade. Если выбран другой режим значение равно 0.
• CommVpc – Значение комиссии в режиме per Contract. Если выбран другой режим значение равно 0.
• SlippageVpc – Значение слипаджа в режиме per Contract. Если выбран другой режим значение равно 0.
Включение режима «Percent of Equity» осуществляется переключателем на странице «Properties» в диалоге «Format Settings».
Подбор количества контрактов осуществляется таким образом, что:
если N – исходное количество контрактов у ордера, Nm – новое количество контрактов, то соблюдаются условия:
• N > Nm
• при Nm+1 контрактов какое-то одно, либо оба ограничения нарушаются.
Если в результате урезания количества контрактов у ордера получается Nm = 0, то ордер считается не прошедшим проверку (не удовлетворяющим текущим правилам money management) и не посылается.
Last edited by Katrin Yanenko on 08 Dec 2011, edited 1 time in total.

nevr
Posts: 7
Joined: 02 Dec 2011
Has thanked: 1 time

Re: Бектест портфеля

Postby nevr » 07 Dec 2011

Катрин, спасибо за ответ.

Эта формула для одной стратегии в портфеле и она превосходно воспроизводится. То есть тут модель полностью совпадает с тем, что делает МЧ в бектесте. Проблемы наступают, когда в этом режиме запускается несколько стратегий.

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

User avatar
Katrin Yanenko
Posts: 55
Joined: 28 Nov 2011
Has thanked: 18 times
Been thanked: 23 times

Re: Бектест портфеля

Postby Katrin Yanenko » 09 Dec 2011

Следующая информация поможет Вам разобраться с формулой в моём первом сообщении:

Доступное количество денег для осуществления входа в позицию EntryAmmount вычисляется по формуле:
EntryAmmount = Portfolio_Equity * PercentOfEquity / 100;, где:
PercentOfEquity – значение в поле ввода опции «Percent of Equity» в процентах
Текущее доступное количество средств на «счете» Portfolio_Equity вычисляется по формуле:
Portfolio_Equity = InitialCapital + Portfolio_NetProfit + Portfolio_OpenPositionProfit – TotalPotentialRiskCapital;, где:
• InitialCapital – начальный капитал (состояние счета на момент начала торговли). Задается на странице «Portfolio Settings».
• Portfolio_NetProfit – текущий профит по всему портфелю. Представляет из себя сумму NetProfit по всем символам (можно «посмотреть» через ключевое слово «portfolio_netprofit»).
• Portfolio_OpenPositionProfit – текущий потенциальный профит по всему портфелю. Представляет из себя сумму OpenPositionProfit по всем символам (можно «посмотреть» через ключевое слово «portfolio_openpositionprofit»).
MaxPotentialLossPerContract - максимальное количество рискового капитала на контракт в $.
Если выбрана опция «Absolute Max Potential Loss», то пользователь указывает абсолютное значение MaxPotentialLossPerContract в $.
Если выбрана опция «Max Potential Loss», то пользователь задает значение MaxPotentialLossPerContractPrcnt в поле ввода в процентах. Значение MaxPotentialLossPerContract при этом вычисляется по следующей формуле:
MaxPotentialLossPerContract = (OrderPrice*BigPointValue) * MaxPotentialLossPerContractPrcnt / 100;, где:
• OrderPrice – цена ордера (если ордер маркетовый, то берется цена «Open» бара на котором ордер посылается (не генерируется, а именно ПОСЫЛАЕТСЯ));
• BigPointValue – стоимость единицы цены в $ (берется из настроек символа в QM);
• MaxPotentialLossPerContractPrcnt - максимальное количество рискового капитала заданное в %;
MarginPerContract – величина маржи на контракт в $.
Если выбрана опция «Margin value», то пользователь указывает значение маржи в процентах (MarginPerContractPrcnt), то значение MarginPerContract вычисляется по следующей формуле:
MarginPerContract = (OrderPrice*BigPointValue) * MarginPerContractPrcnt / 100;, где:
• OrderPrice – цена ордера (если ордер маркетовый, то берется цена «Open» бара на котором ордер посылается (не генерируется, а именно ПОСЫЛАЕТСЯ));
• BigPointValue – стоимость единицы цены в $;
• MarginPerContractPrcnt – величина маржи, заданная в %.

nevr
Posts: 7
Joined: 02 Dec 2011
Has thanked: 1 time

Re: Бектест портфеля

Postby nevr » 09 Dec 2011

Катрин, спасибо за развернутый ответ. Почти все прояснилось.

Осталась узнать одно - как считается TotalPotentialRiskCapital .

Побеспокойте, плз, последний раз разработчика, чтобы он раскрыл, из чего точно получается значение TotalPotentialRiskCapital.

User avatar
Katrin Yanenko
Posts: 55
Joined: 28 Nov 2011
Has thanked: 18 times
Been thanked: 23 times

Re: Бектест портфеля

Postby Katrin Yanenko » 14 Dec 2011

Вот то, что Вы просили:

Суммарное количество уже инвестированного рискового капитала TotalPotentialRiskCapital (капитал, который «заморожен» в сделке / капитал, который мы можем потерять) по всем символам:
TotalPotentialRiskCapital = ∑ PotentialRiskCapitalForSymbol for each symbol;


Суммарное количество рискового капитала PotentialRiskCapitalForSymbol вычисляется по формуле:
PotentialRiskCapitalForSymbol = ∑ PotentialRiskCapital for each ENTRY in POSITION;


Величина максимального потенциального убытка на сделку PotentialRiskCapital (в долларах) считается как:
PotentialRiskCapital = Quantity*(MaxPotentialLossPerContract+MarginPerContract + CommVpc + SlippageVpc) + CommVpt + SlippageVpt;, где:
• Quantity – количество контрактов;
• CommVpt – Значение комиссии в режиме per Trade. Если выбран другой режим значение равно 0.
• SlippageVpt – Значение слипаджа в режиме per Trade. Если выбран другой режим значение равно 0.
• CommVpc – Значение комиссии в режиме per Contract. Если выбран другой режим значение равно 0.
• SlippageVpc – Значение слипаджа в режиме per Contract. Если выбран другой режим значение равно 0.

nevr
Posts: 7
Joined: 02 Dec 2011
Has thanked: 1 time

Re: Бектест портфеля

Postby nevr » 15 Dec 2011

Катрин, спасибо за исчерпывающий ответ.

User avatar
Katrin Yanenko
Posts: 55
Joined: 28 Nov 2011
Has thanked: 18 times
Been thanked: 23 times

Re: Бектест портфеля

Postby Katrin Yanenko » 15 Dec 2011

Пожалуйста, nevr.
Всегда рады Вам помочь.


Return to “MultiCharts QUIK”