Overall Statistics
import numpy as np
import decimal as d

### <summary>
### Strategy for short and long based on IchiMoku Senkou Span A and Span B.
### </summary>
class DCAlgorithm(QCAlgorithm):

    def Initialize(self):
        '''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.'''
        
        # ==== Date and Equity Settings ====
        self.SetStartDate(2018,10, 10)  #Set Start Date
        self.SetEndDate(2018,10,25)    #Set End Date
        self.SetCash(100000)           #Set Strategy Cash
    
        # ==== System Inputs ====
        self.dtl = d.Decimal(0.001)
        self.dts = d.Decimal(-0.001)
        self.symbolH = "USDCAD"
        self.symbolD = "USDCAD"
        self.LongPos = 1.0
        self.ShortPos = -1.0
        self.SetBenchmark(self.symbolD)
        
        # ==== Equities Data Structure ====
        # Find more symbols here: http://quantconnect.com/data
        #self.AddEquity(self.symbol, Resolution.Hour)
        #self.Debug("numpy test >>> print numpy.pi: " + str(np.pi))
        
        # ==== Forex data structure ====
        #self.AddForex(self.symbolH, Resolution.Hour, Market.Oanda)
        self.AddForex(self.symbolD, Resolution.Daily, Market.Oanda)
        #self.forex.SetDataNormalizationMode(DataNormalizationMode.SplitAdjusted)
        #self.SetBrokerageModel(BrokerageName.OandaBrokerage)
        
        # ==== Set Up Rolling Window ====
        self.window = RollingWindow[QuoteBar](2)
    
     
    def OnData(self, data):
        '''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.

        Arguments:
            data: Slice object keyed by symbol containing the stock data
        '''

        self.window.Add(data[self.symbolD])
        if not (self.window.IsReady): return
        
        currBar = self.window[0]                    # Current bar had index zero.
        pastBar = self.window[1]                     # Past bar has index one.
        #self.Log("Price: {0} -> {1} ... {2} -> {3}".format(pastBar.Time, pastBar.Close, currBar.Time, currBar.Close))
        
        difference = currBar.Close - pastBar.Close
        self.dc = difference/currBar.Close
        self.Log(self.dc)
        
        self.Plot("dailycandle", "dc", self.dc)