| Overall Statistics |
|
Total Trades 2 Average Win 2.50% Average Loss 0% Compounding Annual Return 281.969% Drawdown 0.300% Expectancy 0 Net Profit 3.360% Sharpe Ratio 17.924 Probabilistic Sharpe Ratio 99.834% Loss Rate 0% Win Rate 100% Profit-Loss Ratio 0 Alpha 2.219 Beta -0.913 Annual Standard Deviation 0.103 Annual Variance 0.011 Information Ratio 10.825 Tracking Error 0.133 Treynor Ratio -2.021 Total Fees $0.00 Estimated Strategy Capacity $280000000.00 Lowest Capacity Asset AAPL R735QTJ8XC9X |
namespace QuantConnect.Algorithm.CSharp
{
public class TestAapl : QCAlgorithm
{
private Symbol _aapl;
public override void Initialize()
{
SetStartDate(2014, 6, 3); //Set Start Date
SetEndDate(2014, 6, 11);
SetCash(64700); //Set Strategy Cash
UniverseSettings.DataNormalizationMode = DataNormalizationMode.Raw;
_aapl = QuantConnect.Symbol.Create("AAPL", SecurityType.Equity, Market.USA);
var aapl = AddEquity("AAPL", Resolution.Daily);
var zeroFeeModel = new FeeModel();
aapl.SetFeeModel(zeroFeeModel);
}
/// OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
/// Slice object keyed by symbol containing the stock data
public override void OnData(Slice data)
{
decimal o = -1, c = -1;
if (data.Bars.ContainsKey(_aapl)) {
o = data.Bars[_aapl].Open;
c = data.Bars[_aapl].Close;
}
if (Time == new DateTime(2014, 6, 5)) {
SetHoldings(_aapl, 1);
} else if (Time == new DateTime(2014, 6, 10)) {
Liquidate(_aapl);
}
decimal aaplHoldingValue = 0;
if (Portfolio.Securities.ContainsKey(_aapl))
aaplHoldingValue = Portfolio.Securities[_aapl].Holdings.HoldingsValue;
Console.WriteLine($"{Time:MM-dd} O={o} C={c} Portfolio={Portfolio.TotalPortfolioValue} AAPL={aaplHoldingValue} Cash={Portfolio.CashBook.TotalValueInAccountCurrency}");
}
public override void OnOrderEvent(OrderEvent orderEvent)
{
if (orderEvent.Status.IsFill()) {
Console.WriteLine($"Order filled: {orderEvent.UtcTime:yyyy-MM-dd} @{orderEvent.FillPrice}x{orderEvent.FillQuantity}");
}
}
}
}