回測

在投資組合層面進行回測時,如何最優化地執行貨幣轉換?

  • July 26, 2013

我目前正在擴展我自己的策略分析和測試平台,該平台部分包含一個投資組合回測模組。回測引擎處理基於報價的數據(貨幣報價、訂單簿更改和其他資產類別的交易),我目前正在尋求增強風險管理和投資組合能力。當我測試不同基礎貨幣的並發資產投資組合時,我需要為保證金計算、基礎貨幣 pnl 和資本利用目的實現貨幣轉換算法。

我的 EMS 和 OMS 實時沒有問題,因為每個訂閱的資產都會將其基礎貨幣傳遞到一個調度程序,該調度程序經常更新那些有助於將資產基礎貨幣轉換為整個賬戶基礎貨幣的外匯對。然而,當我在回測中處理數億個刻度時,我負擔不起在每個刻度上更新這樣的 fx 對,至少它在計算上會非常昂貴。顯然我們在談論歷史數據,但我擁有任何和所有貨幣對的所有基於歷史報價的數據。

您能否提供解決此類問題的解決方案或想法?一個想法是每天更新一次轉換 fx 對批次(每天只有一個刻度數據點)。外匯匯率在任何一天都不會波動太大,不會對定單規模、保證金計算和名義敞口產生太大影響。但任何其他觀點或建議都受到高度歡迎。

謝謝

從實際的角度來看,轉化率可以在白天保持不變。它不會很精確,但會很快。統計套利回測者有很多先例,其中入場價格是當天的收盤價加上滑點因素。因此,如果您的目標是對抗性研究(存在“這種策略是否有效?”的問題),那麼您可以在轉化率中添加一個負面因素,這總是會使您的結果看起來稍差一些。

這裡有兩個因素,可能會或可能不會衝突。

1)你想模仿生產中會發生的事情。如果您的生產系統每天掃描一次貨幣,那麼就以這種方式進行回測。如果您的清算經紀人只在一天結束時計算保證金,那麼在回測中也這樣做。如果你每個月只調整一次投資組合的大小,那麼在回測中這樣做。其他任何事情都會增加回測和實際性能之間的差異。

  1. 您希望匹配用於評估回測性能的時間間隔。如果您要計算每日結果的績效,您需要/想要每天轉換一次貨幣以用於 pnl 目的。如果您在計算夏普等時要查看每分鐘的投資組合結果,那麼您必須經常轉換貨幣,以便您有一個共同的貨幣進行計算。

在技​​術方面,我不明白為什麼很難以上述兩個因素所暗示的增量更新貨幣價格。如果貨幣刻度的數量正在減慢回測,您可以預處理貨幣數據以提取每個所需時間增量之前的最後一個刻度。因此,如果它是一天一次,那麼每對只保存一個滴答聲。如果您事先不知道您想要什麼時間,您至少可以創建一個較小的數據庫,每對最多每秒有一個滴答聲。

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