[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: Questions for people using automatic transactions with IB



PureBytes Links

Trading Reference Links

Louis,

Thank you for the compliment.  

The best rollover date is when the new contract average volume becomes higher than the old contract.  The date that happens is actually predefined by the exchanges.  I saw the date formula not long ago, but I did not see any point to putting it into the AFL.  I run the CC Rollover AFL on the weekend after the rollover date (I actually wrote it on that weekend so I could run it this time around).  I know the date, because my broker changes the default ticker on that date, and the folks on the trading board I subscribe to are reminding everyone it is time to start trading the new contract.  That is how I got many of the ideas I used in my trading algorithms --from day traders on the board who shared their methods -- none of which are automated.  That makes it a lot more challenging to write.  I would be happy to have the AFL program trade half as well as the best of the day traders I know.

If you are not trying to create Volume or Range bars, then 1 minute is fine for trading.  Most traders use 3-5 minute bars.  However, to backtest, you need the 1 minute resolution because unlike the trader who is remembering what the action is inside the last candles, the program can not tell if the high came before the low or other way around.  The finer resolution defines the waveforms better.

The other thing you can do with 5 second bars is backtest with a 5 second execution delay to test market order systems.  I only have the concept of this right now, as I recently posted an unanswered question on the subject.  The downside of a 5 second database is the space and time it takes to load all the bars each pass.

Day traders are glued to their charts the whole time the market is open.  For the type of trading I do, the best executions have about a one second window for executions about every 15 minutes.  In fact the execution window is often gone by the time the data shows up on the charts.  I missed two trades today, because I was one second late.  The only way to catch the really tight windows is to already know where the price is going to be at the execution window, and have a limit order in place ahead of time.

I tried to write the CC Rollover AFL so that it would work for any intraday timeframe.  I only tested it on my 5 second bars, so it may or may not be bug free on 1 minute bars, but I think it will work.

BR,
Dennis

On Jun 23, 2008, at 8:16 PM, Louis Préfontaine wrote:

Dennis,

After looking carefully at your AFL code, I can say only two words: it rocks!  Really, that is what I was looking for.   I am trying to make it work for 1-minute data, but I wonder: what is the best rollover date? 

You seem to have some experience with futures.  Would you say it is better to trade under 1-minute for the, or 1-minute is ok?  Cause of course if you trade 5-seconds, you absolutely need to set it automatically to your broker.  I can't imagine someone standing there all day long and trying to fill a trade in 5 seconds...  You say you use it to anticipate, but isn't 1 -minute doing it the same way?

Thanks,

Louis



2008/6/23 Dennis Brown <see3d@xxxxxxxxxxx>:

Louis,


I handle rollover via an AFL chart I wrote last week to make the problem simple for me.  I uploaded it to the AFL library.  Some data suppliers provide a Continuous Contract ticker for futures.  However, unless they give you as much history as you want for backtesting, it will be a problem.  That is why I had to write my own CC rollover.  I want months of 5 second data, and DTN only provides a week of history.  However, I must make sure I do not let a week go by without updating my database of all futures contracts I want to save.  I also have to collect data for months before I have a history available.

If you only want 1 minute bars, many offer a lot longer history.  I could not get good volume or range bar charts with more than 5 second database.  Tick is better and I will experiment with that at some future date.  However, 1 minute is the shortest chart timeframe I run for the time bars.

I do not have an IB account.  I will not run auto-trading for quite a while into the future if ever.  Right now, AB just tells me (audio and on chart) when to anticipate an order so I can set it up in my broker account screen, then tells me when to send the order (if it gets triggered).  

I still want to have final say so on any order sent, because I am aware of more things than the program, like economic announcements, breaking news events, patterns I have seen before, but not programmed into the charts, etc.  

I will take things one step at a time.  First thing is to have a backtested edge that is not over fitting the data.  

Next is to test trade it with a small position and discover how human emotions play into execution --very important! 

I am at the third stage of cleaning up my trading platform to make it easier on myself.  The computer is an extension of my brain, and good at nagging me about opportunities I might miss because of too many bits of information at the same time.

I am also working on expanding my AFL to ever complex systems that take over more functions that I do mentally with pattern recognition.

I have been working on this system for two years already.  I have come a long way with my AFL skills.  I think I have started over twice already as I understood the problems better and how to organize the system to make it more general and easier for me to maintain.  It is a never ending evolutionary process.

Next, I will start having the AFL start filling out the fields on my Broker Interface with things like the position size, limit price, etc.  All I have to do is press the send button at the right time.  Then, I will have AFL also press the send button, after I pre-approve the trade setup.  I will always maintain an override on trading.

Eventually, I may sign up with a specialized Futures broker and use their data feed and API to generate the trades.  It all just depends on how things progress.

You see, one step at a time.  If you can't make money the simple manual way, then no point in getting fancy with programming fast ways to lose money.  Of course I am referring to Day Trading, not longer term swing trading or investing where the execution timing is not so critical.  If you want to make 5 or more trades a day, one second delay in execution can make the difference between a good profit or a loss overall.

BR,
Dennis


On Jun 23, 2008, at 4:05 PM, Louis Préfontaine wrote:

Thanks Dennis for your reply.  I have traveled a long path since January with AB, but now I feel like this is a very long way too.

If there are a lot of errors on stocks, I might go with futures in the future.  However, I am kind of impressed by the rollover problem and how to handle the end date for each contract.  I am not sure how to deal with this.

On a more practical level, do you know if there is any information on how to set AB to run automatic trading on a demo account on IB?  I searched but didn't find out how.  I am really starting from scratch here.

Thanks,

Louis

2008/6/23 Dennis Brown <see3d@xxxxxxxxxxx>:

Louis,


It is too complicated for me also.  I try to simplify everything I can, because there are so many complicated things to deal with.  So I went to Futures trading which simulates very close to actual executions if you build your trading algorithms carefully.  Once you are aware of the potential problems, it is easier to avoid getting trapped by them.  For a final test, I trade it live for a couple of days and compare results realtime from the backtest (which runs live in indicator mode on my system) and what my broker account is doing.  I limit my backtesting to a couple of days when I am trading realtime to keep things running fast.  I tweak my trading algorithms until my backtests perform a little worse than my real trading.  That way I have a bit of a cushion for the inevitable failures due to data feed problems, computer system malfunctions, and human error.

BR,
Dennis

On Jun 23, 2008, at 2:56 PM, Louis Préfontaine wrote:

OMG that seems very complicated.  How do you do to do that?

Louis

2008/6/23 Dennis Brown <see3d@xxxxxxxxxxx>:

Something to consider is that stocks have a large number of bad tick data.  Suppliers are trying to correct these as quickly as possible.  Futures data has very few bad ticks.  That is the main reason I switched to only trading e-mini futures instead of stocks for many trades per day, and why I limit my trading to just one future at a time.


To backtest a HF system, you actually need two tickers, the raw data ticker and the corrected data ticker.  You generate trading signals from the raw data, and execute the order prices on the corrected data.  And don't forget to take into account the time lag between the raw data showing up, and the time of execution on the corrected data.

BR,
Dennis


On Jun 23, 2008, at 1:37 PM, Louis Préfontaine wrote:

Hi Herman,

I read this one http://www.amibroker.org/userkb/2007/12/24/high-frequency-automated-trading-hfat-part-2/  but it seemed to me like it was a bit complicated to get an uncorected database.  I mean, having to manually check where backfill ends and raw begins, saving two different databases, etc.  Seems like a lot of work... and doing it everyday!  Isn't there any easier way?

Do you think this is an issue for 1-minute intraday, or only for tick, or 5 seconds?  Because it does not make sense to waste a lot of time on corrected 1-minute data only to see it fails miserabily with raw data!

Thanks,

Louis

2008/6/23 Herman <psytek@xxxxxxxx>:

I remember at least one case where I developed a HG system using historical 1-Minute bars that didn't work with real-time (uncorrected) data.


Any system that trades frequently intraday can easily be verified by running it for a few days with life data. Also, the 2nd article on the UKB tell you how to save uncorrected (raw) data for later comparison with backfilled data.


Of course different systems have different sensitivities to qualities. You can try and design so that your system is insensitive to the problems outlined on the UKB.


best regards,

herman


For tips on developing Real-Time Auto-Trading systems visit:

http://www.amibroker.org/userkb/


Monday, June 23, 2008, 10:04:25 AM, you wrote:


>

Hi,

 

Well, I'm not really sure but it seems that one-minute bars have so many trades (assuming your contract is at least somewhat liquid) that these errors should pretty much cancel out and stop being a problem.  

 
 

----- Original Message ----- 

From: Louis Préfontaine 

To: amibroker@xxxxxxxxxxxxxxx 

Sent: Monday, June 23, 2008 9:40 AM

Subject: Re: [amibroker] Re: Questions for people using automatic transactions with IB


Hi,


I wonder if the problems with HFAT can happen in « normal » trading.  I mean: if I trade with 1-minute bars, I will build a system with data that has been revised at the end of the day. E.g. the data errors will not be there anymore.   However, in real-time trading, those errors will be there..  So how can one deal with this, even without automatic trading?


Louis



2008/6/23 reinsley <reinsley@xxxxxxxx>:


thank you, I discovered the use of static var on that occasion and now

this point is much better.


Too many things are missing in my formula, I can't ask help as it

could seem that i'am asking for a ready-made solution. I have to keep

my cards when I'll be trapped.

I need to scambled for the archive first.


Regards


 






__._,_.___

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___