Can two features, which I need to create NamedSeries only dataprovider be registered as feature request and added in 3-4 months plan?
Feature #1 description:
Create option in dataprovider (for example add property bool UseOnlyProviderData {get;}) – so wealth-lab read always data from data provider (without compressing on-the-fly). This not should crash something in other providers as option is new.
Feature #2 description:
Each data set in my case is connection to different database, with different markets data, so each database have own options, which I should read and cache before access to data. So I need read it in Initialize() and cache in dictionary and I need somehow identify DataSource to read cached options from cache dictionary. This can be DataSource.ID for example or something other.
Without this features I can't connect Wealth-Lab to my databases.
Size:
Color:
QUOTE:
Each data set in my case is connection to different database, with different markets data, so each database have own options, which I should read and cache before access to data.
An immediate example comes to mind: the Watchlist provider reads and caches existing DataSets before returning the data. What makes your project special?
QUOTE:
(without compressing on-the-fly)
I see what you're after from
our previous discussion, but compressing on-the-fly is an inherent behavior of the Wealth-Lab client. Turning it off on demand by data provider is bizarre. A data provider is always passed a correct DataSource/BarScale in the native bar scale. I don't see a limitation here, as all you have to do to return a correct NamedSeries is to operate in the native scale. To rephrase, creating a DataSet in each particular BarDataScale guarantees that you get the OHLCV+DataSeries in the native bar scale.
Size:
Color:
QUOTE:
An immediate example comes to mind: the Watchlist provider reads and caches existing DataSets before returning the data. What makes your project special?
Not clear. Whan you mean when use "special"?
QUOTE:
I see what you're after from our previous discussion, but compressing on-the-fly is an inherent behavior of the Wealth-Lab client. Turning it off on demand by data provider is bizarre. A data provider is always passed a correct DataSource/BarScale in the native bar scale. I don't see a limitation here, as all you have to do to return a correct NamedSeries is to operate in the native scale. To rephrase, creating a DataSet in each particular BarDataScale guarantees that you get the OHLCV+DataSeries in the native bar scale.
Well, GUI can request any timeframe, but to dataprovider you pass only default. This means I always read wrong NamedSeries data. You really do not see limitation or this was joke? So I need neither block timeframes selection in wealth-lab or get in RequestData correct timeframe to read correct data. And your previous advise "tell your users not use other timeframes" was kidding.
As I see you mean the only one correct way exists to use your software, and this way OHLCV only? If I need something more complex than this, you are trying explain me I really don't need this, and for OHLCV all works fine.
Why write in this forum "Let us know what you want to make this your ultimate trading system development tool!" if you do not want make it better? May be only me need NamedSeries only data provider, in future someone else trying create it. You will repeat same "tell your users not use other timeframes"? Funny.
Size:
Color:
QUOTE:
Not clear. Whan you mean when use "special"?
To rephrase: I was wondering why do you think the new property (whose application isn't clear to me) is required, when the AronowSoftware's provider successfully solves a strikingly similar problem using the built-in means? What is the motivation?
QUOTE:
Well, GUI can request any timeframe, but to dataprovider you pass only default.
You might want to give this method from Community Components a try:
GetAllDataForSymbol. Being a wrapper for a Wealth-Lab's internal data request method, it should return the raw data for a given symbol if it exists in a given BarDataScale.
To determine the actual data scale, even if it's being compressed by Wealth-Lab, you can try a little Reflection:
CODE:
Please log in to see this code.
The BarDataScale will return the current BarScale e.g. 60-minute, even if the "DataSource ds" is 5-min.
Size:
Color:
Okay, can you please add little more details? Do you have property like ActiveMdiChild? So I read active form barscale (not the first one)?
And do you have similar workaround for selected DataSet?
UPD: I found "MainForm" which is mdi container. So first question is resolved.
Can you confirm, this way return to WealthLab correct timeframe data doesn't break something inside?
Size:
Color:
QUOTE:
And do you have similar workaround for selected DataSet?
Here I don't follow you. The "DataSource ds" is the selected DataSet. Assuming that RequestData is being called on a compressed bar scale (e.g. a 5 Minute DataSet > 60 Minute), what other property are you trying to reach?
Size:
Color:
I mean if I can get current selected DataSet using Reflection, this means I can get it inside GetMarketInfo to read correct timezone for example and any other method inside static provider. And all things will works great.
Size:
Color:
Your clarification doesn't really seem to clarify. Again, what's wrong with the "DataSource ds" as the selected DataSet?
Size:
Color:
It present only inside few methods in StaticProvider. Other methods does not have it as argument, but have only symbol as argument. Previous your advise was "search this symbol in all available datasources". But if I can get current selected DataSource using reflection, I can read correct data from cache.
Size:
Color:
For example, can I use in StaticProvider MainForm properties (BarDataScale, DataSource, Symbol) shown here:
Size:
Color:
QUOTE:
It present only inside few methods in StaticProvider. Other methods does not have it as argument, but have only symbol as argument. Previous your advise was "search this symbol in all available datasources". But if I can get current selected DataSource using reflection, I can read correct data from cache.
When reflecting over the attributes of a ChartForm (e.g. BarDataScale), you have it - the Chart window. But situation is different with some properties like
GetMarketInfo or SupportsDynamicUpdate which may be called by Wealth-Lab in other contexts: during startup phase (instantiation of your data provider), processing an on demand data request etc. The point is, a (real) DataSet may not necessarily exist at this point.
QUOTE:
For example, can I use in StaticProvider MainForm properties (BarDataScale, DataSource, Symbol) shown here:
Pretty sure you can:
CODE:
Please log in to see this code.
Size:
Color:
Great! Thank you! Do you have any suggestions for this method?
CODE:
Please log in to see this code.
QUOTE:
The point is, a (real) DataSet may not necessarily exist at this point.
Okay, I'll take note of that.
Size:
Color: