Overall Statistics Total Trades 8 Average Win 0% Average Loss 0% Compounding Annual Return 6.359% Drawdown 17.100% Expectancy 0 Net Profit 0% Sharpe Ratio 0.749 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.046 Beta 0.131 Annual Standard Deviation 0.071 Annual Variance 0.005 Information Ratio -0.012 Tracking Error 0.166 Treynor Ratio 0.405 Total Fees \$8.00
```namespace QuantConnect
{
/*
*   QuantConnect University: Full Basic Template:
*
*   The underlying QCAlgorithm class is full of helper methods which enable you to use QuantConnect.
*   We have explained some of these here, but the full algorithm can be found at:
*   https://github.com/QuantConnect/QCAlgorithm/blob/master/QuantConnect.Algorithm/QCAlgorithm.cs
*/
public class AWP : QCAlgorithm
{
//List<string> _assets = new List<string>() { "OEF", "IJR", "EFA", "EEM", "IEF", "TLT", "DBC", "GLD" };
//List<double> _alloc = new List<double>() { 0.18, 0.03, 0.06, 0.03, 0.15, 0.4, 0.075, 0.075 };

TupleList<double, string> _allocations = new TupleList<double, string>
{
{ 0.18, "OEF" },
{ 0.03, "IJR" },
{ 0.06, "EFA" },
{ 0.03, "EEM" },
{ 0.15, "IEF" },
{ 0.4, "TLT" },
{ 0.075, "DBC" },
{ 0.075, "GLD" }
};

//Initialize the data and resolution you require for your strategy:
public override void Initialize()
{

//Start and End Date range for the backtest:
SetStartDate(2005, 1, 1);

//Cash allocation
SetCash(25000);

foreach (var symbol in _allocations)
{
//Add as many securities as you like. All the data will be passed into the event handler:
}
}

//Data Event Handler: New data arrives here. "TradeBars" type is a dictionary of strings so you can access it by symbol.
{
foreach(var symbol in _allocations)
{
if (!Portfolio[symbol.Item2].HoldStock)
{
if(data.ContainsKey(symbol.Item2))
{
SetHoldings(symbol.Item2,  symbol.Item1);
}
}
}
}

//easify list of symbols and allocations
public class TupleList<T1, T2> : List<Tuple<T1, T2>>
{
public void Add(T1 item, T2 item2)
{