Community Components library
Author: Eugene
Creation Date: 11/20/2008 7:06 AM
profile picture

Eugene

#1
Announcing the availability of Community.Components - a library of reusable studies, classes, functions and methods which we plan to update.
profile picture

gymcoach

#2
I was able to install via the Extention Manager but where do I locate the components after I SD/RS the program?
profile picture

Eugene

#3
When you highlight the extension in the Extension Manager, there's a label that reads "Publisher: MS123". Clicking on it will take you to the Wiki home page containing descriptions, source code etc.
profile picture

Eugene

#4
Release 2009.02 adds GetDataSetName function to return DataSet name the strategy is being executed upon (thanks Aleksey!).

In addition, support functions to access portfolio performance series such as Equity and Drawdown in a Strategy and "trade the equity curve". Stay tuned for a KB article with code.
profile picture

Eugene

#5
In 2009.03 update:

* Added: DrawLinRegChannel (gbeltrame)
* Added: GetWeekNumber
* Added: Correlation
* Added: Stop/Limit Orders
* Changed: Slight syntax changes for methods of the SeriesHelper class (Chandelier Stop, Fill Series From File)
profile picture

Eugene

#6
Long time no hear ;) 2009.03.10 is a minor importance release that adds a function but unfortunately, contains a number of syntax breaking changes.

Added: Bars Since function (Robert Sucher)
Changed: The greater part of methods were affected by a series of syntax changes while rearranging. Please review the documentation and samples in our Wiki!
profile picture

ss161

#7
Community.Components: How about SaveAllTrades in addition to SaveClosedTrades? or just SaveTrades with a flag for all vs closed vs even just open?
profile picture

Eugene

#8
Good idea, I'll mark it. SaveTrades( ... +2 overload(s) ) would be fine.

One question: what do we file instead of Position.ExitDate, Position.ExitPrice and Position.ExitSignal, "N/A" or 0 - given that we can't skip a column when mixing closed and open trades.
profile picture

ss161

#9
this is what i've done right now. i was going to extend it as i had need for add'l attributes:

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

Eugene

#10
This is what I was talking about when asking about the Position object properties: the number of columns will be different when open trades are combined with closed. (It's not a problem for just open or just closed trades.)
profile picture

Eugene

#11
Steve,

Thanks for suggesting -- the SaveTrades function was added to Community.Components 2009.04, along with GetExchange and GetFloat.
profile picture

Eugene

#12
2009.05

* Added: CooledOff (position-related functions)
* Added: AlmostEquals, NumberOfDecimalPlaces (calculations)
* Added: Price Volume Distribution
profile picture

Eugene

#13
Following up a request, Community.Components updated to 2009.06 and now includes support for hopefully easy access to past & future special hours data.
profile picture

vbadri

#14
Is there a way to access from WL editor Performance -> Net Profit numbers now using this component..?
I see the notes on for accessing/drawing "Equity Curve" using the link below. It does not seem to let access anything in the "Performance" Tab.

Advice, and any pointers.

http://www2.wealth-lab.com/WL5Wiki/(X(1)S(btgb0tvhmv403p3jtgmw1ybs))/kbInteractingWithPortfolioEquity.ashx

Regards

badri
profile picture

Eugene

#15
Long story short: it's impossible to access anything in any Tab from Strategy code. WL5 is not designed to access information generated by Visualizers, because they start to process backtest results after the strategy has already finished executing.

On the contrary, the article you're referring makes it possible to access -- among the rest -- the Net Profit number by utilizing a "hack" i.e. calling an instance of the internal TradingSystemExecutor class used to run strategies. Problem here is that the API documentation of the SystemResults and SystemPerformance classes is currently unavailable.
profile picture

Eugene

#16
2009.07 released

Added: Thicker OHLC Bars (but we suggest to grab the ThickOHLC chart style extension instead!)
Added: EnterAtPrice, ExitAtPrice
Added: Support for importing real (historical) trades a.k.a. SimTradeFile (2 versions)
Added: Intraday support functions
Added: Fundamental data checker
Added: Input
Added: Copy to Clipboard
profile picture

Eugene

#17
In this 2009.08 update:

Added: 2 DrawLinRegChannel overloads: one replicates the manual drawing tool, another uses the StdDev instead of StdErr (Cone)
Added: FirstDayBarsBack to Intraday support functions (Cone)
Added: Export2ASCII, Export2WL methods for exporting the price series data (OHLCV) to ASCII and WL4 files
profile picture

Eugene

#18
Release 2009.09 - Summary of changes:

* Added: a "runDonor" overload for running strategies in SSB mode (to support "interacting with equity curve")
* Changed: exposed the GetPositionSize method to public
* Added: IsRawProfitMode function
* Added: Mountain graph of Volume (Cone)
* Added: GetStockScouter - retrieve the MSN StockScouter ratio for U.S. stocks (by request of hmg2020) Discontinued by MSN
* Change: dropped support for Wealth-Lab 5 versions 5.1/5.3
profile picture

Eugene

#19
Release 2009.10:

* Added: WinLossBackground (thanks thodder!)
profile picture

Eugene

#20
Community.Components updated to 2009.11 and now includes:

Added: AutoStops (created by Dave Aronow)
Added: DrawTradeLines (submitted by ovelten)
Changed: possible to install in Wealth-Lab 5.5 and higher
profile picture

Eugene

#21
Not many changes in Community.Components 2009.12, but one of them is a real eye candy:

* Added: Price/Volume Heat Map (created by Andrew aka avishn1)
* Fixed: FillSeriesFromFile overload not accepting complex DateTime formats (thanks to mosherif for spotting it)

Thank you Andrew!
profile picture

Eugene

#22
Happy New Year! In this year's first update 2010.01:

* Added: 2 different methods of Setting Priority for AtStop/AtLimit Orders. Created by Andrew (avishn1) and Robert Sucher (Cone))
* Changed: possible to install in Wealth-Lab 5.6 and higher

