Overall Statistics
Total Trades
1
Average Win
0%
Average Loss
0%
Compounding Annual Return
39.375%
Drawdown
0%
Expectancy
0
Net Profit
0.091%
Sharpe Ratio
11.225
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
16.618
Annual Standard Deviation
0.01
Annual Variance
0
Information Ratio
11.225
Tracking Error
0.01
Treynor Ratio
0.007
Total Fees
$0.00
import tensorflow as tf

from keras.models import Sequential
from keras.layers import LSTM
from keras.layers.core import Dense, Dropout
# from keras import optimizers
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error

import numpy as np
import pandas as pd


class Algorithm(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2018, 3, 28)
        self.SetEndDate(2018, 3, 28)
        self.SetCash(100000)
        
        self.order = None
        
        self.instruments = ['SPY']
        
        for instrument in self.instruments:
            self.AddEquity(instrument, Resolution.Daily)
            self.Securities[instrument].FeeModel = ConstantFeeTransactionModel(0)
        
        self.Schedule.On(self.DateRules.EveryDay('SPY'), self.TimeRules.AfterMarketOpen('SPY', -30), Action(self.PreMarketOpen))
        self.Schedule.On(self.DateRules.EveryDay('SPY'), self.TimeRules.BeforeMarketClose('SPY', 16), Action(self.PreMarketClose))
        

    def OnData(self, data):
        pass
    
    def PreMarketOpen(self):
        result = self.MarketOnOpenOrder('SPY', -100)
        self.Log(str(self.Time) + ' | SPY sell market order: '+ str(result))
    

        
    def PreMarketClose(self):
        for instrument in self.instruments:
            if self.Portfolio[instrument].Invested:
                self.Log(str(self.Time) + ' | market on close: ' + instrument + ' ' + str(-self.Portfolio[instrument].Quantity))
                self.order = self.MarketOnCloseOrder(instrument, -self.Portfolio[instrument].Quantity)
            
            

    def OnOrderEvent(self, fill):
        order = self.Transactions.GetOrderById(fill.OrderId)
        self.Log("{0} | {1}:: {2}".format(self.Time, order.Type, fill))