Back

Features we'd love to see in QuantConnect

I created this thread so we can all post and comment on the features we'd like to have and use on QuantConnect.
Update Backtest








Live trading. At least IB for the time being.
1

Thank you @Suminda, we're working on the live trading now and its not too far away. But for now every month we'll have more trading capital to manage so you can design strategies for Battle-Fin -

Soon we're also going to open source parts of the infrastructure so you can trade locally.
0

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.


Look at functionality of these products:

http://www.deltixlab.com/storage/CombinedProductSheets.pdf

http://smartquant.com/presentation/OpenQuantProducts.pdf
http://smartquant.com/presentation/SmartQuantAlgoTradingInfrastructure.pdf

http://www.iqbroker.com/

And of course traditional retail platforms like Ninja Trader, Trade Station, etc.
0

You must find a way to easily integrate linear algebra / matrix algebra to your code. Perhaps by integrating an open source linear algebra package.
0

Add functionality to organise trading competitions among friends or public using paper or real money like in Investopedia
0

Easy plugin based custom performance calculation to be included in the performance report.
0

Meta Numerics
0

Also see http://www.mathdotnet.com/. This is more functional.
0

I got a brilliant idea. You can expose the ability to get an IQueryable (May be IEnumerator is just enough) for bars and ticks on instruments you want to listen to.

This will enable uses to code using LINQ and Lamdas this will make this system much powerful and can write short and productive code as in some competitor systems. The IQuery object will be a moving window (user definable as a time interval and / or number of elements) on the particular instruments Bars or ticks. Also you should be able listen to different Bar length ticks on the instrument which is not possible now.

Add another method just after initializing to call this set up. If the algo chooses to it can listen to the current methods also.

I do not think this functionality is had to add also.

MoveNext only should return false when the algo is stopped only and block until new data becomes available.

Also this link might be some help: http://slinq.codeplex.com/; http://clinq.codeplex.com/ (not maintained but you can get some ideas)
0

Also adding the ability to get a Price vector for Meta Numerics and Math.Net will be helpful. Also the historic co-variance matrix of the instruments in our universe and a TimeSeries object of price vectors which can be used in Meta Numerics and Math.net. Do not try to add too much functionality as might want to use GARCH or other models. Make this LINQ and Lamda friendly and the uses can do what they want.
1

Cool @Suminda, you can probably do the IEnumerable now - just make your own class extending a Collection, and store the data in a common array across events?


public QueryCollection : Dictionary> {
//
Public Add();
Public Query();
}
0

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.


Most of the iterators throw an exception if the data structure is modified. It will also not block until the next bar / tick is available. So inheriting a existing collection may not work. The query will finish after going through the existing data and stop after the last element. In this case there is not last element until the strategy is stopped.

Also the computation is data pushed. When new data becomes available calculations are done a trade is made. The container much push the data.
1

Love this concept, guys! I'm eager to see what this becomes and am happy to help out any way I can. The most important feature I would need to have to use Quantconnect for my trading is access to futures & forex data.

Also, consider building in some release blocking functionality. Intraday backtest results can get really hairy if you include releases like FOMC, NFP, DOE, EIA, etc. so having the ability to get flat and not trade X minutes on either side of these releases would more accurately reflect the way the algo would actually be run.
2

Thanks @Jeremy, nice idea. We're working on building our data library and hope to add FX, futures soon. Its just a matter of finding the right data partners.

We will open up the news API soon so you can code these events into your algorithms :)

For now you can use:
Liquidate();
to clear out all holdings.
0

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.


I think it may be a good idea to download the trade data from the simulation result as a .csv file.
Also the chart???
2

Elementary question. Is it possible to delete one of my existing strategies. I am unsure whether you can actually can do this.
0

Hey @Joyanta, no worries. If you can't find it that means we've designed it wrong :) The trades can be downloaded with the small "save" icon in the top-right of the trades tab,

You can delete projects when you open/create a new project, in the window there is a rename & delete option.
0

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.


yeah found the "save" icon.

Not sure of the delete of a project... sorry. May be in the dash board you can put a radio button type of control for deletion for example. Not sure if any one else is also having this issue.
0

Yep good idea. We're doing a major overhaul of the dashboard shortly, it will look great ;)
0

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.


cool
0

In a discussion we can create write a comment, preview it and save it as a draft.

But what about discarding a draft.
0

More languages I guess. Not sure what languages are most popular other than C#, but be great to have options. C# is great for what I do though, great move to start on C#.
-Seth
0

Hey guys! What feature do you want to see next?

"Custom Bench Mark"
- Choose which index to use as a benchmark for your strategy

"Community Templates"
- Share algorithms with the community and copy other's

