| Overall Statistics |
|
Total Trades 344 Average Win 0.24% Average Loss -0.06% Compounding Annual Return 3.052% Drawdown 19.000% Expectancy 2.607 Net Profit 53.997% Sharpe Ratio 0.371 Probabilistic Sharpe Ratio 0.181% Loss Rate 31% Win Rate 69% Profit-Loss Ratio 4.24 Alpha 0.038 Beta -0.186 Annual Standard Deviation 0.062 Annual Variance 0.004 Information Ratio -0.271 Tracking Error 0.207 Treynor Ratio -0.124 Total Fees $0.00 Estimated Strategy Capacity $970000.00 Lowest Capacity Asset USDJPY 8G |
from AlgorithmImports import *
class ForexCarryTradeAlgorithm(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2008, 1, 1)
self.SetCash(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.AddForex(ticker, Resolution.Daily, Market.Oanda)
self.month = -1
def OnData(self, data):
if self.month == self.Time.month:
return
self.month = self.Time.month
sorted_rates = sorted(self.rates.items(), key = lambda x: x[1])
self.SetHoldings(sorted_rates[0][0], -0.5)
self.SetHoldings(sorted_rates[-1][0], 0.5)