Постройте кривые акции стратегий
equityCurve( строит кривые акции каждой стратегии, что вы создаете использование backtester)backtestStrategy. После создания backtesting механизма с помощью backtestEngine и выполнение backtest с runBacktest, используйте equityCurve построить стратегии и сравнить их эффективность.
дополнительно возвращается, фигура обрабатывают h = equityCurve(ax,backtester)h.
MATLAB® backtesting механизм запускает backtests стратегий портфельных инвестиций в зависимости от времени серия данных цен активов. После создания набора backtest стратегий с помощью backtestStrategy и backtesting механизм с помощью backtestEngine, runBacktest функция выполняет backtest. После использования runBacktest функционируйте, чтобы протестировать инвестиционные стратегии, можно запустить equityCurve функционируйте, чтобы построить кривые акции стратегий.
Загрузка данных
Загрузите один год данных о курсе акций. Для удобочитаемости этот пример использует только подмножество запасов DJIA.
% Read a table of daily adjusted close prices for 2006 DJIA stocks T = readtable('dowPortfolio.xlsx'); % Prune the table to hold only the dates and selected stocks timeColumn = "Dates"; assetSymbols = ["BA", "CAT", "DIS", "GE", "IBM", "MCD", "MSFT"]; T = T(:,[timeColumn assetSymbols]); % Convert to timetable pricesTT = table2timetable(T,'RowTimes','Dates'); % View the final asset price timetable head(pricesTT)
ans=8×7 timetable
Dates BA CAT DIS GE IBM MCD MSFT
___________ _____ _____ _____ _____ _____ _____ _____
03-Jan-2006 68.63 55.86 24.18 33.6 80.13 32.72 26.19
04-Jan-2006 69.34 57.29 23.77 33.56 80.03 33.01 26.32
05-Jan-2006 68.53 57.29 24.19 33.47 80.56 33.05 26.34
06-Jan-2006 67.57 58.43 24.52 33.7 82.96 33.25 26.26
09-Jan-2006 67.01 59.49 24.78 33.61 81.76 33.88 26.21
10-Jan-2006 67.33 59.25 25.09 33.43 82.1 33.91 26.35
11-Jan-2006 68.3 59.28 25.33 33.66 82.19 34.5 26.63
12-Jan-2006 67.9 60.13 25.41 33.25 81.61 33.96 26.48
Создайте стратегию
Протестируйте равно взвешенную инвестиционную стратегию. Эта стратегия инвестирует равный фрагмент ликвидного капитала в каждый актив. Этот пример не описывает, как создать backtesting стратегии. Для получения дополнительной информации о создании backtesting стратегии, смотрите backtestStrategy.
Установите 'RebalanceFrequency' восстанавливать равновесие портфеля каждые 60 дней. Этот пример не использует lookback окно, чтобы изменять баланс.
% Create the strategy numAssets = size(pricesTT,2); equalWeightsVector = ones(1,numAssets) / numAssets; equalWeightsRebalanceFcn = @(~,~) equalWeightsVector; ewStrategy = backtestStrategy("EqualWeighted",equalWeightsRebalanceFcn,... 'RebalanceFrequency',60,... 'LookbackWindow',0,... 'TransactionCosts',0.005,... 'InitialWeights',equalWeightsVector)
ewStrategy =
backtestStrategy with properties:
Name: "EqualWeighted"
RebalanceFcn: @(~,~)equalWeightsVector
RebalanceFrequency: 60
TransactionCosts: 0.0050
LookbackWindow: 0
InitialWeights: [0.1429 0.1429 0.1429 0.1429 0.1429 0.1429 0.1429]
Запустите Backtest
Создайте backtesting механизм и запустите backtest более чем год данных о запасе. Для получения дополнительной информации о создании backtest механизмы, смотрите backtestEngine.
% Create the backtesting engine. The backtesting engine properties that hold the % results are initialized to empty. backtester = backtestEngine(ewStrategy)
backtester =
backtestEngine with properties:
Strategies: [1x1 backtestStrategy]
RiskFreeRate: 0
CashBorrowRate: 0
RatesConvention: "Annualized"
Basis: 0
InitialPortfolioValue: 10000
NumAssets: []
Returns: []
Positions: []
Turnover: []
BuyCost: []
SellCost: []
% Run the backtest. The empty properties are now populated with % timetables of detailed backtest results. backtester = runBacktest(backtester,pricesTT)
backtester =
backtestEngine with properties:
Strategies: [1x1 backtestStrategy]
RiskFreeRate: 0
CashBorrowRate: 0
RatesConvention: "Annualized"
Basis: 0
InitialPortfolioValue: 10000
NumAssets: 7
Returns: [250x1 timetable]
Positions: [1x1 struct]
Turnover: [250x1 timetable]
BuyCost: [250x1 timetable]
SellCost: [250x1 timetable]
Сгенерируйте кривую акции
Используйте equityCurve построить кривую акции для стратегии равного веса.
equityCurve(backtester)

backtester — Механизм BacktestingbacktestEngine объектМеханизм Backtesting в виде backtestEngine объект. Используйте backtestEngine создать backtester объект.
Примечание
backtester аргумент должен использовать backtestEngine объект, который был запущен с помощью runBacktest.
Типы данных: object
ax — Допустимый объект оси(Необязательно) Допустимая ось возражает в виде ax возразите, что вы создаете использование axes. График создается на осях, заданных дополнительным ax аргумент вместо на текущей системе координат (gca). Дополнительный аргумент ax может предшествовать любой из комбинаций входных аргументов.
Типы данных: object
h — Изобразите указательИзобразите указатель для графика кривой акции, возвращенного как объект указателя.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.