Greetings!
I set all the symbols from dataset in Market Manager as MMA market (Pic1). When I start the strategy from Strategy Monitor it shows last run in my local time as 19:13 (Pic2). The problem is that my local time is 23:13 (+4 hours from time specified). If I set the box for Use this Market by default for symbols not specified in other markets (Pic3) then I get the correct times after strategy run (Pic4).
It's a kind of problem.
Size:
Color:
In the first case I've got wrong next run time (Pic2). It's the last run time, not the next day session open time.
Size:
Color:
Hi Igor,
1. I assume that this is your custom built data provider and your time zone is GMT+5. Does this happen with one of the stock providers like Google, for example?
2. How is your GetMarketInfo defined?
Size:
Color:
Hi Eugene!
Try to make this case simple. I take the Yahoo data provider and set the Market Manager as shown on Pic1 and Pic2.
Then I see the settings for strategy in SM (Pic3). It's not correct.
1. I have GMT+05 timezone, that's right.
2. Market Close is not correct. It shows GMT+05 timezone, but I see in the MarketManagerMarkets.xml
<MarketInfo>
<Name>US Equities</Name>
<Description>NYSE, Nasdaq and Amex equities</Description>
<OpenTimeNative>2007-09-19T09:30:00</OpenTimeNative>
<CloseTimeNative>2007-09-19T16:00:00</CloseTimeNative>
...
<TimeZoneName>Eastern Standard Time</TimeZoneName>
</MarketInfo>
Size:
Color:
QUOTE:
2. Market Close is not correct. It shows GMT+05 timezone, but I see in the MarketManagerMarkets.xml
That's because the Yahoo provider is configured to always return the
CurrentTimeZone in GetMarketInfo regardless of what you see in the MarketManagerMarkets.xml. Since Y! is a global provider of EOD data trading on most any continent in the world, it's impossible to determine the symbol's actual time zone.
How does your GetMarketInfo look like?
QUOTE:
When I start the strategy from Strategy Monitor it shows last run in my local time as 19:13 (Pic2).
Is "Show Local Times" enabled?
Size:
Color:
Yes, I set "Show Local Times".
Probably, I found the reason. You're right. It's in the GetMarketInfo. If I use the single symbol for strategy in SM it's OK. All the times are correct.
But if I use the dataset for strategy in SM, WLD has the first call GetMarketInfo with empty Symbol. This Symbol is not in any markets, so the MarketInfo returned is not correct.
What I've done: Add in GetMarketInfo check for empty Symbol. It it's true I set the default MarketInfo for this provider. It works.
But I'd like to know about empty Symbol on GetMarketInfo. Is it by design?
Size:
Color:
You hit the nail on the head. In my limited testing, there seems to be a call to GetMarketInfo with empty symbol being passed in MSB mode. From experience, passing on an empty DataSet instance is specific to the Strategy Monitor. Likewise you may have noticed that the same thing takes place in PopulateSymbols (where you'd want to skip processing that empty instance; see Google provider's open source code in the Wiki).
Size:
Color:
Thank you!
I already implemented the code in PopulateSymbols and UpdateProvider.
I made the code for the empty symbol for provider in GetMarketInfo.I tested it on current trading session. It works OK.
Size:
Color: