Overall Statistics
Total Trades
34
Average Win
1.94%
Average Loss
-5.33%
Compounding Annual Return
-51.624%
Drawdown
56.200%
Expectancy
-0.759
Net Profit
-51.688%
Sharpe Ratio
-1.913
Probabilistic Sharpe Ratio
0.002%
Loss Rate
82%
Win Rate
18%
Profit-Loss Ratio
0.36
Alpha
-0.46
Beta
0.348
Annual Standard Deviation
0.261
Annual Variance
0.068
Information Ratio
-1.245
Tracking Error
0.31
Treynor Ratio
-1.434
Total Fees
$340.00
// Cloned from https://www.quantconnect.com/forum/discussion/4688/algo-beer-money-1-0-0/p1
//Copyright HardingSoftware.com, granted to the public domain.
//Use entirely at your own risk.
namespace QuantConnect.Algorithm.CSharp
{
    public class M : QCAlgorithm
    {
        string ticker = "AT";
		int holdCount= 5;
		int count=0;
		decimal lowerRatio=0.995m;
		decimal upperRatio=1.005m;
		OrderTicket orderTicket;
		decimal leverage=.99m;
		decimal increment=0.01m;
        public override void Initialize()
        {
            SetStartDate(2017, 9, 26);  //Set Start Date
            SetEndDate(2018, 9, 26);    //Set End Date
            SetCash(7000);             //Set Strategy Cash

            AddEquity(ticker, Resolution.Minute);
            SetBenchmark(ticker);
            
            Securities[ticker].FeeModel = new ConstantFeeModel(10m);
        }
        
        public override void OnData(Slice data)
        {
        	count++;
        	if (count<holdCount)
        	{
        		return;
        	}
        	count=0;
        	
        	if (data[ticker]==null || data.ContainsKey(ticker)==false)
        	{
        		return;
        	}
        	
        	decimal price=data[ticker].Close;
            if (!Portfolio.Invested)
            {
            	if (orderTicket!=null)
            	{
            		orderTicket.Cancel();
            	}
            	//int quantity=(int)(leverage*Portfolio.Cash/price);
            	int quantity=(int)(leverage*7000m/price);
            	decimal buyPrice=FloorToIncrement(lowerRatio*price,increment);
				orderTicket = LimitOrder(ticker, quantity, buyPrice);
            }
            else
            {
            	if (orderTicket!=null)
            	{
            		orderTicket.Cancel();
            	}
            	int quantity=(int)Portfolio[ticker].Quantity;
            	decimal sellPrice=CeilingToIncrement(upperRatio*price,increment);
				orderTicket = LimitOrder(ticker, -quantity, sellPrice);
            }
        }
        
        public decimal RoundToIncrement(decimal roundMe, decimal increment)
        {
        	return (decimal)(Math.Round(roundMe/increment)*increment);
        }
        
        public decimal FloorToIncrement(decimal roundMe, decimal increment)
        {
        	return (decimal)(Math.Floor(roundMe/increment)*increment);
        }
        
        public decimal CeilingToIncrement(decimal roundMe, decimal increment)
        {
        	return (decimal)(Math.Ceiling(roundMe/increment)*increment);
        }
    }
}