| Overall Statistics |
|
Total Trades 260 Average Win 0.32% Average Loss -0.50% Compounding Annual Return -35.973% Drawdown 20.800% Expectancy -0.361 Net Profit -20.774% Sharpe Ratio -4.307 Probabilistic Sharpe Ratio 0.000% Loss Rate 61% Win Rate 39% Profit-Loss Ratio 0.65 Alpha -0.361 Beta 0.054 Annual Standard Deviation 0.083 Annual Variance 0.007 Information Ratio -1.011 Tracking Error 0.429 Treynor Ratio -6.552 Total Fees $0.00 |
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)