Thanks Robert and Andrew!
profile picture

Eugene

#23
Version 2010.02 brings some helpful features:

* Added: Pattern Recognition - detect Double Top and Double Bottom chart patterns easily (created by Robert Sucher)
* Added: PlotSymbolTrades - visualizes trades made on external symbols (e.g. pair trading)
profile picture

mike333

#24
Can this program work as a standalone console application?

CODE:
Please log in to see this code.


The same code works, if it's executed as a part of Execute() function in WLP environment. WealthScriptCompiler object semms to miss some setting or similar if it's called outside from WLP. Is it true?

I'm getting compiler exception in the following line of LoadStrategyFromDisk(string strategy):
CODE:
Please log in to see this code.


I slightly modified runDonor(WealthScript yourStrategy, Bars symbol) to be independent from parent strategy, removing following two lines:
CODE:
Please log in to see this code.

profile picture

Eugene

#25
Mike, all this stuff I made to support equity curve interaction is essentially a "hack" and therefore will not be supported by me. It gets its job done, but as of v5.6 and with the advent of PosSizers, there's no more need in it. PosSizers like this one can do the equity curve trading thing without efforts: Trading the Equity Curve.

Likewise, using Wealth-Lab libraries in a standalone console app is a hack, not a use case, and we'll not be supporting this kind of usage either.

P.S. Mike, I apologize but how do you use WLP in your country?
profile picture

mike333

#26
WLP belongs to my customer (in US), i'm just consulting him
profile picture

mike333

#27
... by the way, i would like to buy WL Developer for me, but it's highly dependend if you'll publish the description of Streaming Interface, to adapt other brokers. Do you know already, when you can do it?
profile picture

Eugene

#28
QUOTE:
WLP belongs to my customer (in US), i'm just consulting him

Thanks, question closed.
QUOTE:
if you'll publish the description of Streaming Interface,

If it was our will, the API documentation wouldn't have been withdrawn in 2008 :) Fidelity plans to release the API, as mentioned in another thread, in the end of February.
profile picture

Eugene

#29
In this release (v.2010.03):

* Added: EventWithin, CrossOverWithin, CrossUnderWithin.
* Fixed: a SetTimeOfDayPriority error. Thanks to Andrew (avishn) for the heads-up.
profile picture

dansmo

#30
How about adding some really simple things one uses over and over again, i.e. insideBars and outsideBars?
CODE:
Please log in to see this code.
profile picture

Eugene

#31
It doesn't belong here. Where it really belongs, is WealthLab.Rules.Candlesticks. Robert, what do you think?
profile picture

Cone

#32
Darn, I missed the March release already? Eugene, I need to send you some code for detecting divergence between 2 series. I guess it can wait for April.

As for inside/outside bar, not sure they're really candlestick "patterns". These are pretty simplistic checks, and the functions above can be simplified even more -

CODE:
Please log in to see this code.
It sure can't hurt adding them to Community.Components, but I think using them there may be more troublesome than just pasting these 1-liners yourself.
profile picture

dansmo

#33
If you dont mind adding simple things, you should add "isUpsideGap" and "isDownsideGap"?

CODE:
Please log in to see this code.


