戦略

2017-11-05 29 views
-2

シナリオの平均リターンを計算戦略

  • (quantstrat、ブロッターとportfolioanalyticsを使用して)私が持っている10Kの初期資本
  • 私は私が3000シンボル宇宙上でバックテストしたいの戦略(株)
  • を持っています私は買いのクロスオーバーを取得するたびに、私はバックテストパープで販売クロスオーバー
  • に株式と近い位置 の10kの価値を買う戦略はシンプルMAクロスオーバー
  • あるとしましょう戦略はいかなるポートフォリオの制約もなく取引できるため、いつでもどこでも100 +ポジションを保持している可能性がありますので、 初期株式を考慮しないでください。

この戦略のすべての取引に対する平均的な収益を知りたいと思います。

現実には、私は10kしか持っていなかったのですが、一度に1つの取引にしかなりませんでしたが、平均的な収益が何であるかstatisctally知りたいと思います。

これを株価ベンチマークと比較したいと思います。

  • I SUMまたは各シンボル
  • の戻り流れは、それがポートフォリオのリターンであることを意味し、これは考慮に初期 株式を取るんですか? - 私は返還を当初株主資本のパーセンテージにすることを望まないか、またはシンボルがどのように取引されているかを考慮する。
+0

データセットのサンプルと、理想的な出力が何を表示するかを指定する必要があります。あなたのデータセットが機密性があるならば、我々が扱うことができるいくつかの偽のデータを作成し、あなたの実際のデータセットにソリューションを調整することができます。 – AntoniosK

+0

ok私は戦略の例を入れます –

答えて

0

私は時間を得るとき、私は例の戦略を追加しますが、問題の解決策は次のとおりです。

#get the portfolio returns 
instRets <- PortfReturns(account.st) 
#for each column, NA the values where there is no return, because when the values are averaged out, you don't want 0's to be included in the calculation 
# if there are no signals in the strategy, you will invest money elsewhere rather than just leaving lying around. Therefore you only calculate the returns #when the strategy is ACTIVE 
for (i in 1:ncol(instRets)){ 
    instRets[,i][instRets[,i] == 0] <- NA 
} 
#this will give you the average return when the strategy is active, if there are 100 trades on, you want the average return during that period. 
portfRets <- xts(rowMeans(instRets, na.rm = T), order.by = index(instRets)) 
portfRets <- portfRets[!is.na(portfRets)] 

今、あなたは、例えばベンチマークSPYと戦略を比較することができます。戦略にアルファがある場合は、シグナルが発生したときに戦略に資金を適用し、シグナルがないときは指標に投資し続けるためのバランスルールを使用できます。

私の知る限り、ブロッターに組み込まれたリターン分析では、初期株価を使ってリターンを計算します。そのため、最初の株主持分と同じ額を各トレードに投資します。 10k当初株式、1取引あたり10k。