* pep8 conversion * Fix: detect python object of python classes derived from c# classes * Minor PEP8 updates/fixes --------- Co-authored-by: Jhonathan Abreu <jdabreu25@gmail.com>
This commit is contained in:
@@ -28,36 +28,36 @@ from HistoryAlgorithm import *
|
||||
class CustomDataIndicatorExtensionsAlgorithm(QCAlgorithm):
|
||||
|
||||
# Initialize the data and resolution you require for your strategy
|
||||
def Initialize(self):
|
||||
def initialize(self):
|
||||
|
||||
self.SetStartDate(2014,1,1)
|
||||
self.SetEndDate(2018,1,1)
|
||||
self.SetCash(25000)
|
||||
self.set_start_date(2014,1,1)
|
||||
self.set_end_date(2018,1,1)
|
||||
self.set_cash(25000)
|
||||
|
||||
self.ibm = 'IBM'
|
||||
self.spy = 'SPY'
|
||||
|
||||
# Define the symbol and "type" of our generic data
|
||||
self.AddData(CustomDataEquity, self.ibm, Resolution.Daily)
|
||||
self.AddData(CustomDataEquity, self.spy, Resolution.Daily)
|
||||
self.add_data(CustomDataEquity, self.ibm, Resolution.DAILY)
|
||||
self.add_data(CustomDataEquity, self.spy, Resolution.DAILY)
|
||||
|
||||
# Set up default Indicators, these are just 'identities' of the closing price
|
||||
self.ibm_sma = self.SMA(self.ibm, 1, Resolution.Daily)
|
||||
self.spy_sma = self.SMA(self.spy, 1, Resolution.Daily)
|
||||
self.ibm_sma = self.sma(self.ibm, 1, Resolution.DAILY)
|
||||
self.spy_sma = self.sma(self.spy, 1, Resolution.DAILY)
|
||||
|
||||
# This will create a new indicator whose value is smaSPY / smaIBM
|
||||
self.ratio = IndicatorExtensions.Over(self.spy_sma, self.ibm_sma)
|
||||
# This will create a new indicator whose value is sma_s_p_y / sma_i_b_m
|
||||
self.ratio = IndicatorExtensions.over(self.spy_sma, self.ibm_sma)
|
||||
|
||||
# Plot indicators each time they update using the PlotIndicator function
|
||||
self.PlotIndicator("Ratio", self.ratio)
|
||||
self.PlotIndicator("Data", self.ibm_sma, self.spy_sma)
|
||||
self.plot_indicator("Ratio", self.ratio)
|
||||
self.plot_indicator("Data", self.ibm_sma, self.spy_sma)
|
||||
|
||||
# OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
|
||||
def OnData(self, data):
|
||||
def on_data(self, data):
|
||||
|
||||
# Wait for all indicators to fully initialize
|
||||
if not (self.ibm_sma.IsReady and self.spy_sma.IsReady and self.ratio.IsReady): return
|
||||
if not self.Portfolio.Invested and self.ratio.Current.Value > 1:
|
||||
self.MarketOrder(self.ibm, 100)
|
||||
elif self.ratio.Current.Value < 1:
|
||||
self.Liquidate()
|
||||
if not (self.ibm_sma.is_ready and self.spy_sma.is_ready and self.ratio.is_ready): return
|
||||
if not self.portfolio.invested and self.ratio.current.value > 1:
|
||||
self.market_order(self.ibm, 100)
|
||||
elif self.ratio.current.value < 1:
|
||||
self.liquidate()
|
||||
|
||||
Reference in New Issue
Block a user