回測
用於回測外部策略的軟體(CSV 交易上傳)
我開發了一些生成交易集的軟體,我想對這些交易進行回測。我的軟體目前輸出一個包含每筆交易詳細資訊的 CSV 文件:
2011-03-31,MSFT,Buy,100 2011-04-02,AAPL,Buy,50 2011-05-10,MSFT,Sell,100
是否有任何回測軟體可以讓你引入一組自己的交易,看看它會如何做?到目前為止,我發現的所有軟體都需要您直接在軟體包中編寫算法,而不是簡單地讓您說“買 X,賣 Y”。
根據評論編輯:
- 我的 CSV 中沒有包含價格或佣金,因為我在這裡的遊戲是長期遊戲(時間尺度是幾個月甚至幾年)。讓回測軟體使用 VWAP(甚至只是當天的收盤價)很好,而且由於大多數零售佣金相當低,我可以讓回測軟體添加一個或忽略它。我可能無法獲得完美的解析度,但(我認為)我已經足夠接近了。
- 我無法使用我找到的任何軟體包,因為我的算法不適用於傳統技術。相反,我正在(主要)關注獨立的東西,例如 13f 數據饋送。
- 我絕對可以在 R 中,甚至在我自己的程式碼庫中編寫一些東西,但我正在努力為自己節省一些關於我的概念證明的工作。
您並不是真的在問如何回測策略。您已經執行回測以生成模擬交易。您需要的是一種評估這些模擬交易表現的方法。
您可以使用 R 包blogger執行此操作。您需要設置您的帳戶和投資組合,然後遍歷 CSV 中的每一行並呼叫
addTxn
. 例如:trades <- read.csv("trades.csv") symbols <- unique(trades$symbol) # Set up a portfolio object and an account object in blotter initPortf(name='default', symbols=symbols, initDate=initDate) initAcct(name='default', portfolios='default', initDate=initDate, initEq=initEq) verbose = TRUE for(i in 1:NROW(trades)) { addTxn('default', Symbol=trades$symbol[i], TxnDate=trades$date[i], TxnPrice={"object-with-price"}, TxnQty=trades$quantity[i], TxnFees=0, verbose=verbose) } # Calculate P&L and resulting equity with blotter updatePortf(Portfolio='default', Dates=CurrentDate) updateAcct(name='default', Dates=CurrentDate) updateEndEq(Account='default', Dates=CurrentDate) # Look at performance chart.Posn(Portfolio='defaut',Symbol='MSFT') chart.Posn(Portfolio='defaut',Symbol='AAPL')