2017-11-28 3 views
3

Ich benutze Löschpapier zu halten und die Buchhaltung von einigen Transaktionen zu tun, aber ich würde sie täglich speichern und laden müssen.Speichern und Laden von Löschpapier-Portfolio

Ich konnte meine Transaktionen nicht speichern, ich glaube, dass das passiert, weil sie in einer anderen Umgebung sind, die durch Blotter (.blotter) erstellt wurde - von dem, was ich durch googlen meiner Fragen aufnehmen konnte.

Ich habe ein Beispiel für eine Transaktion ein:

require(quantstrat) 
currency("USD") 
stock(primary_id = "SB1", currency = "USD", multiplier=1120, tick_size = 0.01) 
initPortf(name="testport", symbols="SB1", initDate = "2017-11-01") 
initAcct(name="testacct", portfolio="testport", initDate = "2017-11-01", initEq = 100000) 
ls_instruments() 
addTxn(Portfolio="testport", Symbol="SB1", TxnDate="2017-11-22", TxnPrice=15.00, TxnQty = 2 , verbose=TRUE) 
getPos(Portfolio="testport", Symbol="SB1", "2017-11-22", Columns=c("Pos.Qty")) 

Dann versuche ich, es zu speichern (was nicht funktioniert) und dachte darüber, wie in dem folgenden Code geladen:

save("testport", file="C:/Users/augus/Dropbox/Trading/R/Trading/Dados/test.RData", envir=.blotter) 
load(file="C:/Users/augus/Dropbox/Trading/R/Trading/Dados/test.RData", verbose=TRUE) 

Ich bin ziemlich bekannt zu R und stackoverflow, also lassen Sie mich bitte wissen, wenn ich irgendwelche Informationen in meiner Frage vermisse, und vielen Dank für die Hilfe.

Alles Gute,

Augusto

Antwort

2

Das Objekt, das Sie wollte, war eigentlich "portfolio.testport", nicht "TEST" (das auf diese Weise in blotter ausgelegt ist). Sie können, indem Sie überprüfen, was in der .blotter Umgebung:

ls(.blotter) 
#[1] "account.testacct" "portfolio.testport" 

du stattdessen tun könnte:

save("portfolio.testport", file="test.RData", envir=.blotter) 
save("testport", file="C:/Users/augus/Dropbox/Trading/R/Trading/Dados/test.RData", envir=.blotter) 
load(file="test.RData", verbose=TRUE) 

Sie können allerdings nicht alle von dem Zeug in diesem Portfolio speichern möchten, so dass es hilft zu verstehen, was das Portfolio ausmacht.

p <- getPortfolio("testport") 
class(p) 
#[1] "blotter_portfolio" "portfolio" 

Es ist im Grunde eine Liste, die eine Zusammenfassung (XTS) und ein Symbol Objekt (ein andere Liste):

ls(p) 
#[1] "summary" "symbols" 

Die Inhalte der Symbolliste ist:

ls(p$symbols) 
#[1] "SB1" 

Und jedes Symbolobjekt ist auch eine Liste mit 3 xts Objekten:

txn ist eines der Objekte (ein xts Objekt selbst):

head(p$symbols$SB1$txn) 
# Txn.Qty Txn.Price Txn.Value Txn.Avg.Cost Pos.Qty Pos.Avg.Cost Gross.Txn.Realized.PL Txn.Fees Net.Txn.Realized.PL Con.Mult 
# 2017-11-01  0   0   0   0  0   0      0  0     0  0 
# 2017-11-22  2  15  33600   15  2   15      0  0     0  1120 

Sie möchten nur Unter Teile des obigen Portfolio-Objekt speichern.

Hier ist ein weiterer Ansatz, den Sie nützlich für das Speichern finden könnte:

p <- getPortfolio("testport") 
saveRDS(p, "test2.rds") 
p <- readRDS("test2.rds")