回測

用於回測外部策略的軟體(CSV 交易上傳)

  • October 21, 2020

我開發了一些生成交易集的軟體,我想對這些交易進行回測。我的軟體目前輸出一個包含每筆交易詳細資訊的 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')

引用自:https://quant.stackexchange.com/questions/7682