How to get the market name?
Author: ichechet
Creation Date: 10/25/2016 10:51 AM
profile picture

ichechet

#1
Greetings!

I implemented MarketManager functions in my providers based on http://www2.wealth-lab.com/WL5WIKI/apiMktMgr.ashx

In Market Manager I add the new market then copy symbols from dataset to it. I't OK (Pic 1).

Also I enable my static provider (Pic 2).

When I call

CODE:
Please log in to see this code.

for my dataset symbol, I get the "Default Eastern Market" instead of "MMA".

How to get the right market?
profile picture

ichechet

#2
Pictures here:
profile picture

Eugene

#3
Hi Igor,

Well, since the TimeZoneName property is defined as EST you get EST. It's not expected that you get the "MMA" string as the time zone; instead, you should get the time zone string equal to one of those installed in your operating system.

I guess what you're looking for is the Name and/or Description properties of the MarketInfo object. Check them out.
profile picture

ichechet

#4
Of course, I try to see marketInfo.Name and it's not "MMA", but "Default Eastern Market" for all symbols. Also I get marketInfo.Description which is null.

From MarketManagerMarkets.xml

CODE:
Please log in to see this code.


From MarketsSettings.xml

CODE:
Please log in to see this code.
profile picture

Eugene

#5
I have no idea what "Default Eastern Market" means as this is not a standard timezone string. If the DataSet belongs to your provider, the Name property should return the "MMA" string exactly as assigned in the Market Manager. This is what I get under debugger for (almost) any provider that I've tried. Note that the property will return null for 3rd party DataSets - for example, in the case of the DDE streaming and Watchlist providers.

1. How exactly are you querying for the .Name property in your code?
2. What's the full code of GetMarketInfo?
profile picture

ichechet

#6
Here is the marketInfo content (Pic 1) after I call the code:

CODE:
Please log in to see this code.

1. Just debug after the call
2. As shown above
profile picture

ichechet

#7
Make some research too. If I once get or configure MarketInfo it stores in cache. So the second time it's not calculated.

OK, I try to get the first time I try to access MarketInfo for ticker. See the Pic 1 below. It's Null for Name and Null for Description. Still no MMA market.
profile picture

ichechet

#8
QUOTE:
Note that the property will return null for 3rd party DataSets - for example, in the case of the DDE streaming and Watchlist providers

I test my custom DataSets for TRANSAQ provider. They are the 3rd party DataSets for Wealth-Lab. But what to do to return the market name for my DataSets?
profile picture

ichechet

#9
If I set the checkbox for market (Pic 1), I get the right market (Pic 2). But this is not a solution for multi-market trading. I.e. stocks and futures on Russian market.
profile picture

Eugene

#10
I've looked into the issue a bit deeper and it seems to me that the problem is that the Market Manager is not set up to handle symbols with more than one dot in symbol name. So in my tests MMA.MMM would work for example but MMA.AAPL.O would not. You can call this a limitation. I've added a note to the MM Wiki page.

QUOTE:
If I set the checkbox for market (Pic 1), I get the right market (Pic 2).

Right, this is not how the MM is designed to help you on this. I cannot recommend this as a solution. Now that you're talking about some caching that goes on under the hood of the data provider, I cannot make meaningful suggestions because I have little idea how that affects GetMarketInfo in your case.

QUOTE:
I test my custom DataSets for TRANSAQ provider. It's the 3rd party DataSets for Wealth-Lab. But what to do to return the market name for my DataSets?

My comment only applies to a special case: a data provider works with DataSets by another provider. I'm aware of at least two such cases (see above). If you've just picked up the development of the Transaq provider then my comment could probably be disregarded.
profile picture

ichechet

#11
Still can't get marketInfo.Name for "MMA.MMM". Also make a symbol BAC (plain text, no dots), tried to get, still no results :(
profile picture

Eugene

#12
From Yahoo and IQFeed to Finam and Google, none of our two dozen or so data providers is having any trouble with the MM. Your code must be doing something wrong. Maybe it's the caching thing or something else that you're not showing. Follow the Wiki examples of Google and DDE providers: it's actually quite simple there.
profile picture

ichechet

#13
Eugene, I found the bug. And It's in the MarketManager Library. Please tel me if I can publish it here. Or I start the private ticket where tell the solution.
profile picture

Eugene

#14
Let's go private, thanks.
profile picture

ichechet

#15
Published the ticket :-) Made the changes I described in ticket. Everything works OK.
profile picture

Eugene

#16
A note for everyone: unfortunately, a Market Manager bug inadvertently got through with a build included with Quandl, Yahoo and IQFeed providers. We will issue replacements asap. Sorry for the inconvenience.