Overall Statistics
Total Trades
1
Average Win
0%
Average Loss
0%
Compounding Annual Return
0.815%
Drawdown
0.200%
Expectancy
0
Net Profit
0.687%
Sharpe Ratio
1.575
Probabilistic Sharpe Ratio
71.077%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0.01
Beta
-0.006
Annual Standard Deviation
0.005
Annual Variance
0
Information Ratio
-2.175
Tracking Error
0.175
Treynor Ratio
-1.428
Total Fees
$0.00
Estimated Strategy Capacity
$0
class MultidimensionalCalibratedChamber(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2020, 6, 9)
        self.SetCash(10000)
        
        properties = SymbolProperties("EUR", "USD", 1, 0.0001, 1, "EURUSD")
        exchangeHours = SecurityExchangeHours.AlwaysOpen(TimeZones.NewYork)
        self.symbol = self.AddData(USDRUB, "EURUSD", properties, exchangeHours)
        self.Log(f"{self.symbol.SymbolProperties.MinimumPriceVariation}")
        
        
    def OnData(self, data):
        if not self.Portfolio.Invested:
            self.StopMarketOrder(self.symbol.Symbol, 10, 1.39140)
            
        
class USDRUB(PythonData):
    ''' Weather based rebalancing'''

    def GetSource(self, config, date, isLive):
        source = "https://raw.githubusercontent.com/shilewenuw/FileHost/master/%5Eusdrub_price-history-09-09-2020.csv"
        return SubscriptionDataSource(source, SubscriptionTransportMedium.RemoteFile);


    def Reader(self, config, line, date, isLive):
        # If first character is not digit, pass
        if not (line.strip() and line[0].isdigit()): return None

        data = line.split(',')
        usdrub = USDRUB()
        usdrub.Symbol = config.Symbol
        usdrub.Time = datetime.strptime(data[0].split(' ')[0], '%m/%d/%Y') 
        usdrub.Value = float(data[4])
        usdrub['Open'] = float(data[1])
        usdrub['High'] = float(data[2])
        usdrub['Low'] = float(data[3])
        usdrub['Close'] = float(data[4])
        usdrub['Volume'] = float(data[6])
        usdrub['pct_change'] = float(data[5])
        
        return usdrub