pep8 conversion on python algorithms #2 (#7933)

* pep8 conversion

* more

* Minor fix

* Fix related regression algorithm

---------

Co-authored-by: Martin Molinero <martin.molinero1@gmail.com>
This commit is contained in:
Louis Szeto
2024-04-18 04:36:53 +08:00
committed by GitHub
parent c2bea3c173
commit 784e497691
25 changed files with 466 additions and 466 deletions
@@ -23,57 +23,57 @@ from AlgorithmImports import *
### <meta name="tag" content="futures" />
class BasicTemplateFuturesAlgorithm(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2013, 10, 8)
self.SetEndDate(2013, 10, 10)
self.SetCash(1000000)
def initialize(self):
self.set_start_date(2013, 10, 8)
self.set_end_date(2013, 10, 10)
self.set_cash(1000000)
self.contractSymbol = None
self.contract_symbol = None
# Subscribe and set our expiry filter for the futures chain
futureSP500 = self.AddFuture(Futures.Indices.SP500EMini)
futureGold = self.AddFuture(Futures.Metals.Gold)
futureSP500 = self.add_future(Futures.Indices.SP_500_E_MINI)
future_gold = self.add_future(Futures.Metals.GOLD)
# set our expiry filter for this futures chain
# SetFilter method accepts timedelta objects or integer for days.
# The following statements yield the same filtering criteria
futureSP500.SetFilter(timedelta(0), timedelta(182))
futureGold.SetFilter(0, 182)
futureSP500.set_filter(timedelta(0), timedelta(182))
future_gold.set_filter(0, 182)
benchmark = self.AddEquity("SPY")
self.SetBenchmark(benchmark.Symbol)
benchmark = self.add_equity("SPY")
self.set_benchmark(benchmark.symbol)
seeder = FuncSecuritySeeder(self.GetLastKnownPrices)
self.SetSecurityInitializer(lambda security: seeder.SeedSecurity(security))
seeder = FuncSecuritySeeder(self.get_last_known_prices)
self.set_security_initializer(lambda security: seeder.seed_security(security))
def OnData(self,slice):
if not self.Portfolio.Invested:
for chain in slice.FutureChains:
def on_data(self,slice):
if not self.portfolio.invested:
for chain in slice.future_chains:
# Get contracts expiring no earlier than in 90 days
contracts = list(filter(lambda x: x.Expiry > self.Time + timedelta(90), chain.Value))
contracts = list(filter(lambda x: x.expiry > self.time + timedelta(90), chain.value))
# if there is any contract, trade the front contract
if len(contracts) == 0: continue
front = sorted(contracts, key = lambda x: x.Expiry, reverse=True)[0]
front = sorted(contracts, key = lambda x: x.expiry, reverse=True)[0]
self.contractSymbol = front.Symbol
self.MarketOrder(front.Symbol , 1)
self.contract_symbol = front.symbol
self.market_order(front.symbol , 1)
else:
self.Liquidate()
self.liquidate()
def OnEndOfAlgorithm(self):
def on_end_of_algorithm(self):
# Get the margin requirements
buyingPowerModel = self.Securities[self.contractSymbol].BuyingPowerModel
name = type(buyingPowerModel).__name__
buying_power_model = self.securities[self.contract_symbol].buying_power_model
name = type(buying_power_model).__name__
if name != 'FutureMarginModel':
raise Exception(f"Invalid buying power model. Found: {name}. Expected: FutureMarginModel")
initialOvernight = buyingPowerModel.InitialOvernightMarginRequirement
maintenanceOvernight = buyingPowerModel.MaintenanceOvernightMarginRequirement
initialIntraday = buyingPowerModel.InitialIntradayMarginRequirement
maintenanceIntraday = buyingPowerModel.MaintenanceIntradayMarginRequirement
initial_overnight = buying_power_model.initial_overnight_margin_requirement
maintenance_overnight = buying_power_model.maintenance_overnight_margin_requirement
initial_intraday = buying_power_model.initial_intraday_margin_requirement
maintenance_intraday = buying_power_model.maintenance_intraday_margin_requirement
def OnSecuritiesChanged(self, changes):
for addedSecurity in changes.AddedSecurities:
if addedSecurity.Symbol.SecurityType == SecurityType.Future and not addedSecurity.Symbol.IsCanonical() and not addedSecurity.HasData:
raise Exception(f"Future contracts did not work up as expected: {addedSecurity.Symbol}")
def on_securities_changed(self, changes):
for added_security in changes.added_securities:
if added_security.symbol.security_type == SecurityType.FUTURE and not added_security.symbol.is_canonical() and not added_security.has_data:
raise Exception(f"Future contracts did not work up as expected: {added_security.symbol}")