| Overall Statistics |
|
Total Trades 12 Average Win 1.22% Average Loss -0.38% Compounding Annual Return 90.947% Drawdown 2.800% Expectancy 0.394 Net Profit 0.890% Sharpe Ratio 2.202 Probabilistic Sharpe Ratio 56.182% Loss Rate 67% Win Rate 33% Profit-Loss Ratio 3.18 Alpha 1.481 Beta -4.387 Annual Standard Deviation 0.175 Annual Variance 0.031 Information Ratio 0.668 Tracking Error 0.203 Treynor Ratio -0.088 Total Fees $0.72 |
import numpy as np
import decimal as d
from datetime import timedelta, datetime
class FirstProject(QCAlgorithm):
def Initialize(self):
self.SetCash(100)
self.SetStartDate(2019, 12, 23)
self.equity = 'AMD'
self.AddEquity(self.equity, Resolution.Minute).Symbol
self.SetWarmUp(timedelta(minutes=1))
self.Securities[self.equity].FeeModel = ConstantFeeModel(.06)
self.EMAFAST = self.EMA(self.equity, 20, Resolution.Minute)
self.EMASLOW = self.EMA(self.equity, 200, Resolution.Minute)
#Consolidate Heiken Ashi
fiveMinuteConsolidator = TradeBarConsolidator(timedelta(minutes=5))
fiveMinuteConsolidator.DataConsolidated += self.OnDataConsolidated
self.SubscriptionManager.AddConsolidator(self.equity, fiveMinuteConsolidator)
self.RegisterIndicator(self.equity,self.EMAFAST, fiveMinuteConsolidator)
self.RegisterIndicator(self.equity,self.EMASLOW, fiveMinuteConsolidator)
def OnDataConsolidated(self, sender, data):
holdings = self.Portfolio[self.equity].Quantity
EMA_current = round(self.EMAFAST.Current.Value, 3), round(self.EMASLOW.Current.Value, 3)
self.Log(str(self.Time)+" - EMA fast & slow: "+ str(EMA_current) + " Symbol price: " + str(self.Securities["AMD"].Close))
if self.Portfolio[self.equity].Quantity == 0 and self.EMASLOW.Current.Value < self.EMAFAST.Current.Value : ####
self.MarketOrder(self.equity, 2)
if self.Portfolio[self.equity].Quantity > 0 and self.EMAFAST.Current.Value < self.EMASLOW.Current.Value : ####
self.MarketOrder(self.equity, -2)