"Order Plotting"
- Track trades against your asset price chart

"Multi Language Support"
- Python support among others :)
1

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.


RE: Next features:

Order plotting and multi-language support (Python!) would be my first pick, followed by Custom Bench Marks.

The ability to download a simulation's results without having to load/view in the web gui would be useful as well (Either as HTML file or Excel)
1

it will be a great feature to get different info from the system like simple average ect.. basically different data that you can get in regular trading platform instead of developing it in the client..
1

Thanks Eyal, we're hoping now we've open sourced the algorithm base class people can start contributing routines like that. Its fairly easy to calculate so we can build in that over time. Check out the Cache class -- with that we can create properties, helper functions which work over the incoming data

I built an enormous desktop back-testing platform we can cannibalize for QuantConnect.
1

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.


My vote goes to Order Plotting
0

Optimization is almost necessary..
1

Any means to find the optimal parameters of a given trading model really. 'Optimal' being defined by a fitness function. Also a way to visualize parameter sensitivity. I suppose you could be clever about it, with genetic algorithms and what not, instead of brute-forcing every possible parameter combination. But i am not really an expert in this.

I can run (even tick-precise) backtests over a few years of data on a local machine. But running a boat-load of optimization iterations - i would rather be using a 3rd party service such as yours, instead of building and maintaining my own numbercruncher.
1

Good feedback thanks @Andy, I agree the cloud is a great place to run optimizations. We've been discussing a few ideas here recently -- perhaps including a psuedo type?

oInt optimizedInteger = range(start=0, finish=10, step=1);

And then it would automatically run the range of values for that parameter.
0

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.


Or maybe just decorate it with attributes

[Optimize(start=0, finish=10, step=1)]
int i = 5; //default for simulations w/o optimizer
2

Hi Jared,
I believe an offline back tester to facilitate more debugging, and plot functionality would help most of us. Sample pseudo code below.
J.

using QuantConnect.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace QuantConnect.OfflineBackTester
{
class Program
{
static void Main(string[] args)
{
BuyLastDayOfMonthSellFirstDayOfMonth algo = new BuyLastDayOfMonthSellFirstDayOfMonth();
IAlgorithm iAlgo = algo as IAlgorithm;
QCAlgorithm QCAlgo = algo as QCAlgorithm;

DataManager dm = iAlgo.DataManager;
dm.Add(security: SecurityType.Equity, symbol:"SPY", resolution: Resolution.Minute);
//dm.MarketData.Add()

//*** load data ***
//Load offline data from Yahoo/ Google / QuantConnect csv feed (with limited data?)

//*** execute algorithm ***
//for every datatick execute next:
//iAlgo.OnTradeBar(Dictionary symbols);

//*** plot results ; including own data like buy/ sell
//plot performance;

//*** plot own data added to plot functionality
//plot output of indicators used
//plot buy/ sell signals


}
}
}
2

I'm just starting out at QuantConnect - any word on the Optimization story?
0

@Andrew - I think the roadmap at the moment is:
> Live Trading - July > Universe selection-August > Python-Sept > Optimization-Oct

For now you can manually optimize as you can queue up backtest results, altering a value and rebuilding your algorithm each time. You'll get email notifications if they're more than 2 years long.
0

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.


It would be nice if more "beginner" languages were options (java, python, VBA).
0

Being mucking around and found that the web based code editor really needs an EXPLICIT save button. Also needs to include some dirty checking when closing a modified file (Save changes?)
0

Any plans for options trading support? Personally I'd be very interested in testing for example OTM vertical spread selling strategies. In my experience this is currently extremely hard to backtest, but it seems like you have all the tools (except the data maybe) already developed.

It would be really really sweet if you could simulate portfolio margin limitations / margin calls, but to be honest, just being able to backtest options trading (without any broker rules) would be really really sweet.
0

Sorry for the delayed reply! We've been hacking away with the new charting and backtesting engine.

@Ryan Sa - Thank you they're on the todo list, VBA would actually be super simple for us to integrate and is still in the .NET family so we'll check it out.

@Andrew - Thank you for feedback, we added a visual notification for Ctrl+S which will manually save your file.

@GeorgesMeinders - Interesting idea, we're integrating www.Tradier.com brokerage now and they have options. We're coding the full API so it wouldn't be too hard to add in options.

We don't have any options data though. If you have options data and can upload it to DropBox or Amazon you could run an Options backtest within 20-30 minutes.

Recommend checking our new blog post for the release of LEAN backtesting engine - https://www.quantconnect.com/blog/lean-backtesting-engine-v2-released
0

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.


Update Backtest





0

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.


Loading...

This discussion is closed