Overall Statistics
Total Trades
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Net Profit
0%
Sharpe Ratio
0
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
0
Tracking Error
0
Treynor Ratio
0
Total Fees
$0.00
import numpy as np

class BasicTemplateAlgorithm(QCAlgorithm):

    def Initialize(self):

        self.instrument_id = "USDJPY"
        self.N1,self.N2= 150, 20
        self.SetStartDate(2016,1,1)  #Set Start Date
        self.SetEndDate(2016,1,10)    #Set End Date
        self.SetCash(10000)           #Set Strategy Cash

        self.SetBrokerageModel(BrokerageName.OandaBrokerage, AccountType.Margin)

        self.AddForex(self.instrument_id, Resolution.Tick)

        self.SetBenchmark(self.instrument_id)
        self.Securities[self.instrument_id].SetLeverage(50)

        ## Need to declare consolidator as Tick QuoteBar Consolidator so it can handle Tick objects, rather thank QuoteBar which would
        ## be the appropriate type for anything with a coarser resolution than tick
        ## Note that if your tick data was for a security supporting TradeBars, then the proper consolidator would be TickConsolidator

        consolidator = TickQuoteBarConsolidator(TimeSpan.FromMinutes(30)) ## force consolidator to produce 30 minute bars
        consolidator.DataConsolidated += self.OnCandle
        self.SubscriptionManager.AddConsolidator(self.instrument_id, consolidator)
        
    
    def OnData(self, data):
        ## Any trading code in here will be at the tick level
        pass
        
    def OnCandle(self, sender, bar):
        ## Any trading code in here will be at the minute level
        self.Log('New 30M bar >> Bid Close price: ' + str(bar.Bid.Close))