Overall Statistics |
Total Trades 142 Average Win 0.76% Average Loss -0.08% Compounding Annual Return 12513.367% Drawdown 4.300% Expectancy 0.476 Net Profit 5.444% Sharpe Ratio 80.999 Probabilistic Sharpe Ratio 0% Loss Rate 85% Win Rate 15% Profit-Loss Ratio 9.04 Alpha 47.337 Beta -0.649 Annual Standard Deviation 0.59 Annual Variance 0.348 Information Ratio 66.342 Tracking Error 0.731 Treynor Ratio -73.592 Total Fees $0.00 Estimated Strategy Capacity $20000.00 Lowest Capacity Asset ETHUSD XJ |
# Crypto VWAP from AlgorithmImports import * # --------------------------------------- CRYPTO = "ETHUSD"; SL = -0.02; TP = 0.02; # --------------------------------------- class DeterminedAsparagusManatee(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 6, 21) self.SetEndDate(2020, 6, 24) self.SetCash(100000) self.crypto = self.AddCrypto(CRYPTO, Resolution.Minute).Symbol self.vwap = self.VWAP(self.crypto) def OnData(self, data: Slice): if not self.vwap.IsReady: return pnl = self.Securities[self.crypto].Holdings.UnrealizedProfitPercent currentclose = self.Securities[self.crypto].Close vwap = self.vwap.Current.Value self.Plot(self.crypto, "current close", currentclose) self.Plot(self.crypto, "vwap", vwap) if not self.Portfolio[self.crypto].IsLong: if currentclose >= vwap: self.SetHoldings(self.crypto, 1, False, "currentclose > vwap") elif not self.Portfolio[self.crypto].IsShort: if currentclose < vwap: self.SetHoldings(self.crypto, -1, False, "currentclose < vwap") if self.Portfolio[self.crypto].Invested: if pnl < SL: self.Liquidate(self.crypto, "Stop Loss") elif pnl > TP: self.Liquidate(self.crypto, "Take Profit")