| Overall Statistics |
|
Total Trades 170 Average Win 0.02% Average Loss -0.24% Compounding Annual Return -65.813% Drawdown 3.100% Expectancy -0.142 Net Profit -2.898% Sharpe Ratio -5.304 Probabilistic Sharpe Ratio 0.003% Loss Rate 20% Win Rate 80% Profit-Loss Ratio 0.07 Alpha -0.496 Beta 0.051 Annual Standard Deviation 0.09 Annual Variance 0.008 Information Ratio -8.355 Tracking Error 0.103 Treynor Ratio -9.426 Total Fees $25.01 |
namespace QuantConnect.Algorithm.CSharp
{
public class VentralTransdimensionalChamber : QCAlgorithm
{
// VARIABELEN DECLAREREN
private string _ticker = "ETHUSD"; //virtueel paar - tracks the current USD value of 1 ether.
private int _startingCash = 1000;
private decimal _weight = .05m; ///Percentage van portfolio dat je wilt investeren
private decimal _targetPercent = .01m; //10%
private decimal _stopPercent = .04m; //verkopen bij de 2% verlies
int _maxPosition = 1000; // Max USD invested
int _minPosition = 100; // min USD needed to invest.
public decimal _usd; //Amount of USD in our Cashbook.
Maximum _maxExchange;
Minimum _minExchange;
//PROGRAMMA VARIABELEN
public decimal _price;
public decimal _holding; //Het aantal Ether we in onze portfolio hebben zitten.
public string _baseSymbol; //vertegenwoordigt de basesymbool dat we houden ETH
public decimal _targetPrice;
public decimal _stopPrice;
public decimal _koers;
//INITIALIZE BLOCK
public override void Initialize()
{
SetStartDate(2017, 1, 1);
SetEndDate(2017, 1, 10);
SetCash(_startingCash);
var _crypto = AddCrypto(_ticker, Resolution.Minute);
_baseSymbol = _crypto.BaseCurrencySymbol;
int _minutesOfTrading = 1440;
_maxExchange = MAX(_ticker, _minutesOfTrading, Resolution.Minute);
_minExchange = MIN(_ticker, _minutesOfTrading, Resolution.Minute);
SetWarmUp(_minutesOfTrading, Resolution.Minute);
SetBrokerageModel(BrokerageName.GDAX, AccountType.Cash);
}
// ON DATA BLOCK (waar bestanden/data binnenkomt in het programma)
public override void OnData(Slice data)
{
if (!_minExchange.IsReady) return;
decimal _factor = (((_maxExchange- _minExchange)/2)/_maxExchange)*100;
decimal _average = (_maxExchange / _minExchange);
_price = data[_ticker].Price;
if (!Portfolio.Invested && _factor >=3)
{
SetHoldings(_ticker, _weight); // om een order te maken ==>percentage van portfolio dat je wilt investeren
//Debug("Purchased Stock"); // Als het order gemaakt is word dit bevestigd door de debug
//Log($"{_maxExchange}");
_targetPrice = _price + (_price * _targetPercent); //Bepalen welke verkoopprijs bij winst (huidige prijs + 10%)
_stopPrice = _price - (_price * _stopPercent); //bepalen welke verkoopprijs bij verlies (huidige - 2%)
}
if (Portfolio.Invested)
{
_holding = Portfolio.CashBook[_baseSymbol].Amount;
if(_price >= _targetPrice)
{
Sell(_ticker, _holding);
}
if(_price < _stopPrice)
{
Sell(_ticker, _holding);
}
}
}
}
}