Files
quantconnect--lean/Algorithm/Examples/StressSymbolsAlgorithm.cs
T
2015-03-16 19:51:23 -05:00

174 lines
4.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Algorithm;
using QuantConnect.Data.Market;
namespace QuantConnect
{
public class StressSymbolsAlgorithm : QCAlgorithm
{
public IEnumerable<string> AllSymbols;
// Add Hundreds of Stock and Forex Symbol:
public override void Initialize()
{
AllSymbols = new List<string>();
//Backtest period:
SetStartDate(2014, 01, 01);
SetEndDate(2015, 01, 01);
//Set cash to 250k for test algorithm
SetCash(250000);
foreach (var symbol in StockSymbols)
{
AddSecurity(SecurityType.Equity, symbol, Resolution.Second, true);
}
foreach (var symbol in ForexSymbols)
{
AddSecurity(SecurityType.Forex, symbol, Resolution.Second, true);
}
AllSymbols = StockSymbols.Concat(ForexSymbols);
}
//On each data event, buy a few of each one:
public void OnData(TradeBars data)
{
Debug("REALTIME: " + DateTime.Now.ToString("o") + " DATATIME: " + data.Time.ToString("o") + " REALTIME DELTA: " + (DateTime.Now - data.Time).TotalSeconds.ToString("0.000") + "sec COUNT: " + data.Count + " FILLFORWARD: " + data.Count(x => x.Value.IsFillForward));
foreach (var symbol in AllSymbols)
{
if (!Portfolio.ContainsKey(symbol)) continue;
if (!Portfolio[symbol].Invested)
{
//Not invested, get invested:
Order(symbol, 10);
}
else
{
if (Time.Second % 15 == 0)
{
var holdings = Portfolio[symbol].Quantity;
Order(symbol, holdings * -2);
}
}
}
//Log timer:
if (Time.Second % 15 == 0) Log("Time: " + Time.ToShortTimeString());
}
public List<string> StockSymbols = new List<string>
{
"ABT",
"ABBV",
"ACE",
"ACN",
"ACT",
"ADBE",
"ADT",
"AES",
"AET",
"AFL",
"AMG",
"A",
"GAS",
"APD",
"ARG",
"AKAM",
"AA",
"ALXN",
"ATI",
"ALLE",
"AGN",
"ADS",
"ALL",
"ALTR",
"MO",
"AMZN",
"AEE",
"AEP",
"AXP",
"AIG",
"AMT",
"AMP",
"ABC",
"AME",
"AMGN",
"APH",
"APC",
"ADI",
"AON",
"APA",
"AIV",
"AAPL",
"AMAT",
"ADM",
"AIZ",
"T",
"ADSK",
"ADP",
"AN",
"AZO",
"AVGO",
"AVB",
"AVY",
"AVP",
"BHI",
"BLL",
"BAC",
"BK",
"BCR",
"BAX",
"BBT",
"BDX",
"BBBY",
"BMS",
"BRK.B",
"BBY",
"BIIB",
"BLK",
"HRB",
"BA",
"BWA",
"BXP",
"BSX",
"BMY",
"BRCM",
"BF.B",
"CHRW",
"CA",
"CVC",
"COG",
"CAM",
"CPB",
"COF",
"CAH",
"CFN",
"KMX",
"CCL",
"CAT",
"CBG",
"CBS",
"CELG",
"CNP",
"CTL",
"CERN",
"CF",
"SCHW"
};
public List<string> ForexSymbols = new List<string>
{
"EURUSD",
"NZDUSD",
"USDJPY",
"USDCAD"
};
}
}