from Execution.ImmediateExecutionModel import ImmediateExecutionModel
from System import *
from QuantConnect import *
from QuantConnect.Algorithm import *
from QuantConnect.Data import *
from datetime import timedelta
#Hi Serkan!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:) :) :) :)
class main(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2020, 1, 1) # Set Start Date
self.SetCash(100) # Set Strategy Cash
self.symbol = "AA"
self.AA=self.AddEquity(self.symbol,Resolution.Minute)
self.SetExecution(ImmediateExecutionModel())
################################################################################################################################
self.Schedule.On(self.DateRules.EveryDay(self.symbol), self.TimeRules.AfterMarketOpen(self.symbol , 2), self.EveryDayAfterMarketOpen)#two minutes after market open
##################################################################################################################################
self.Schedule.On(self.DateRules.EveryDay(self.symbol), self.TimeRules.BeforeMarketClose(self.symbol , 2), self.EveryDayBeforeMarketClose)
self.Securities[self.symbol].FeeModel = ConstantFeeModel(0)
self.Securities[self.symbol].SlippageModel = ConstantSlippageModel(0)
def EveryDayBeforeMarketClose(self):
if self.Portfolio.Invested:
self.SetHoldings(self.symbol , 0,False,"Selling the stock at market closing time")
def EveryDayAfterMarketOpen(self):
if not self.Portfolio.Invested:
#self.SetHoldings(self.symbol , 1,False,"Buying the stock at market open")
open = self.Securities[self.symbol].Open
stopPrice = open * .99 # Trigger stop limit when price falls 1%.
limitPrice = open * 1.01 # Sell equal or better than 1% > close.
stopLimitTicket = self.StopLimitOrder(self.symbol, 1, stopPrice, limitPrice)