| Overall Statistics |
|
Total Orders 8 Average Win 0% Average Loss 0% Compounding Annual Return 2.428% Drawdown 18.200% Expectancy 0 Start Equity 25000 End Equity 36963.16 Net Profit 47.853% Sharpe Ratio 0.058 Sortino Ratio 0.075 Probabilistic Sharpe Ratio 0.041% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.014 Beta -0.161 Annual Standard Deviation 0.058 Annual Variance 0.003 Information Ratio -0.322 Tracking Error 0.199 Treynor Ratio -0.021 Total Fees $0.00 Estimated Strategy Capacity $960000.00 Lowest Capacity Asset USDJPY 8G Portfolio Turnover 0.02% |
from AlgorithmImports import *
from QuantConnect.DataSource import *
class ForexCarryTradeAlgorithm(QCAlgorithm):
def initialize(self) -> None:
self.set_start_date(2008, 1, 1)
self.set_cash(25000)
# We will use hard-coded interest rates
self.rates = {
"USDAUD": 1.5, # Australia
"USDCAD": 0.5, # Canada
"USDCNY": 4.35, # China
"USDEUR": 0.0, # Euro Area
"USDINR": 6.5, # India
"USDJPY": -0.1, # Japan
"USDMXN": 4.25, # Mexico
"USDTRY": 7.5, # Turkey
"USDZAR": 7.0 # South Africa
}
for ticker in self.rates:
self.add_forex(ticker, Resolution.DAILY, Market.OANDA)
self.month = -1
def on_data(self, slice: Slice) -> None:
if self.month == self.time.month:
return
self.month = self.time.month
sorted_rates = sorted(self.rates.items(), key = lambda x: x[1])
self.set_holdings(sorted_rates[0][0], -0.5)
self.set_holdings(sorted_rates[-1][0], 0.5)