| Overall Statistics |
|
Total Trades 2 Average Win 0% Average Loss -0.04% Compounding Annual Return -2.404% Drawdown 0.000% Expectancy -1 Net Profit -0.040% Sharpe Ratio -4.898 Loss Rate 100% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.02 Beta 0.049 Annual Standard Deviation 0.003 Annual Variance 0 Information Ratio -1.933 Tracking Error 0.038 Treynor Ratio -0.345 Total Fees $2.00 |
namespace QuantConnect
{
public class BasicTemplateAlgorithm : QCAlgorithm
{
private string symbol = "UVXY";
private int quantity=100;
private int trigger=0;
//movingaveragealgorithm emafast=new movingaveragealgorithm(10);
//movingaveragealgorithm emaslow=new movingaveragealgorithm(50);
//MovingAverageConvergenceDivergence _macd;
public override void Initialize()
{
SetStartDate(2016, 07, 22);
SetEndDate(2016, 07, 27);
SetCash(30000);
AddSecurity(SecurityType.Equity, symbol, Resolution.Daily);
Securities["UVXY"].SetDataNormalizationMode(DataNormalizationMode.SplitAdjusted);
Schedule.On(DateRules.Every(DayOfWeek.Friday), TimeRules.AfterMarketOpen("UVXY",0), () =>
{
trigger=-1;
Log(Time.ToString()+"");
});
Schedule.On(DateRules.Every(DayOfWeek.Monday), TimeRules.BeforeMarketClose("UVXY",0), () =>
{
trigger=1;
Log(Time.ToString()+"");
});
}
public void OnData(TradeBars data)
{
Log(Time.ToString()+"\t"+Securities["UVXY"].Close);
if(trigger==-1&&!Portfolio.HoldStock)
{
Order(symbol, -quantity);
Log(Time.ToString()+"\t"+"short "+quantity);
}
else if(trigger==1&&Portfolio.HoldStock)
{
Order(symbol,quantity);
Log(Portfolio["UVXY"].Quantity+"");
Log(Time.ToString()+"\t"+"close "+quantity);
}
}
}
}namespace QuantConnect {
//
// Make sure to change "BasicTemplateAlgorithm" to your algorithm class name, and that all
// files use "public partial class" if you want to split up your algorithm namespace into multiple files.
//
//public partial class BasicTemplateAlgorithm : QCAlgorithm, IAlgorithm
//{
// Extension functions can go here...(ones that need access to QCAlgorithm functions e.g. Debug, Log etc.)
//}
//public class Indicator
//{
// ...or you can define whole new classes independent of the QuantConnect Context
//}
public class movingaveragealgorithm
{
private decimal period;
private decimal ema;
private int samples;
public decimal EMA
{
get {return ema;}
}
public movingaveragealgorithm(decimal period)
{
this.period=period;
}
public bool ready
{
get {return samples>=period;}
}
public decimal AddSample(decimal price)
{
if(samples==0)
{
ema=price;
}else
{
ema=(1/period)*price+((period-1)/period)*ema;
}
samples++;
return ema;
}
}
}// using System;
// using System.Linq;
// using QuantConnect.Data;
// using QuantConnect.Data.Consolidators;
// using QuantConnect.Data.Market;
// using QuantConnect.Indicators;
// namespace QuantConnect.Algorithm
// {
// public class TimeIndicator
// {
// bool isMonday;
// bool isFriday;
// public bool day(Time date)
// {
// if(date.Date.DayOfWeek==DayOfWeek.Monday)
// return true;
// }
// } // End Partial Algorithm Template - Indicators.
// } // End QC Namespace