Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Probabilistic 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 -2.882 Tracking Error 0.164 Treynor Ratio 0 Total Fees $0.00 |
from datetime import datetime, timedelta from dateutil import parser import time from threading import Timer from System.Drawing import Color import numpy as np import pandas as pd import sklearn from sklearn.ensemble import RandomForestClassifier import pandas import sklearn import matplotlib.pyplot as plt import pickle OnOffGrandSpike = 0 class DynamicCalibratedPrism(QCAlgorithm): modelkey='felipe05' def Initialize(self): self.SetStartDate(2020, 7, 1) # Set Start Date self.SetCash(100000) # Set Strategy Cash self.AddEquity("SPY", Resolution.Minute) self.std = self.STD("SPY", 36) self.bb = self.BB("SPY", 36, 3.0) self.rsi = self.RSI("SPY", 5) self.mom = self.MOM("SPY", 5) self.ema9 = self.EMA("SPY", 9) self.ema36 = self.EMA("SPY", 36) self.RegisterIndicator("SPY", self.std, Resolution.Minute) self.RegisterIndicator("SPY", self.bb, Resolution.Minute) self.RegisterIndicator("SPY", self.rsi, Resolution.Minute) self.RegisterIndicator("SPY", self.mom, Resolution.Minute) self.RegisterIndicator("SPY", self.ema9, Resolution.Minute) self.RegisterIndicator("SPY", self.ema36, Resolution.Minute) self.SetWarmUp(37, Resolution.Minute) self.TrainHistorical=False self.Train(self.Historical) def OnData(self, data): '''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here. Arguments: data: Slice object keyed by symbol containing the stock data ''' if self.TrainHistorical: start_time = datetime(2017, 7, 6, 9, 31) # start datetime for history call end_time = datetime(2017, 7, 6, 10, 39) # end datetime for history call history = self.History(["SPY"], start_time, end_time, Resolution.Minute) self.bb.Update if self.bb.IsReady: history['upperband']=self.bb.UpperBand.Current.Value history['lowerband']=self.bb.LowerBand.Current.Value else: history['upperband']=11 history['lowerband']=12 self.std.Update if self.bb.IsReady: history['STD']=self.std.Current.Value else: history['STD']=21 self.rsi.Update if self.bb.IsReady: history['RSI']=self.rsi.Current.Value else: history['RSI']=31 self.mom.Update if self.bb.IsReady: history['MOM']=self.mom.Current.Value else: history['MOM']=41 self.ema9.Update if self.bb.IsReady: history['EMA9']=self.ema9.Current.Value else: history['EMA9']=51 self.ema36.Update if self.bb.IsReady: history['EMA36']=self.ema36.Current.Value else: history['EMA36']=61 self.history=history #self.Debug("type:: " + str(type(history))) #self.Debug(history.shape) #self.Debug(history) # if not self.Portfolio.Invested: # self.SetHoldings("SPY", 1) def Historical(self): self.TrainHistorical=True def OnEndOfAlgorithm(self): if self.TrainHistorical: self.Debug("type(history)::" + str(type(self.history)) + ": len:: " + str(len(self.history))) self.Debug("OEOA history::" + str(self.history)) else: self.Debug("30, history OEOA:: " + str(self.history)) subir=1 if subir==1: if self.ObjectStore.ContainsKey(self.modelkey): self.ObjectStore.Delete(self.modelkey) self.Log("35 PREVIOUS ObjectStore.Delete") else: self.Log("37 FALSE NO PREVIOUS ObjectStore:: " + str(self.ObjectStore.ContainsKey(self.modelkey))) serializeddf = pickle.dumps('self.history') self.ObjectStore.SaveBytes(self.modelkey, serializeddf) self.Log("40 history has been SAVED:: " + str(self.ObjectStore.ContainsKey(self.modelkey))) # self.Log("(n, 12); df.shape:: " + str(self.df.shape)) # self.Log("df[0,1] .... df[0,Tiempo]:: " + ".... " + str(self.df.iloc[1,1]) + " ... " + str(self.df.loc[1,'Tiempo'])) # self.Log("df[n,0] .... df[n,Tiempo]:: " + str(self.df.iloc[len(self.df.Tiempo)-1,0]) + " ..... ... " + str(self.df.loc[len(self.df.Tiempo)-1,'Tiempo']))