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.156
Tracking Error
0.231
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
import numpy as np
from System.Drawing import Color
from clr import AddReference
AddReference("System")
AddReference("QuantConnect.Algorithm")
AddReference("QuantConnect.Common")
from datetime import date, timedelta, datetime, time
from System import *
from QuantConnect import *
from QuantConnect.Algorithm import *
from QuantConnect.Indicators import *
from QuantConnect.Data.Market import TradeBar
import decimal as d

class VerticalTransdimensionalCoreWave(QCAlgorithm):

    def Initialize(self):
        
        self.SetTimeZone("America/New_York")
    
        self.SetStartDate(2021, 7, 16)
        self.SetEndDate(2021, 7, 20)
        
        stock = "QQQ"
        
        self.STOCK = self.AddEquity(stock, Resolution.Minute)
        self.SetCash(10000)  # Set Strategy Cash
        self.SetWarmUp(100)
        
        self.Firststock = stock
        
        self.Percent = self.ROCP(self.Firststock, 1, Resolution.Minute)
        self.VolumeSet = self.SMA(self.Firststock, 1, Resolution.Minute, Field.Volume)
        self.Percent.Updated += self.UpdateVolumeSet
        
        #Plotting****************************************************************
        stockPlot = Chart("Trade Plot")
        stockPlot.AddSeries(Series("Price Close", SeriesType.Line, 0))
        stockPlot.AddSeries(Series('Buy', SeriesType.Scatter, '$', Color.Green, ScatterMarkerSymbol.Triangle))
        stockPlot.AddSeries(Series('Sell', SeriesType.Scatter, '$', Color.Red, ScatterMarkerSymbol.TriangleDown))
        self.AddChart(stockPlot)
  

        
    def UpdateVolumeSet(self, sender, updated):
        if not self.Percent.IsReady:
            return
        if self.Percent.Current.Value < 0:
            self.VolumeSet.Update(self.Time, -1*(updated.Value))
        else:
            self.VolumeSet.Update(self.Time, (updated.Value))
        if not self.VolumeSet.IsReady:
            return
        
    def MAUpdated(self, sender, updated):
        self.MAWindow.Add(updated.Value)

        
    def OnData(self, data): 
        if self.IsWarmingUp: return 
        
        if self.CurrentSlice.Bars.ContainsKey(self.Firststock):
            self.Price = data[self.Firststock].Value
            
#Plotting******************************************************************
            self.Plot("Trade Plot", "Price Close", self.Price)
            
            self.Plot("Volume", "Volume", self.Securities[self.Firststock].Volume)
            self.Plot("Volume", "VolumeSet", self.VolumeSet.Current.Value)