Is it okay to suggest such small and tiny, but useful stuff?
profile picture

Eugene

#34
Let's add them too. Maybe something like that, although it would complicate a bit:
CODE:
Please log in to see this code.
profile picture

dansmo

#35
Eugene, very good idea.
So, we could also add the difference in % or points to the high or close.
GapType.FullUp.Percentage = double.
etc.

??
profile picture

dansmo

#36
FillSeriesFromFile:

I have values that have a comma as decimal separator. It seems to me that FillSeriesFromFile does not work then?
In the wiki-article it is mentioned to use override-methods. I dont know how to use it. Can you please give a hint?
profile picture

Eugene

#37
Take another look at the method's documentation: FillSeriesFromFile

This overload allows to specify a separator char:

CODE:
Please log in to see this code.

QUOTE:
separator (optional) Separator char used to isolate dates from the series


And to the best of my knowledge, the Wiki example already explains how to use this override.
profile picture

dansmo

#38
I am speaking of the decimal separator!
profile picture

Eugene

#39
FillSeriesFromFile should work with whatever decimal separator is configured in Control panel > Regional settings. If the decimal separator is a comma, the char that separates the dates from the series - obviously - is not a comma.

To sum it up, a combination of comma (the "official" separator of your Windows locale) and another char (e.g. space or tab) should do.
profile picture

dansmo

#40
Here is the data. Maybe the problem is, that there are more than two columns?

QUOTE:
20100225;10,34;34,48
20100226;20,68;20,68
20100301;37,93;17,24
20100302;51,72;3,44


How can I import that file, so that colums 1 and 2 are two series?
profile picture

Eugene

#41
QUOTE:
Maybe the problem is, that there are more than two columns?

This is not supported. FillSeriesFromFile is designed to import only one column of data, as shown in the example section of its online reference.
QUOTE:
How can I import that file, so that colums 1 and 2 are two series?

There are several ways: create an ASCII DataSet (no FillSeries...), or split the file in two (for FillSeries...)
profile picture

dansmo

#42
Anyway...the decimal separator does not work.

I have a file with only one column:
QUOTE:
20071221;0,534362375736237
20071227;0,432242512702942
20071228;0,343254089355469


Last value will show in WL chart as 343,25T!!
profile picture

Eugene

#43
QUOTE:
Anyway...the decimal separator does not work.

Yes, but I don't know why. Try replacing this line:
CODE:
Please log in to see this code.

With this in SeriesHelper.cs : FillSeriesFromFile(...char separator...):
CODE:
Please log in to see this code.

Should work, but is slow as hell (cache the series in global memory). I'll work on getting rid of the bottleneck for the next month's release.
QUOTE:
Is it in any way possible to return an array of DataSeries instead of one DataSeries?

Probably. Where it fills a DataSeries passed by user, you should loop for each DataSeries in your array instead of this:
CODE:
Please log in to see this code.
profile picture

Eugene

#44
Long time no hear: Community.Components updates to 2010.06. Here's summary of changes:

* Added: Divergence Between Two DataSeries (Detect, Plot) by Robert Sucher
* Added: basic support for running Strategies on an evolving WatchList (DataSet) of index components: Backtesting with Evolving WatchLists (requested by dansmo)
* Added: IntradayFillPriorityEstimate to "Setting Priority for AtStop/AtLimit Orders" - courtesy avishn
* Added: DaysInPosition to tell how many days have passed since establishing a position using intraday data (another Intraday Support function by Robert Sucher)
* Added: TradingDaysBetweenDates calculates the number of trading days between any two given dates (coded by Robert Sucher)
* Added: DrawTradeLines overload to display trade signal names
* Added: SimTradeFile, SimTradeFile2 - support for reading custom position size
* Added: Simple bar patterns: IsInsideBar, IsOutsideBar, isGapUp, isGapDown, isGap/GapType
* Added: FillSeriesFromFile overload to fill an array of DataSeries from file at once
* Added: FillSeriesFromFile overload to support non-exact matching of dates in an imported file
* Fixed: FillSeriesFromFile overload - bug when the decimal (!) separator was "," - normally, "," should not be used as decimal separator
* Fixed: DrawTradeLines to correctly highlight short trades
profile picture

Eugene

#45
Latest update of Community.Components (2010.07) contains:

* Added: FindSymbols - finds symbol(s) across DataSets (requested by Sammy_G)
* Added: GetStatusBarText - Accessing text in the main status bar (requested by kazuna)
profile picture

Eugene

#46
Wealth-Lab 6 customers, please re-install the updated Community Components library from our site (Extensions section).

Summary of changes of 2010.09:

