Overall Statistics |
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $10.55 |
import numpy as np from datetime import datetime from clr import AddReference import decimal as d class TEST(QCAlgorithm): def __init__(self): self.previous = None self._sma = None self.position = None self.lastMonth = -1 def Initialize(self): self.SetStartDate(2018,1,1) self.SetEndDate(2018,11,9) self.SetCash(100000) self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage) self.AddSecurity(SecurityType.Equity, "UPRO", Resolution.Minute) self.AddSecurity(SecurityType.Equity, "SHV", Resolution.Minute) self.SetBenchmark("SPY") self._sma = self.SMA("UPRO", 220, Resolution.Minute) self.close = d.Decimal(float(self.Securities["UPRO"].Price)) def OnData(self, data): if not self._sma.IsReady: return if not data.ContainsKey("UPRO"): return if self.lastMonth == self.Time.month: return if data["UPRO"].Close > self._sma.Current.Value: if self.position == None: stopPrice = self.close * d.Decimal(0.95) self.SetHoldings("UPRO", 1) self.StopMarketOrder("UPRO", -1, stopPrice) else: if self.position == "SHV": self.Liquidate("SHV") stopPrice = self.close * d.Decimal(0.95) self.SetHoldings("UPRO", 1) self.StopMarketOrder("UPRO", -1, stopPrice) self.position = "UPRO" else: if self.position == None: self.SetHoldings("SHV", 1) else: if self.position == "UPRO": self.Liquidate("UPRO") self.SetHoldings("SHV", 1) self.position = "SHV" self.lastMonth = self.Time.month