Using the Ratio between VXV and VIX we can calculate whether UVXY is in backwardation or contango.

Ratio = VXV/VIX

If Ratio < 0.923, then UVXY/VXX is in Contango, we should short the position
If Ratio > 0.923, then UVXY/VXX is in Backwardation, we should go long

Coming from Python, my C# skills are not up to par. I've got tested Python code (with numerous enhancements) that trades this strategy. Below is my feeble attempt to convert it to C# so that everyone can take advantage of it. I did not know how to pull the data from Quandl, so I left that part out.

I'd use VXX, but you can use UVXY for much greater profits, but drawdowns will be HIGH!

using System;



namespace QuantConnect.Algorithm
{

public class Backwardation : QCAlgorithm
{

// UVXY performs better with much higher drawdowns.
static string symbol = "VXX";


decimal ratio = 0;
// Add VXV and VIX data from Quandl or Yahoo here
// YAHOO/INDEX_VIX
// CBOE/VXV
//RollingWindow vixdata = new RollingWindow(1);
//RollingWindow vxvdata = new RollingWindow(1);

public override void Initialize()
{
SetStartDate(2015, 2, 1);
SetEndDate(2015, 9, 9);
SetCash(100000);

AddSecurity(SecurityType.Equity, symbol, Resolution.Minute);
SetWarmup(TimeSpan.FromDays(5));
}

private DateTime last = DateTime.MinValue;

public void OnData(TradeBars data)
{
if (IsWarmingUp) return;

if (Time.Date != last.Date) {
last = Time;
// Calculate ratio of vix to vxv here
// ratio = vixdata/vxvdata;


// Once we have the ratio, we decide what to do

if (ratio < 0.923m) {
// A ratio under 0.923 indicates contango position
// sell short
if (Securities [symbol].Holdings.Quantity <= 0) {
SetHoldings(symbol, -1.5);
}
} else {
// A ratio over 0.923 indicates backwardation, go long
//buy
if (Securities [symbol].Holdings.Quantity >= 0) {
SetHoldings(symbol, 1.5);
}
}
}
}


// Quandl Datahandlers
/*
public void OnData(Quandl data) {
// Handle QUANDL DATA
}
*/

}
}