2016-04-12 47 views
1

Rastgele Portföy oluşturmaya çalışıyorum, ancak bir hatayla karşılaşıyorum. varlıkların Hata R'de 591,3 MB'yi ayıramıyor: Ff paketi kullanılarak nasıl çözümlenir?

port <- portfolio.spec(assets = c("^NSEI","ITC.NS", "SBIN.NS", "COALINDIA.NS", "ICICIBANK.NS", "TATAMOTORS.NS", "ADANIPORTS.NS", "UPL.NS", "LICHSGFIN.NS", "NTPC.NS", "ONGC.NS", "TCS.NS", "INFY.NS", "INFRATEL.NS", "DABUR.NS", "BHARTIARTL.NS", "GAIL.NS", "VEDL.NS", "MOTHERSUMI.NS", "WELSPUNIND.NS", "WIPRO.NS", "TATAPOWER.NS", "IDEA.NS", "CAIRN.NS", "UNITECH.NS")) 

isimleri Kutusu ile

Başlat

port <- add.constraint(port, type = "box", min = 0.05, max = 0.8) 

Kaldıraç

port <- add.constraint(portfolio = port, type = "full_investment") 

Gelir Hedefi

port <- add.constraint(portfolio = port, type="return", return_target=0.015) 

benim Portföyünde 24 menkul toplam vardır
rportfolios <- random_portfolios(port, permutations = 3100000, rp_method = "sample") 

rastgele portföylerini

üret ve ben son 1 yıl boyunca Düzeltilmiş kapanış fiyatı kullanıyorum. Ben sayısını artırmak gibi ben

Permuations = 4100000 

Error: cannot allocate vector of size 782.0 Mb

koymak gibi ben

azaltmak Benzer eğer Vektör MB arttırır, biraz deneme yanılma yöntemi yapıldığını ve Permutasyonlar numarası ile bazı sorun olup bilmek gelmiş
Permutations = 2100000 

Error in rp_transform(w = tportfolio, min_sum = min_sum, max_sum = max_sum, :Infeasible portfolio created, perhaps increase max_permutations and/or adjust your parameters.

+0

Çok fazla araştırmadan sonra, Ff paketinde rastladım. Bazıları, ff paketini kullanarak yukarıdaki sorunun nasıl çözüleceğine yardımcı olabilir. –

cevap

1

herkes bu sorunun cevabını ararken buraya gelirse.

Başlangıçta ana hata

Error in rp_transform(w = tportfolio, min_sum = min_sum, max_sum = max_sum, :Infeasible portfolio created, perhaps increase max_permutations and/or adjust your parameters.

uygulanabilir ulaşmak ağırlıkların yeterli sayıda üretiminden kaynaklanmaktadır. source code yılında

, uygulanabilir birine ve başarısızlık üzerine mümkün olmayan portföy ağırlıklarının bir vektör dönüştürmeye çalışır fonksiyonu rp_tranform bu hatayı atar. Kaynak kodu

# checks for infeasible portfolio
# Stop execution and return an error if an infeasible portfolio is created
# This will be useful in fn_map so that we can catch the error and take
# action (try again with more permutations, relax constraints, different
# method to normalize, etc.)

Yani, sen

port <- add.constraint(port, type = "box", min = 0.01, max = 0.95) 

için kutu kısıtlamaların gevşetilmesi ya da diğer bazı kısıtlamalar değiştirmeyi deneyebilirsiniz.