* Added: GetNextEarningsDate, GetNextEarningsDate2
* Changed: possible to install in Wealth-Lab 6
profile picture

Eugene

#47
Summary of changes in version 2010.10:

* Added: Clipboard: support for copying to clipboard: new method CopyObject for copying any data objects (such as bitmaps), not just text
* Added: Black Scholes formula, courtesy www.espenhaug.com (thanks Sammy_G)
* Added: ConvertHmm - utility method to convert unsupported Hmm time field in ASCII files to HHmm
* Changed: ThickerOHLCBars to color an OHLC bar based on the Close relative to the Open, not Close w.r.t. previous Close. (thanks Robert)
profile picture

Eugene

#48
Highlights of version 2010.11:

New, improved SetTimeOfDayPriority and a class for retrieving stock symbol details from Finviz: next earnings date, company/sector/industry (with caching).

Summary of changes:

* Added: new, improved and powerful SetTimeOfDayPriority method retaining backward compatibility (thanks Robert)
* Added: Getting and caching data from Finviz.com: next earnings date, company/sector/industry for U.S. stocks
* Added: GetDataSource methods (thanks Robert)
* Added: GetTime overload (thanks Robert)
* Added: helper classes for pair trading: PairPosition, PairPositions - courtesy ss161
* Fixed: bug in FirstBarDaysBack (thanks Robert)
profile picture

Cone

#49
I just want to highlight that SetTimeOfDayPriority can now be used without worrying about blowing up memory use. It's very light weight now. :)
profile picture

Eugene

#50
Community Components has been updated to version 2011.01 on 01/12/2011.

Summary of changes

* Added: a class for handling upcoming Earnings events (courtesy Robert Sucher)
* Added: DateTimeFunctions_US class with useful Date-related functions (thanks Sammy_G)

Update to Wealth-Lab 6.1 to be able to install/use the library.
profile picture

JDardon

#51
How do I submit a component for consideration for the community library?
profile picture

Eugene

#52
You may enter a new support ticket and attach the class(es) and other files (if required), for example.
profile picture

Eugene

#53
Community Components has been updated to version 2011.02.

Summary of changes

* Added: PivotLevels class for displaying intraday pivot levels (author Jorge Dardon)
* Added: SimTradeFile_NT - new method for importing NinjaTrader 7 trade log files
* Fixed: EarningsDate cache fixes
profile picture

Eugene

#54
Community Components has been updated to version 2011.07.

Summary of changes:

* Fixed: 6.2 API change has broken backward compatibility for "Dynamically Interacting with Portfolio Equity"
Removed: ConvertHmm method depreciated: the ASCII provider supports the Hmm/Hmmss time formats starting from version 1.3
* Changed: breaking change to DateTimeFunctions_US: refactored, renamed to DateTimeFunctions
* Changed: Calculate.GetWeekNumber/DaysBetweenDates/GetRemainingTradingDays/TradingDaysBetweenDates became obsolete, were moved to DateTimeFunctions. Due to their exclusion in a later release, use their DateTimeFunctions analogues.
* Changed: breaking change to DateTimeFunctions_US.TradingDaysRemaining: replaced a string parameter with BarScale
* Changed: breaking change: pattern recognition functions grouped within the PatternRecognition class
* Changed: possible to install in WL 6.2+
profile picture

TCust

#55
May add (bool) Expiration Friday, for found this day :)
profile picture

Eugene

#56
What's wrong with IsOptionExpiryDate (or this code for future date detection)?
profile picture

TCust

#57
Ok Thanks
profile picture

Eugene

#58
Community Components has been updated to version 2011.08.

Summary of changes:

* Added: CreatePaneList (plot multiple series at once)
* Added: IsOptionExpiry to DateTimeFunctions
profile picture

streak

#59

There are so many items in Community Components. Has any consideration been given to an addition in QuickRef or similar for these?

It would be handy tree rather than having to search Wiki or open VC# Object Browser .
profile picture

Eugene

#60
Here's the closest thing we can offer:
Pages of the Category Community Components
profile picture

streak

#61

Thanks Eugene.

That's pretty good. Just didn't recognise it in the menu.
profile picture

Eugene

#62
Community Components has been updated to version 2012.01.

Summary of changes of this maintenance release:

* Changed: optimized BarsSince code (courtesy Dmitry Goryainov)
* Changed: replaced EnterAtPrice/ExitAtPrice with improved versions (courtesy Robert Sucher)
* Changed: removed depreciated ShortenedSessions class, look for Bars.MarketInfo.SpecialHours
* Changed: removed depreciated date/time functions from Calculate class, use their analogues from DateTimeFunctions
* Changed: refactored the runDonor method
* Fixed: GetStockScouter method got broken due to a Moneycentral HTML page change Discontinued by MSN
* Fixed: potential error in GetStockScouter for symbols w/o a StockScouter rank Discontinued by MSN
profile picture

