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
Probabilistic 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.81
Tracking Error
0.1
Treynor Ratio
0
Total Fees
$0.00
from clr import AddReference
AddReference("System")
AddReference("QuantConnect.Algorithm")
AddReference("QuantConnect.Common")

from System import *
from QuantConnect import *
from QuantConnect.Algorithm import *
from QuantConnect.Data.Consolidators import *
from datetime import timedelta
from QuantConnect.Indicators import CommodityChannelIndex, Stochastic

class NotebookProject(QCAlgorithm):
    cons = None
    
    def Initialize(self):
        
        self.SetTimeZone("Europe/London")
        
        self.SetBrokerageModel(BrokerageName.OandaBrokerage)
        
        self.SetStartDate(DateTime(2020, 6, 19))  #Set Start Date
        
        self.SetEndDate(self.StartDate + timedelta(3))  #Set End Date

        self.wticousd = self.AddCfd("WTICOUSD", Resolution.Minute, Market.Oanda)
        
        self.wticousd.SetDataNormalizationMode(DataNormalizationMode.Raw)
        
        thirtyMinuteConsolidator = QuoteBarConsolidator(timedelta(minutes=30))

        thirtyMinuteConsolidator.DataConsolidated += self.ThirtyMinuteQuoteBarHandler
        
        self.SubscriptionManager.AddConsolidator("WTICOUSD", thirtyMinuteConsolidator)
        
        self.sto = Stochastic("WTICOUSD", 21, 21, 39)
        self.cci = CommodityChannelIndex("WTICOUSD", 200)
        
        #self.RegisterIndicator("WTICOUSD", self.sto, thirtyMinuteConsolidator)
        #self.RegisterIndicator("WTICOUSD", self.cci, thirtyMinuteConsolidator)
        
        self.SetWarmup(200*30, Resolution.Minute) 
    
    def OnData(self, data):
        #self.Debug(f"{self.Time} >> {cons.Open} && {cons.Close}")
        pass
    def ThirtyMinuteQuoteBarHandler(self, sender, consolidated):
        
        self.sto.Update(consolidated)
        self.cci.Update(consolidated)
        
        sto_value = self.sto.Current.Value
        #cci_value = self.cci.Current.Value
        
        if self.IsWarmingUp:
            return 

        if self.Time.month == 6 and self.Time.day == 19 and self.Time.hour >= 20:
            #self.Debug(f'{self.Time} >> STO >> {sto_value} CCI >> {cci_value}')
            self.Debug(f'{self.Time} >> STO >> {sto_value}')
        
        
        #if not self.sto.IsReady:
        #    return
        
        #sto_value = self.sto.StochK
        
        #cci_value = self.cci.Current.Value
        
        #self.Debug(f'{self.Time} >> {sto_value}') 
   
        #self.Debug(f"{self.Time} >> {consolidated.Open} && {consolidated.Close}")
        
        #self.cons = consolidated