Back

About the Timeframe

Hi Quantconnect team,

After your support, I've created a new simple example with Quantconnect.

It's verry amazing. Thanks for all of it.

But I have some issues, it make me little bit confuse about TF

Firstly,I can try with only time frame 1 min, I see you have 1 hour, 1 day, 1 week. But when run under these TF, it send me back the error.
Secondly, I need to use two TF at the same strategic(For example: 1 DAY and 1 WEEK). Big TF will have me know the trend.
How to call the big TF from the small TF. Can you guide me one example about in the TF 1 DAY, how to call to TF 1 WEEK.
For example:
If (EMA20(W)>EM50(W)) and (close(D)>MA21(D)) ===> buy

Please, give me some help.

I have some confuse about real time, but I see you have it on your professional version.
So I think that I have to try it before make question.

Thanks,
Linh
Update Backtest








Hey ?ào!

I've attached an example algorithm that creates some daily and weekly indicators. The daily ones can be easily created through the helper functions, but the weekly ones will need a little more effort.

We need to create a 'data consolidator' that will perform the aggregation of the minute data into weekly bars. We can then register our indicator to receive this data.

Checkout the the attached project and let me know what you think!
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.


Hi MichaelH,

Firstly, thank for your support. With your help, I can do some simple example with Quantconnect.

But I met another issues, please give me some advise.

1. About TimeSpan.FromDays(7), my target is running this code for stock, it only work 5 day per week.
So in the input value of TimeSpan.FromDays(7) is it 7 or 5?

2. About the ATR, I create one daily ATR and Register it in to week, but it fail.
ATR can not Register like example you gave me.

3.How can I call to get the data from previous, like on 2015/04/02 I call back to check data of the day 2015/04/01.

4. On the method OnData(TradeBars data), I want to get the value open,close,high,close of this day or week but don't know how.

5. Do you have any easy way to debug Quantconnect, like print or some think like that

I attach my project as below, please give me some advise.

Thanks,
Linh
0

1. The TimeSpan.FromDays(7) is our weekly interval, so a consolidator with this as an argument will produce one piece of data every 7 calendar days, not every 7 trading days.

2. Since the AverageTrueRange indicator accepts TradeBar data instead of a single value, it uses a slightly different set of registration functions. We create and register an ATR on weekly data as follows:var atr = new AverageTrueRange(14);
var weeklyConsolidator = new TradeBarConsolidator(TimeSpan.FromDays(7));
RegisterIndicator(Symbol, atr, weeklyConsolidator);

3. Currently we do not offer a history function but it is on the to-do list. If you'd like to access previous data you'll need to save it off for later. I like to use the RollingWindow type:// define a window to hold 30 pieces of data
var window = new RollingWindow(30);
// since we want daily data in our window we'll need a consolidator to produce the daily data
var dailyConsolidator = new TradeBarConsolidator(TimeSpan.FromDays(1));
dailyConsolidator.DataConsolidated += (sender, consolidated) =>
{
// this is our event handler that will be called each time our 'dailyConsolidator'
// produces a new piece of data. we just want to save it off for later
// see: https://msdn.microsoft.com/en-us/library/ms366768.aspx for more information on C# events
window.Add(consolidated);
};

4. In OnData(TradeBars data) you'll receive either Second or Minute resolution data. You want have access to the High Low or Close since the day hasn't finished. We could save off the High, Low, and Close from the previous day into some local variables though. We could also use the technique shown in answer #3 which would give you access to previous 'daily' data:
// this accesses the High from yesterday
window[0].High
// this accesses the Close from 6 days ago:
window[5].Close

5. In my opinion the easiest way to debug is to be able to run locally via the Lean engine. If you're unable to run locally, the next best thing is to use a few Debug or Log statements in your algorithm.

If you'd like to attach your project you'll need to select it from below under the 'Attach Project' header, and then you'll also need to select something in the 'Attach Backtest Result'.
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.


Hi MichaelH,

Thanks for your support, I will try to write some example to understand it clearly.

Thanks,
Linh
0

Hi MichaelH,

I want to get MA100high and MA100low, I try as below but it didn't access:

ma100high = SMA("SPY", 100, Resolution.Daily).High;

Please help me.

P/s: I try as the code you guide me, And now my code running.

Thanks,
Linh
0

Hey ?ào!

You can 'select' what values get sent into the indicators using the helper functions via the usage of 'selectors'. Selectors are a slightly advanced topic in C# called lambda expressions (or more broadly, function delegates).

Check out this line in the github examples.

In short, we allow you to write code like the following:var ma100high = SMA("SPY", 100, Resolution.Daily, x => ((TradeBar)x).High);
The last parameter there is known as a selector, and it 'selects' the value we want to send into our indicator. The 'x' is the argument of the selector function and is of type BaseData, so we cast it to TradeBar because we know that's what daily SPY data will be, and access the High property on the TradeBar.
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