Overall Statistics
Total Trades
4
Average Win
0.95%
Average Loss
0%
Compounding Annual Return
2989.440%
Drawdown
1.700%
Expectancy
0
Net Profit
1.898%
Sharpe Ratio
14.389
Loss Rate
0%
Win Rate
100%
Profit-Loss Ratio
0
Alpha
1.299
Beta
31.364
Annual Standard Deviation
0.11
Annual Variance
0.012
Information Ratio
14.314
Tracking Error
0.11
Treynor Ratio
0.051
Total Fees
$0.00
#
#   QuantConnect Basic Template:
#    Fundamentals to using a QuantConnect algorithm.
#
#    You can view the QCAlgorithm base class on Github: 
#    https://github.com/QuantConnect/Lean/tree/master/Algorithm
#
from clr import AddReference
AddReference("System")
AddReference("QuantConnect.Algorithm")
AddReference("QuantConnect.Indicators")
AddReference("QuantConnect.Common")

import numpy as np
from  QuantConnect.Indicators import *
from System import *
from QuantConnect import *
from QuantConnect.Algorithm import *
from QuantConnect.Data import *
from datetime import timedelta

class BasicTemplateAldgorithm(QCAlgorithm):

    def Initialize(self):
        # Set the cash we'd like to use for our backtest
        # This is ignored in live trading 
        self.SetCash(100000)
        
        # Start and end dates for the backtest.
        # These are ignored in live trading.
        self.SetStartDate(2019,2,20)
        self.SetEndDate(2019,2,21)
        
        # Set Brokerage model to load OANDA fee structure.
        self.SetBrokerageModel(BrokerageName.OandaBrokerage)
        
        # Add assets you'd like to see
        
        self.symbol = "DE30EUR"
        self.AddCfd(self.symbol, Resolution.Minute)
        
        self.Schedule.On(self.DateRules.EveryDay(self.symbol), self.TimeRules.AfterMarketOpen(self.symbol, 1), self.OpenMarket)
        self.Schedule.On(self.DateRules.EveryDay(self.symbol), self.TimeRules.BeforeMarketClose(self.symbol, 1), self.CloseMarket)

    def OpenMarket(self):
        self.SetHoldings(self.symbol,2)
        self.Debug(" LONG: " + str(self.Portfolio[self.symbol].Quantity) + " units worth " + str(self.Portfolio[self.symbol].Price))

    def CloseMarket(self):
        self.Log("Liquidating Position")
        self.Liquidate(self.symbol)