Eugene

#63
Community Components has been updated to version 2012.02.

Two highlights:

* New: Support for getting Google Trends data - a novel, non price-based DataSeries for exploring search sentiment in trading systems!
* New: QuickenFile class for importing historical (real) trades Quicken reports (courtesy higgsja), usage example: Import historical trades from Quicken reports (QuickenFile)
profile picture

Eugene

#64
Community Components has been updated to version 2012.03.

Just one yet important fix: finally, "Interacting with Equity Curve" is ready for prime time!


Starting from v2012.03, this feature is out of beta and can be reliably used. Make sure you've read "Notes and Limitations" in the KB article above.
profile picture

higgsja

#65
I have an update for the QuickenFile class. It fixes a couple issues with the original.

How can I submit that to you?

Thanks,
Joe Higgs
profile picture

Eugene

#66
Please attach the class to a support ticket. Thanks in advance.
profile picture

Eugene

#67
What's new in Community Components version 2012.05:

* New: added historical IPO data access (IPOData class)
* New: added U.S. stock classification (Classification class)
* Change: QuickenFile class updated by author higgsja
* Change: possible to install in Wealth-Lab 6.3+

For more information re: trading on IPO founding date, see this discussion for pointers:

IPOs buying after three days, my post from 4/26/2012 6:49 AM
profile picture

Eugene

#68
What's new in Community Components version 2012.06:

* New: Swing functions by Jon Macmichael (streak) - IsSwingHi, IsSwingLo
* Change: new DaysInPosition overload; more details HERE
* Change: rewritten GetStockScouter method (replaced parsing with RegEx with XPath) Discontinued by MSN

profile picture

Eugene

#69
What's new in Community Components version 2012.11:

* New: Added DateTime functions: DateOfNextTradingDay (bar and date overloads), TomorrowIsLastTradingDayOfWeek (Robert)
* Fix: GetStockScouter stopped functioning due to website URL change Discontinued by MSN
* Change: Solution now targets .NET 4.0 (Requires WLP/D 6.4+)
profile picture

abegy

#70
In this extension, I see that there is an "Earnings Date Helper" component. Except if I'm wrong, this component is only for US Stock (because of the source where information are taken).

Is it possible for international trader to have the same feature thanks to the website http://www.earnings.com ?

