pep8 conversion of python algos #5 (#7943)

* 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:
Louis Szeto
2024-04-19 02:53:32 +08:00
committed by GitHub
parent 5eb236834f
commit c2ad893f32
28 changed files with 847 additions and 858 deletions
@@ -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()