| Overall Statistics |
|
Total Trades 12 Average Win 0.03% Average Loss -0.07% Compounding Annual Return -14.078% Drawdown 0.400% Expectancy -0.751 Net Profit -0.318% Sharpe Ratio -11.541 Loss Rate 83% Win Rate 17% Profit-Loss Ratio 0.49 Alpha -0.156 Beta -0.007 Annual Standard Deviation 0.014 Annual Variance 0 Information Ratio -6.356 Tracking Error 0.132 Treynor Ratio 22.336 Total Fees $12.00 |
using System;
using System.Collections.Generic;
using QuantConnect.Data.Market;
using QuantConnect.Orders;
using QuantConnect.Orders.Fees;
using QuantConnect.Orders.Fills;
using QuantConnect.Orders.Slippage;
using QuantConnect.Securities;
using System.Net;
using System.Linq;
using System.Text.RegularExpressions;
using QuantConnect.Scheduling;
namespace QuantConnect
{
public class Algo3 : QCAlgorithm
{
TradeBars lastData = null;
TradeBar lastBar = null;
decimal minimumPurchase = 500m;
string tickersString;
string tickers;
bool timereached = true;
int increment = 0;
bool split = false;
string symbol;
public override void Initialize()
{
SetStartDate(2016, 7, 1);
SetEndDate(2016, 7, 10);
SetCash(5000);
SetBrokerageModel(BrokerageName.TradierBrokerage, AccountType.Cash);
AddSecurity(SecurityType.Equity,"SPY",Resolution.Minute);
}
public void OnData(TradeBars data)
{
if (Time.Hour >= 9 && Time.Minute >= 30 && timereached)
{
const string url = @"https://docs.google.com/spreadsheets/d/1-q3Y5la6Dekz8-ZDL8c8AvfXk-p_cshA3udqK1KKbAI/export?format=csv&id=1-q3Y5la6Dekz8-ZDL8c8AvfXk-p_cshA3udqK1KKbAI";
using (var client = new WebClient())
{
tickersString = client.DownloadString(url);
Log("Scan");
}
timereached = false;
}
if(timereached == false && split == false)
{
tickers = tickersString.Split(',')[increment];
split = true;
//tickers = tickersString.Split(new string[1] { "," }, StringSplitOptions.RemoveEmptyEntries);
//String.Format("{0} \nAmount: {1} \nPrice: {2} \nProfit: {3}", symbol, shareCount, price, profits);
}
if (tickers.Any(char.IsLetter))
{
//increment++;
//split = false;
symbol = tickers.Replace("\"","");
AddSecurity(SecurityType.Equity,symbol,Resolution.Minute);
Notify.Sms("+15126454560", "Symbol Found : " + symbol);
Log(symbol);
}
if (symbol == null)
{
timereached = true;
}
if (lastData != null & Portfolio.Values.Count > 0)
{
foreach (TradeBar bar in data.Values)
{
if (Portfolio.Cash < minimumPurchase)
{
break;
}
if (!Portfolio[bar.Symbol].HoldStock && bar.Symbol != "SPY")
{
if (lastData.ContainsKey(bar.Symbol))
{
lastBar = lastData[bar.Symbol];
var shareCount = CalculateOrderQuantity(bar.Symbol, 1m/3);
if (bar.Close>lastBar.Close)
{
Order(bar.Symbol, shareCount);
Notify.Sms("+15126454560", "Buy Order : " + bar.Close);
}
}
}
}
TradeBar bar2;
foreach (SecurityHolding stock in Portfolio.Values)
{
if (Portfolio[stock.Symbol].Quantity > 0 & lastData.ContainsKey(stock.Symbol) & Portfolio.ContainsKey(stock.Symbol) & data.ContainsKey(stock.Symbol))
{
lastBar = lastData[stock.Symbol];
bar2 = data[stock.Symbol];
if (bar2.Close < lastBar.Close)
{
Order(stock.Symbol, -Portfolio[stock.Symbol].Quantity);
Notify.Sms("+15126454560", "Sell Order : " + bar2.Close);
}
}
}
}
lastData = data;
}
}
}