Can Multicharts do automation like this?

Questions about MultiCharts and user contributed studies.
bluefightingcat
Posts: 38
Joined: 31 Oct 2015
Has thanked: 1 time
Been thanked: 2 times

Can Multicharts do automation like this?

Postby bluefightingcat » 23 Sep 2016

I have a strategy I want to run on initially 500 US Stocks and later on, on as much as 6000 stocks using hourly data fed by IQFeed.

The strategy is relatively simply:

- If the open and close of the bar is below a certain threshold (at the end of the time unit) e.g. simple moving average, then buy at the open of the next bar. There are of course other criteria to pre-filter eligible stocks e.g. a certain amount of average volume, a minimum price etc.

Can such a system be automated?

User avatar
TJ
Posts: 7742
Joined: 29 Aug 2006
Location: Global Citizen
Has thanked: 1033 times
Been thanked: 2222 times

Re: Can Multicharts do automation like this?

Postby TJ » 23 Sep 2016

I have a strategy I want to run on initially 500 US Stocks and later on, on as much as 6000 stocks using hourly data fed by IQFeed.

The strategy is relatively simply:

- If the open and close of the bar is below a certain threshold (at the end of the time unit) e.g. simple moving average, then buy at the open of the next bar. There are of course other criteria to pre-filter eligible stocks e.g. a certain amount of average volume, a minimum price etc.

Can such a system be automated?

I have never heard of MultiCharts implementation on such a scale.
Looking at your simplistic description from a distance, the short answer is PROBABLY.

Just because a software has no numerical limitations does not mean it is practical to do so in real life.

An Excel Worksheet has a size limit of 1,048,576 rows by 16,384 columns.
Is it sensible to use Excel to handle a database of a million rows?
You can do it, but it would be unwise to do so.
If you are up to that size, there are other tools that can do the job better.


One limiting factor to size is your computer --
how much RAM can you stuff into your machine? and
how many CPU throughput cycles can your motherboard handle?
(your bus speed, not just your CPU speed)

Even big trading houses do not put all their tradings in one machine,
let alone a PC at home.
You might be better off using multiple computers.

bluefightingcat
Posts: 38
Joined: 31 Oct 2015
Has thanked: 1 time
Been thanked: 2 times

Re: Can Multicharts do automation like this?

Postby bluefightingcat » 24 Sep 2016

Well at this point I have 48gb of RAM and a hexa-core i7-5820K overclocked to 4.1GHz.

Based on my experiences so far it seems that the biggest issue is getting the information from IQFeed fast enough into MC. If I have understood correctly MCs is very slow with moving information around. The processing of the information doesn't seem to be such an issue.

User avatar
JoshM
Posts: 2195
Joined: 20 May 2011
Location: The Netherlands
Has thanked: 1544 times
Been thanked: 1565 times
Contact:

Re: Can Multicharts do automation like this?

Postby JoshM » 24 Sep 2016

Based on my experiences so far it seems that the biggest issue is getting the information from IQFeed fast enough into MC. If I have understood correctly MCs is very slow with moving information around. The processing of the information doesn't seem to be such an issue.
I'd also check with IQFeed for how many real-time symbols they can provide. If, let's say, 1/6th of your symbols are eligible for real-time scanning based on your filters, you'd still need 1000 real-time symbols. I'm not sure if that is possible by default with IQFeed.

Perhaps MultiCharts support can also comment on how MultiCharts deals with the limit on concurrent IQFeed symbol connections. If the QuoteManager "cycles through" the number of available real-time connections, that might explain why MultiCharts seems very slow with moving information to you.

Have you already loaded a lot of real-time symbols in MultiCharts on your computer? If so, you can look at the "quote processing indicator" in the right-hand bottom of the MultiCharts screen that shows something like ".. q / .. s" to indicate how many quotes MultiCharts is running behind the feed. That might give you an idea how good MultiCharts can handle those amount of quotes. (There's more information on the forum and wiki about that "processing indicator" but can't find that since I don't recall its official name).

I can't imagine that your computer hardware will be the bottleneck for automating such a strategy, but to increase performance as much as possible you can..

- Code the scripts as efficient as possible, for instance by calculating most values only on bar close or only computing certain values every x number of ticks instead of processing everything on every tick.
- Disable logging (see Henry's post here). While this will make troubleshooting harder for MultiCharts support, it will make MultiCharts run faster since it turns off a lot of write operations to disk.
- Use strict pre-scanning criteria to limit the number of charts you need to open. While you have a lot of symbols in your pool, there's probably very little diversification benefits of trading more than 100 stocks (given how strong stocks are correlated with each other). The research referenced in this article suggests there's little benefit in trading 400 stocks versus 50. Trading less stocks might also bring down your transaction costs by only trading the most liquid ones.

User avatar
TJ
Posts: 7742
Joined: 29 Aug 2006
Location: Global Citizen
Has thanked: 1033 times
Been thanked: 2222 times

Re: Can Multicharts do automation like this?

Postby TJ » 24 Sep 2016

One thing you can try is to download from free data as many symbols as you can and do some back tests or forward tests.

Let us know how it goes.


Return to “MultiCharts”