問題タブ [performanceanalytics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1328 参照

r - performanceanalytics パッケージを使用したバリュー アット リスクの計算

株式リターンのリストのバリュー アット リスクを計算しようとしました。1000個の観測がありますが、次のように計算したかったのです:

ご覧のとおり、結果は 500 回の計算になります。

問題を解決するために、ループでif条件を使用しようとしました。for

このような:

if(x < 501 & y < 1000){for(i in KO.Returns){VaR(KO.Returns[x: y], p = 0.95, method = "historical")}}

上記のコードを使用すると、次のエラー コードが表示されます。

VaR 計算は、列 1 の信頼できない結果 (逆リスク) を生成します。

0 投票する
1 に答える
203 参照

r - ポートフォリオ レベルのリターンの計算

EDIT UPDATED performanceAnalytics の作成者による素晴らしい投稿を見つけました。この記事は基本的に、ポートフォリオの累積リターンの内外をまとめたものですが、著者が示しているように、かなりトリッキーです (彼も間違っていました)。参考までに: https://tradeblotter.wordpress.com/2014/09/25/aggregate-portfolio-contributions-through-time/

だから私は私の2つの数字が合計されるべきであるはずの切り株に少し遭遇しましたが、そうではありません. 以下は、銘柄の選択肢とポートフォリオの重み付けを含むデータフレームの例です。

次に、ポートフォリオのリターンを表示するために、return.portfolio 関数を rich.index = TRUE で使用します。

dygraph を使用して、ドルの成長を視覚化します。

この例では、5 月 1 日を投資の開始時点として使用します。このポートフォリオでは、5 月 1 日から 11.5% のリターンを得ています。現在の価値 ($1.37) を 5 月 1 日 ($1.23057) で割って計算すると、11.33% の増加が得られます。

しかし、別の方法を使用すると、奇妙な別の答えが得られます。なぜなら、この 2 番目の方法がポートフォリオのリターンを計算する正確な方法だと思っていたからです。

まず、5 月 1 日の株価と現在の値を含むデータフレームを作成します。次に、両方にポートフォリオのそれぞれの重みを掛けます。出力は次のとおりです。

May1C と CurrentC の両方を合計すると、次のようになります。

ポートフォリオの現在の価値は、株式の選択*それぞれの重みであるため、これは私が考えるものです。これによる増加は 6.015% にすぎません。

私の質問は次のとおりです。return.portfolio 関数は 11.3% の増加を返しますが、2 番目のメソッドは 6.015% を返します。

return.portfolio を使用すると、 verbose = TRUE 関数が時間の経過とともに変化する株式の重みを返すことがわかったコメントに返信して編集します。この出力は、EOP と BOP で経時的に変化する重みを示しています。

参考までに、dygraph 出力を実行するための完全なコードを次に示します。