| Overall Statistics |
|
Total Trades 342 Average Win 0.10% Average Loss -0.11% Compounding Annual Return -4.399% Drawdown 2.900% Expectancy -0.123 Net Profit -2.370% Sharpe Ratio -1.836 Probabilistic Sharpe Ratio 2.293% Loss Rate 54% Win Rate 46% Profit-Loss Ratio 0.92 Alpha -0.044 Beta 0.001 Annual Standard Deviation 0.024 Annual Variance 0.001 Information Ratio -0.276 Tracking Error 0.443 Treynor Ratio -43.562 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
class main(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2020, 1, 1) # Set Start Date
self.SetCash(10000) # Set Strategy Cash
self.Ticket1 = None
self.Ticket2 = None
self.symbol = "AA"
self.quantityAA=50
self.AA=self.AddEquity(self.symbol,Resolution.Minute)
self.AA.SetDataNormalizationMode(DataNormalizationMode.Raw)
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):
self.Liquidate(self.symbol)
def EveryDayAfterMarketOpen(self):
if not self.Portfolio.Invested:
self.MarketOrder(self.symbol, self.quantityAA)
open = self.Securities[self.symbol].Open
stopPrice = open * .98 # Trigger stop limit when price falls 1%.
limitPrice = open * 1.02 # Sell equal or better than 1% > close.
self.Ticket1=self.StopMarketOrder(self.symbol, -self.quantityAA, stopPrice,"STOP LOSS")
self.Ticket2=self.LimitOrder(self.symbol, -self.quantityAA, limitPrice,"TAKE PROFIT")