| 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 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 |
from clr import AddReference
AddReference("System")
AddReference("QuantConnect.Algorithm")
AddReference("QuantConnect.Indicators")
AddReference("QuantConnect.Common")
from System import *
from QuantConnect import *
from QuantConnect.Algorithm import *
from QuantConnect.Indicators import *
from datetime import datetime
import math
class MACDTrendAlgorithm(QCAlgorithm):
def Initialize(self):
'''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.'''
self.SetStartDate(2020, 6, 23) #Set Start Date
self.SetEndDate(2020, 6, 23) #Set End Date
self.SetCash(100000) #Set Strategy Cash
self.MySymbol = "EURUSD"
self.AddForex(self.MySymbol, Resolution.Minute)
self.Trade = False
self.TheHigh = []
self.AtrLength = 22
self.AtrIndicator = self.ATR(self.MySymbol, self.AtrLength)
self.MinAtr = 0
self.TimeFrame = 15 #15 minute bars
self.SetWarmup(100)
#I got this from: https://www.quantconnect.com/docs/algorithm-reference/consolidating-data
self.RegisterIndicator(self.MySymbol, self.AtrIndicator, timedelta(minutes=self.TimeFrame))
self.Consolidate(self.MySymbol, timedelta(minutes=self.TimeFrame), self.MinuteBarHandler)
#self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.At(8,45), self.GettingHigh)
self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.At(9,00), self.TradingTime)
self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.At(9,46), self.TradingTimeEnd)
def TradingTime(self):
self.Trade = True
self.GetHigh = True
def TradingTimeEnd(self):
self.Trade = False
self.GetHigh = False
def OnData(self, data):
if self.Trade:
self.TheHigh.insert(0,self.Securities[self.MySymbol].High)
if len(self.TheHigh) == 15: self.TheHigh.pop(14)
self.Log("at: {0}".format(self.Time) + " Minute ATR: " + str(self.AtrIndicator.Current.Value))
self.Log("at: {0}".format(self.Time) + " Minute High " + str(self.Securities[self.MySymbol].High))
def MinuteBarHandler(self, consolidated):
if self.Trade:
self.Log("at: {0}".format(self.Time) + " 15 Minute ATR: " + str(self.AtrIndicator.Current.Value))
self.Log("at: {0}".format(self.Time) + " 15 Minute High " + str(self.Securities[self.MySymbol].High))
if len(self.TheHigh) == 14: self.Log(" ARRAY - Minute High is: " + str(max(self.TheHigh)))