Financial Toolboxのバックテストにおける仕様について
4 views (last 30 days)
Show older comments
Financial ToolboxのbacktestStrategy関数を使って、株取引ルールの検証をしようとしています。
その際、MATLABの挙動について不明な点があったので、質問させてください。
MATLABでバックテストを行う際には、価格データを入力する場面が2つあります。
- backtestStrategy関数に適用するrebalanceFcnに入力するassetPricesという価格データ
- new_weights = rebalanceFcn(weights,assetPrices)
- runBacktest関数に入力するpricesTTという価格データ
- backtester = runBacktest(backtester,pricesTT)
これら2つのデータがどのような理由で分けられていて、どのような形で利用されているのか分かりません。
もしかしたら、
assetPrices ⇒ 株の購入価格
pricesTT⇒ 日々の株の評価額
なのかも知れませんが、確証が持てずにいます。
この辺りの仕様に詳しい方、よろしくお願いいたします。
0 Comments
Answers (1)
Shoumei
on 17 May 2021
だいぶ時間が経過しているので、自己解決されていらっしゃるかもしれませんが、本ご質問に気づいたので回答します。
rebalanceFcnおよびrebBacktestの両方で価格データを入力引数として与えるのが不自然だというご質問かと思います。
以下のサンプルの様に、runBacktestで与える価格データをbacktestStrategyを介してrebalanceFcnに与えるようになっているので、データは同じもので、単に入れ子構造になっているだけと考えれば良いと思います。
% バックテスト用オブジェクト作成
strategy = backtestStrategy("Name",@rebalanceFcn,...
'RebalanceFrequency',rebalFreq,...
'TransactionCosts',tradingCosts,...
'LookbackWindow',ewLookback,...
'InitialWeights',initialWeights)
backtestResult = backtestEngine(strategy);
% バックテスト実行
backtestResult = runBacktest(backtester,pricesTable)
function out = rebalanceFcn(weight, PriceTable)
% 省略
end
これらの関数の例にあるプログラムを実行してみると構造が理解できると思います。
0 Comments
See Also
Categories
Find more on Transaction Cost Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!