| Overall Statistics |
|
Total Trades 2 Average Win 0% Average Loss 0% Compounding Annual Return 22.822% Drawdown 0.500% Expectancy 0 Net Profit 0% Sharpe Ratio 3.101 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha NaN Beta NaN Annual Standard Deviation 0.055 Annual Variance 0.003 Information Ratio NaN Tracking Error NaN Treynor Ratio NaN Total Fees $2.00 |
namespace QuantConnect
{
/*
* QuantConnect University: Futures Example
*
* QuantConnect allows importing generic data sources! This example demonstrates importing a futures
* data from the popular open data source Quandl.
*
* QuantConnect has a special deal with Quandl giving you access to Stevens Continuous Futurs (SCF) for free.
* If you'd like to download SCF for local backtesting, you can download it through Quandl.com.
*/
public class VolatilityETN : QCAlgorithm
{
string shortTerm = "XIV";
string longTerm = "ZIV";
decimal diff = 0;
DateTime sampledToday;
//Initialize the data and resolution you require for your strategy:
public override void Initialize()
{
// Code Automaticly Generated
SetStartDate(2015,8,10);
SetEndDate(2015,9,30);
SetCash(10000);
// Code Automaticly Generated
AddSecurity(SecurityType.Equity, "ZIV", Resolution.Daily);
// Code Automaticly Generated
AddSecurity(SecurityType.Equity, "XIV", Resolution.Daily);
}
public void OnData(TradeBars data)
{
diff = data[shortTerm].Close - data[longTerm].Close;
// add logic to have orders placed once / day
Log("XIV " + data[shortTerm].Close + " ZIV = " + data[longTerm].Close + " diff is " + diff);
// Add buy/sell logic
int count = new int();
if (diff > -5){
count = 4;
} else if (diff < -5 && diff > -9)
{
count = 2;
}
else if (diff < -9)
{
count = 1;
}
switch (count)
{
case 1:
SetHoldings(longTerm, 0);
SetHoldings(shortTerm, 0.95);
break;
case 2:
SetHoldings(shortTerm, 0.25);
SetHoldings(longTerm, 0);
break;
case 3:
//SetHoldings(shortTerm, -.25);
//SetHoldings(longTerm, .75);
break;
case 4:
//SetHoldings(shortTerm, -.10);
//SetHoldings(longTerm, .90);
SetHoldings(shortTerm, 0);
SetHoldings(longTerm, 0.95);
break;
default:
Log("there is an error");
break;
}
sampledToday = Time;
}
}
}