AmiBroker is so versatile, that it allows users without IT background or sophisticated programming skills, achieve very interesting results. Let me show you an example of using newly introduced ( AmiBroker 6.17 ) functions: InternetOpenUrl() and InternetReadString(). I haven't seen any implementations of these functions yet. They opened a wide area of application. Now we can easily combine in one AFL data coming from technical and fundamental analysis and news flow from many different sources. I show two examples of using AmiBroker for Web scraping (data extraction). Who would guess that Amibroker is really good for that? Instead of using specialized software (or in addition to it) everyone can quite easily extract any data from a web page. An RSS like news stream can be created from web pages which does not provide this functionality. Downloading a html code, processing it and displaying the results usually takes fractions of seconds. The limiting factor here is the responsiveness of the server hosting a web page. No unnecessary information, no ads (much less processor overhead) - just raw data that someone needs. Usually you don't even have to download the whole html code - you can stop at the line which contains the last information you need. Here I present the data collected from one of many investment forums and two investment newspapers' web pages. Thanks to the auto-repeat function, data can be downloaded/updated regularly and user can be notified about new messages, articles etc. by an email, SMS, speech synthesis or in any other way. A very useful feature for a news-trader like me
I still use specialized software to extract data from more sophisticated news sources which requires logging and authentication but AmiBroker became a great and a very light tool for most typical uses.
The results are presented using AddRow() - another interesting function which was introduced not long time ago. I only wish it could be possible to color/highlight some rows so they can stand out from others (similar to AddColumn() and AddTextColumn()). Maybe Tomasz considers expanding AddRow() function in the future. In this case I used "#" and "-" in a separate column to mark the newest messages.
First example. The source: Forum. Extracted data presented in Exploration output:
Second Example. The sources: PB and Parkiet Data extracted from two sources combined and presented in one Exploration output:
Because @Tomasz wrote in some other post, that "only 1 person per 100 sends something else than complaints and his batteries are running out" I wanted to show that there are many users who appreciate his hard work, dedication and the great software he creates.
I hope we see some other examples from other users soon
ps. This is my first post on the new Discourse forum and I think it is a great place for exchanging views and seeking other users' help.
Best regards - MiĹosz