Overall Statistics |
Total Trades 255 Average Win 3.55% Average Loss -2.51% Compounding Annual Return 7.219% Drawdown 54.200% Expectancy 0.018 Net Profit 7.256% Sharpe Ratio 0.356 Probabilistic Sharpe Ratio 22.161% Loss Rate 58% Win Rate 42% Profit-Loss Ratio 1.42 Alpha 0.157 Beta -0.065 Annual Standard Deviation 0.529 Annual Variance 0.28 Information Ratio 0.946 Tracking Error 0.706 Treynor Ratio -2.902 Total Fees â‚®24778.77 Estimated Strategy Capacity â‚®44000000.00 Lowest Capacity Asset BTCUSDT 2V3 Portfolio Turnover 80.87% |
using System.Linq; using QuantConnect.Data; using QuantConnect.Brokerages; namespace QuantConnect.Algorithm.CSharp { public class BybitCryptoFutureDataAlgorithm : QCAlgorithm { public Symbol _symbol; public override void Initialize() { SetStartDate(2022, 1, 1); SetEndDate(2023, 1, 1); SetAccountCurrency("USDT", 100000); SetBrokerageModel(BrokerageName.Bybit, AccountType.Margin); var cryptoFuture = AddCryptoFuture("BTCUSDT", Resolution.Daily); // perpetual futures does not have a filter function _symbol = cryptoFuture.Symbol; // Historical data var history = History(_symbol, 10, Resolution.Daily); Debug($"We got {history.Count()} from our history request for {_symbol}"); } public override void OnData(Slice slice) { if (slice.MarginInterestRates.ContainsKey(_symbol)) { var interestRate = slice.MarginInterestRates[_symbol].InterestRate; Log($"{_symbol} price at {slice.Time}: {interestRate}"); } if (!slice.Bars.ContainsKey(_symbol) || !slice.QuoteBars.ContainsKey(_symbol)) { return; } var quote = slice.QuoteBars[_symbol]; var price = slice.Bars[_symbol].Price; if (price - quote.Bid.Close > quote.Ask.Close - price) { SetHoldings(_symbol, -1m); } else { SetHoldings(_symbol, 1m); } } } }