When you request by symbol (http://www.earnings.com/company.asp?client=cb&ticker=bnp.pa), you have the history and the next coming earnings date.

Moreover, you can find split date (http://www.earnings.com/company.asp?client=cb&ticker=HSFTwhich is important to be able to adapt the next order when the split will occur.

At the end, you have also to IPO (nitial Public Offering), conferance call date and presentations.

The ticker is compatible with US symbol and yahoo symbol code also.

For all these reasons, is it possible to add this source ?
profile picture

Eugene

#71
Take a good look at the Earnings Releases table: for BNP.PA you will find there lots of noise like interim dates, preliminary releases, and duplicate records (like when a BNP.PA affiliate structure like BNL is having an earnings release). It's tough to tell if a real earnings release date is upcoming, or not quite.

What's worse, the date/time format changes pretty unpredictably. I noticed four variations on that page alone: 14-Feb-13, 7-Nov-12 1:00 AM, 20-Feb-08 BMO, 12-Sep-03 AMC. Who knows how stable it is considering the multitude of global markets.

Would it make sense? I don't think that earnings.com is worth it.
profile picture

abegy

#72
I agree with you that earnings.com is not the best of the best.
But I see more advantages that disadvantages :
- the database is worldwide
- there is no solution in WLD for International traders to have access to earnings information
- I don't see another source to find information for International traders

Moreover, you find information regarding split and IPO. Theses two events have impact in quotes.
I would be interesting for US Trader also to manage this information not yet available in WLP/WLD at this time.

For your information, you can request information by date instead of by company (http://www.earnings.com/split_full.asp?date=20121107&client=cb : example for split).

It's interesting if you want to catch next coming events.
In this case, you cannot request by company but you have the full list of company (sub symbol are listed in this case).
profile picture

Eugene

#73
I suspected that there may be more to it than just the four DateTime formats, and was right: just found something truly remarkable!

Bosch NSE earnings

EVENT TITLE Q4 2012: Bosch Ltd Earnings Release
DATE/TIME (ET): 25-Feb-13 - 1-Mar-13

How on Earth should the computer parse this one: maybe February, or perhaps in March, let's flip a coin?

I truly appreciate your past suggestions that helped find reliable data vendors for creating various data providers. However, I "own" over 20 data providers alone and all the support is on me when they decide to change format. Experience tells that it's not worth dealing with a data vendor whose format is too ambiguous and the data quality appears to be mixed.

Thank you for your understanding. The solution's source code is open, so nothing stops motivated traders from adding support for this data source on their own, using it as a prototype.
profile picture

abegy

#74
Regarding your example, this is a normal case. The date is too far from now to know exactly the right date. All companies gives only an estimation at this time (see http://www.earnings.com/earning.asp?month=20130206&day=20130206&date=20130206&client=cb where you can find american companies in the same case).

Look how next earnings information is given for Aarons Inc. here (http://www.earningswhispers.com/stocks.asp?symbol=AAN+). it is written that the date is not confirmed.

But when the date is coming soon, you have only the right date (see for the next week : http://www.earnings.com/earning.asp?date=20121113&client=cb).

I understand that you don't want to manage a lot of extensions but do not forget that traders like me want to spend time to find trading strategy instead of developping technical extensions.

I really like your support and the software. But it is really pity to not have the same level of function when you trade on international markets.

Please, if it is possible, reconsider your position regarding earnings.com
Thanks for all Eugene in all cases !
profile picture

Eugene

#75
QUOTE:
it is written that the date is not confirmed.

The computer doesn't care if that date may be confirmed or not. That's up to the trader to rely on it or not. It only cares if that something can be parsed, and this is the problem with earnings.com. We need to hear from an experienced person: how the PC should treat the date range like "24-Jan-13 - 31-Jan-13" i.e. should the 1st date be returned, or perhaps the 2nd date, or the date is TBD?
profile picture

abegy

#76
In my point of view, you need to take into account just the first date. In this case, 24-Jan-13. anyway, this date will be updated when it will be confirmed by the company.
It's important to have a date instead of TBD because if you want to take a position, it cab be interesting to know if you will probably have impact because of earnings events.
profile picture

Eugene

#77
GetNextDateFromEarningscom() will appear in upcoming revision of Community Components. The function will be standalone and not integrated with GetNextUseCache.
profile picture

abegy

#78
Thanks a lot Eugene !

Can we have same feature to request next Split and IPO event date ?
They are very important events when you trade.
profile picture

Eugene

#79
I may be wrong but the very important upcoming splits and IPOs inherently appear as single-user solutions to me (what it means). In general, don't forget that the library is called Community Components, and its open source code is full of examples of parsing HTML pages and CSV files. Nevertheless, let's take a look at what you're proposing:

1. IPOs are out of question: the datafeed simply does not fit for building something in the ballpark of our IPOList class.

2. Seriously, if you point me at an existing viable example of how upcoming split date can be used in trading systems, I'll see if it's possible to make something out of the All Upcoming Splits table @ earnings.com.
profile picture

abegy

#80
I will try to explain you why it is important to catch the date and the value of the split. If it is not clear, do not hesitate to ask more questions.
So, if you have a strategy which generates orders at limit. You want to trade BNP as example. The last value is 40.
Your strategy generates an order to buy it at 30 for tomorrow. If at this date, there is a split at 2:1, the last value would be 20 and your limit order at 15.
But, as the split was not yet recorded, no data provider gave you the quote history with the split because it was not realized.
As no brokers changes your orders because they consider that it is your responsibility to take into account the split, your order is sending to the market with a limit at 30.

Is it clear why it is so important to catch this information ?
profile picture

Eugene

#81
Thank you for the explanation: the rationale is undoubtedly valid.

Unfortunately, the aggregate table that in theory could be used for grabbing and caching the upcoming split data, does not contain the year of an ex-date. I'm opposed to parsing the individual page for a symbol e.g. HSFT because of its slowness, and still, this is no good too: at the moment, the ex-date is shown as "1-Jan-00" which is totally inaccurate and therefore even worse.
profile picture

abegy

#82
I agree with you that you found another bug in the source. But if you look the aggregate table, you have wrong data only in 2 cases (the two first lines). it is less than 2% (regarding the fact that there are 104 symbols inn the page).

You don't have the year but it is very simple to find it necause you took the page for all upcoming events (in the next 3 months). For this reason, you know that the year is 2012 (compare with the current date) and find that Jan can be only for 2013.

As you will understand, I prefer to loss money in 2% of cases instead of 100% at this time as I don't know when the split is applying.

profile picture

Eugene

#83
When it comes to data, I'm not going to make assumptions. This means no more data from earnings.com is considered except next projected earnings date. Sorry.
profile picture

Eugene

#84
What's new in Community Components version 2012.12+:

* New: Added GetAllDataForSymbol method - to alleviate the absense of "lead bars"
* New: Added GetNextDateFromEarningscom function (requested by abegy)
* Change: (internal) upgraded HtmlAgilityPack to its latest .NET4-powered version 1.4.6

NOTE! Upgrading Community Components to latest version is a MUST if you use version 2012.12 of ANY of these data providers: Dukascopy, MS123 Extra Fundamental/News, Morningstar !
profile picture

Eugene

#85
ATTENTION

With the earnings.com website acquired by Reuters and the subsequent demise of their earnings data feed, the GetNextDateFromEarningscom() method is broken beyond repair. We're removing this function call in a new update of Community.Components.

UPDATE

As advertised, the broken GetNextDateFromEarningscom() method has been removed starting from version 2013.07.

UPDATE 2

As the data feed has been discovered at fulldisclosure.com, the GetNextDateFromEarningscom() method is now restored in version 2013.07.08.
profile picture

Eugene

#86
What's new in Community Components version 2013.08:

* New: ZigZag class (simplifies creating, plotting, and indicator creation for strategies that require a zigzag method)
profile picture

Eugene

#87
ATTENTION

As fulldisclosure.com is not loading right now, it appears that Reuters has pulled the plug on this domain too. Should this change turn out permanent, GetNextDateFromEarningscom will leave C.Components - now for good.
profile picture

Eugene

#88
Update summary 2013.12 - 2014.07:

* New: Upcoming stock splits (UpcomingSplits class)
* New: Upcoming spinoffs (UpcomingSpinoffs class)
* New: GetNextEarningsDateFromYahoo method (self-descriptive)

* Fix: "Interacting Dynamically with Portfolio Level Equity" stopped working in WL 6.6 due to an internal change
* Fix: "Interacting with Equity Curve" to handle external symbols (thanks leszek)
* Fix: "Interacting with Equity Curve" to handle fundamental data
* Fix: "Google Trends" stopped working due to a change at Google
* Fix: GetNextDateFromEarningscom stopped working due to data feed change
* Fix: EarningsDate.InRange function when bar near the end of the chart. Specifically, the function was not working consistently for bar > bars.Count - barsBefore - 1.

* Change: (breaking change) IPOData usability improvements (easier calling convention, auto-reload every 30 days)
* Change: (breaking change) Classification - usability improvements (easier calling convention, auto-reload every 90 days)
* Change: SimTradeFile methods renamed to ImportHistoricalTrades (doesn't affect existing user code i.e. backward compatible)
* Change: Requires Wealth-Lab 6.6+
* Change: Modified TradingDaysBetweenDates so that it returns a negative number of days if the first date parameter, dt1, falls after than the second date, dt2. Previously, the function returned 0 for this case.
* Change: parallelized IPOData class for faster speed
profile picture

abegy

#89
Hi Eugene,

Is it possible to create a similar function than "Get symbol data from Finviz.com" for Morningstar stocks where we can access :
- Sector
- Industry
- Stock Type
- Stock Style
- Fair Value Estimation
- Morningstar rating

All theses data are available on the "Company Profile" page for a stock.

Thanks a lot
profile picture

Eugene

#90
Hi Alexandre,

As you noticed we already have "Get symbol data from Finviz.com" that does its job well. Even then, there's no feedback and I'm not sure if somebody is using it. So it's safe to assume that what you're looking for is essentially a single-user solution to query for sector/industry data of international (European) symbols. But before I consider to dedicate time and effort, let's wait if there's more community demand for it.
profile picture

abegy

#91
Thanks Eugene. As you remember, I requested the Morningstar extension because this is the only data provider available for international traders where you are able to mix Fundamental and Technical analysis.

It's that why it would be great if you can add another feature to give us additional data which are important to extend possibility of fundamental analysis.

I don't know if others WLD traders are trading only with Technical analysis but I hope that I'm not the only one in the world which mix both ;-)
profile picture

Eugene

#92
What's new in Community Components version 2014.09:

* New: GetFundamentalNames method (requested by LenMoz)
profile picture

LenMoz

#93
Thanks, Eugene! Exactly what I had in mind.
profile picture

Eugene

#94
Hi Alexandre,

I doubt that the method you requested ("Get symbol data from Morningstar"), seemingly a single-user solution, would bring real value to the extension. However, we're customer-friendly and I decided to include it in next release of Community Components.
profile picture

abegy

#95
Thanks a lot Eugene.
profile picture

Eugene

#96
What's new in Community Components version 2014.10:

* New: "Get symbol data from Morningstar" (requested by abegy)
* Fix: Export2ASCII minor fixes
profile picture

Eugene

#97
What's new in Community Components version 2015.03:

* Change: due to depreciation of Finviz export capability, decommissioned FinvizData class and withdrawn support for Finviz source in EarningsDate
* Change: requires .NET 4.5 Framework, Wealth-Lab 6.8 or higher recommended


Attention:

All methods that delivered Finviz data (earnings, company info) have been removed from Community Components ver. 2015.03. They no longer work after a Finviz website redesign killing the data export feature.
profile picture

Eugene

#98
What's new in Community Components version 2015.04:

* New: GainAndDrawdown class calculates gain, max drawdown, total return, gain after the drawdown low for a specified chart range
profile picture

EvgeniyNi

#99
Sorry, what kind of indicator in Screensshots (Community Components library ) :

http://www.wealth-lab.com/handlers/ImageHandler.ashx?id=471
profile picture

Eugene

#100
This is DrawLinRegChannel study, based on the linear regression indicator.
profile picture

EvgeniyNi

#101
Thanks :-)
profile picture

Eugene

#102
What's new in Community Components version 2015.07:

* New: GetDataRange
* New: Ability to import own trade history from Wealth-Lab's Accounts tool in "Import Real Trades" for performance visualization (requested by abegy)
profile picture

Eugene

#103
Community Components version 2016.02 is a maintenance release fixing a bug:

* Fix: "Interacting with portfolio equity" could fail in WL 6.8 or higher
* Change: GetStockScouter depreciated
* Change: possible to install/update in Wealth-Lab 6.8 or higher
profile picture

Eugene

#104
What's new in Community Components version 2016.03:

* New: DataSeries.HighestOfTwo & DataSeries.LowestOfTwo extension methods (aka Math.Max & Math.Min for DataSeries)
profile picture

Eugene

#105
Community Components version 2016.04 is a maintenance release fixing two bugs:

* Fix: bug in PriceVolumeDist with incorrect summation of last bar's volume vs. volume for lookback period (thanks bgood)
* Fix: bug in ExecuteDonorStrategy: "Interacting with Equity Curve" always applied default percent equity value (thanks jaredm)

Thanks to the community members who found the bugs and submitted the fixes!
profile picture

Eugene

#106
What's new in Community Components version 2016.05:

* New: methods IsATradingDay, MostRecentTradingDay and GetRemainingTradingDays overload to account for U.S. market holidays (Cone)
profile picture

Eugene

#107
What's new in Community Components version 2016.08:

* New: new class ECBKeyRate that gets the historical data of key interest rate by European Central Bank.
* New: UpcomingSplits class to fall back on Nasdaq Upcoming Splits page should both Yahoo and Briefing fail
profile picture

Eugene

#108
What's new in Community Components version 2016.12:

* New: added RoundToNickel method to support the SEC pilot program for stocks with $0.05 tick value (Cone)
profile picture

Eugene

#109
What's new in Community Components version 2017.01:

* New: StockTwitsAPI: support returning twits timestamped by date (requested by sedelstein)
profile picture

Eugene

#110
What's new in Community Components version 2017.02:

* Fix: ImportHistorical methods for non-US decimal locales (Cone)
profile picture

Eugene

#111
What's new in Community Components:

2017.07
* Change: ApplyAutoStops changes:
1. Reversed ActivePositions loop
2. Time-based exits in script codes should now be increased by 1 bar to match previous results. Fixes problem that 1 or 2 both exited on the next bar. Now '1' will eixt on the next bar , '2' is 2 bars later, and so on.



2017.05
* Fix: AutoStops produced incorrect trades if applied in concurrent Strategies.
To fix it, call OnProcessingComplete() outside of the trading loop (i.e. as a last method in your Strategy).
This is a MUST HAVE update for anyone using AutoStops.
* Fix: UpcomingSplitDownloader: breaking change at Yahoo, minor changes to Briefing and Nasdaq parsers
profile picture

Eugene

#112
What's new in Community Components v2017.09:

* Fix: Partially restored Google Trends - to Monthly data without authentication
* Fix: IPOData stopped returning new data after 2015. Added new datafeed to support data from 2016 onwards.
* New: GetMode, GetMode2 return the mode WL is being executed i.e. Single Symbol backtest, Multi-symbol backtest, Strategy Monitor (thanks vladl2015)