| 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