| Overall Statistics |
|
Total Trades 170 Average Win 3.41% Average Loss -5.92% Compounding Annual Return -60.923% Drawdown 71.700% Expectancy -0.165 Net Profit -64.005% Sharpe Ratio -0.885 Loss Rate 47% Win Rate 53% Profit-Loss Ratio 0.58 Alpha 0.108 Beta -43.398 Annual Standard Deviation 0.553 Annual Variance 0.305 Information Ratio -0.91 Tracking Error 0.553 Treynor Ratio 0.011 Total Fees $0.00 |
using QuantConnect.Brokerages;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Interfaces;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Data;
namespace QuantConnect.Algorithm.CSharp
{
class CryptoRsi : QCAlgorithm
{
Securities.Crypto.Crypto _crypto;
int _RSI_Period = 14; // RSI Look back period
int _RSI_OB = 60; // RSI Overbought level
int _RSI_OS = 40; // RSI Oversold level
RelativeStrengthIndex _rsi;
public override void Initialize()
{
SetStartDate(2017, 01, 01);
SetEndDate(2018, 02, 01);
SetCash(1000);
_crypto = AddCrypto("BTCUSD", Resolution.Hour, "bitfinex");
_rsi = RSI(_crypto.Symbol, _RSI_Period);
SetWarmup(_RSI_Period);
}
public override void OnData(Slice slice)
{
if (!Portfolio.Invested && _rsi.Current.Value < _RSI_OS)
{
SetHoldings(_crypto.Symbol, 1);
}
else if(Portfolio.Invested && _rsi.Current.Value > _RSI_OB)
{
Liquidate(_crypto.Symbol);
}
}
public override void OnEndOfAlgorithm()
{
if(Portfolio.Invested)
Liquidate(_crypto.Symbol);
Debug("----------initial cash=1000 final cash=" + Portfolio.Cash);
Debug("invested=" + Portfolio.Invested + " MarginRemaining=" + Portfolio.MarginRemaining + " TotalPortfolioValue=" + Portfolio.TotalPortfolioValue);
}
}
}