Hi,
I'm new to QuantConnect and I have to say this is totally awesome! Quick question. Seems like a lot of things are taken care of when using the Cloud-based IDE when streaming data. Everything seems like a line of code around here so I was wondering how I can stream real-time 1 min data to my desktop. I have downloaded the source from github. For example I would like to do this but in my desk top app:
using System;
using System.Linq;
using QuantConnect.Indicators;
using QuantConnect.Models;
namespace QuantConnect.Algorithm.Examples
{
/// <summary>
///
/// QuantConnect University: EMA + SMA Cross
///
/// In this example we look at the canonical 15/30 day moving average cross. This algorithm
/// will go long when the 15 crosses above the 30 and will liquidate when the 15 crosses
/// back below the 30.
/// </summary>
public class QCUMovingAverageCross : QCAlgorithm
{
private const string Symbol = "NLNK";
private ExponentialMovingAverage fast;
private ExponentialMovingAverage slow;
private SimpleMovingAverage[] ribbon;
public override void Initialize()
{
// set up our analysis span
SetStartDate(2009, 01, 01);
SetEndDate(2017, 09, 11);
// request SPY data with minute resolution
AddSecurity(SecurityType.Equity, Symbol, Resolution.Minute);
// create a 15 day exponential moving average
fast = EMA(Symbol, 15, Resolution.Daily);
// create a 30 day exponential moving average
slow = EMA(Symbol, 30, Resolution.Daily);
// the following lines produce a simple moving average ribbon, this isn't
// actually used in the algorithm's logic, but shows how easy it is to make
// indicators and plot them!
// note how we can easily define these indicators to receive hourly data
int ribbonCount = 7;
int ribbonInterval = 15*8;
ribbon = new SimpleMovingAverage[ribbonCount];
for(int i = 0; i < ribbonCount; i++)
{
ribbon[i] = SMA(Symbol, (i + 1)*ribbonInterval, Resolution.Hour);
}
}
private DateTime previous;
public void OnData(TradeBars data)
{
// a couple things to notice in this method:
// 1. We never need to 'update' our indicators with the data, the engine takes care of this for us
// 2. We can use indicators directly in math expressions
// 3. We can easily plot many indicators at the same time
// wait for our slow ema to fully initialize
if (!slow.IsReady) return;
// only once per day
if (previous.Date == data.Time.Date) return;
// define a small tolerance on our checks to avoid bouncing
const decimal tolerance = 0.00015m;
var holdings = Portfolio[Symbol].Quantity;
// we only want to go long if we're currently short or flat
if (holdings <= 0)
{
// if the fast is greater than the slow, we'll go long
if (fast > slow * (1 + tolerance))
{
Log("BUY >> " + Securities[Symbol].Price);
SetHoldings(Symbol, 1.0);
}
}
// we only want to liquidate if we're currently long
// if the fast is less than the slow we'll liquidate our long
if (holdings > 0 && fast < slow)
{
Log("SELL >> " + Securities[Symbol].Price);
Liquidate(Symbol);
}
Plot(Symbol, "Price", data[Symbol].Price);
Plot("Ribbon", "Price", data[Symbol].Price);
// easily plot indicators, the series name will be the name of the indicator
Plot(Symbol, fast, slow);
Plot("Ribbon", ribbon);
previous = data.Time;
}
}
}
Alexandre Catarino
QuantConnect does not stream data. It is restriction set by our data vendors.
In order to get streaming real time equity data, you need to set up Lean to use Interactive Brokers data. In the config.json file, please choose the live-interactive environment and update your IB credentials:
"environment": "live-interactive", // interactive brokers configuration "ib-account": "DU______", "ib-user-name": "your-ib-user-name", "ib-password": "your-ib-password",
In this case, you will need to install IB TWS.
If you were trading forex, you could use either FXCM or Oanda. The config.json file process is identical.
In these cases, we don't need to download a third party software.
Iman Mohtashemi
Iman
Iman Mohtashemi
Also, for this method:
fast = EMA(Symbol, 15, Resolution.Daily);
Can I get the data from somwhere else? Seems like somehow the EMA constructor gets the data
Alexandre Catarino
For equity, we have only implemented real time data support for Interactive Brokers and IQFeed.
Indicators like ExponentialMovingAverage that we get from the EMA method are updated with the same price data.
Iman Mohtashemi
So I can't just create a data stream of Trade Bars?
Alexandre Catarino
If you use one of the supported real time data feeds (or implement one), a data stream of trade bars will be created from the ticks that arrive from the feed.
Iman Mohtashemi
would be appreciated
System.InvalidOperationException: 'Cannot load Counter Name data because an
invalid index '' was read from the registry.'
Jared Broad
I dont think that is LEAN; please post the stack trace to the open source support group Google Groups:
https://groups.google.com/forum/#!forum/lean-engine
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
Atish Sawant
To Run live only those 3 fields need to be changed? Because I tried that with no luck and many errors.
Alexandre Catarino
What did you do exactly?
We need to change the environment and the respective credentials.
In Interactive Brokers' case, we need to install IB TWS.
Please send all the questions related to Lean to the Google's group: Lean Engine
Atish Sawant
like that installed IB Gateway version 960. I manually changed the pathways
to reflect where IB controller and IB Gateway were installed. I sent a
detailed error report yesterday through the support channel. At this point
I've spent over 25 hours this week trying to get this to work. I'd be happy
to pay someone to install it on my local computer. I have a feeling they'd
be able to get it done in under 2 hrs and likely 1.
Atish Sawant
forum.
Iman Mohtashemi
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
To unlock posting to the community forums please complete at least 30% of Boot Camp.
You can continue your Boot Camp training progress from the terminal. We hope to see you in the community soon!