Friday Mar 16, 2012 at 08:05 PM
| Posted by:
clayb
| Category:
WPF
By Clay Burch
The U.S. stock markets have been on a tear for the first two months of this year. So far in January and February of 2012, the annualized performance of the Dow Jones 30 Industrials is up by a third, the S&P 500 Index is up by a half, and the NASDAQ index is up an amazing 75%. All this action has been more or less straight up, which is amazing if you recall the disturbingly volatile year, 2011, that has just concluded when there seemed to be random moves up and down of 2% or 3% almost daily. Such activity reinforces the notion that one way to make (and possibly lose) money is to invest in stocks. This leads to the question how do people decide what to buy or sell when they decide they want to invest their money in equities.
Generally, there are two schools of thought on how to make these market decisions concerning what companies to buy or sell. One way is to look at the fundamentals of a company including such concrete accounting information like profit and loss or debt, as well as business expectations such as projected market share, projected market growth, industry expectations, etc. This approach to investing is called the fundamental approach, and people who use this type of analysis are called fundamentalists. The second approach to making investment decisions is called technical analysis. Technical analysts study price and volume charts along with other charts computed using calculations based on price and volume. The idea is that all the vital information concerning the prospects of a company are reflected in such charts, and buy and sell decisions can be made solely by studying such charts.
To read more about the justification and history of technical analysis, please check out my SimpleTalk article. It discusses the rationale behind technical analysis in a simplistic manner. Also, the origins of technical analysis from the late 1800s as well as the impact that personal computing innovations have had on the technical approach are discussed. Additionally, the article discusses how some of the price and volume indicators are computed and interpreted, showing charts of such indicators. As with most technically inspired disciplines, technical analysts have their own techno-speak with terms and shorthand like momentum, RSI, and MACD. The article also sheds some light their meanings.
Syncfusion is contributing to the computing support of technical analysis in its Essential Chart for WPF product. This product supports technical market analysis through its ChartTechnicalIndicator class. You can check out the use of technical indicators in the Chart Technical Indicator samples that are included in the free trial version of Syncfusion’s Essential Studio.
Wednesday Jul 27, 2011 at 08:18 PM
| Posted by:
clayb
| Category:
ASP.NET | Windows Forms | WPF
Syncfusion’s Windows Forms FAQ played a significant role in introducing Syncfusion to the .NET community. Both Syncfusion and .NET were new in 2001 and 2002 as Syncfusion was building its first products. Early on, it was decided that one way to publicize the Syncfusion brand was to produce a FAQ that would serve as a resource for the .NET community. FAQs for earlier technologies, such as MFC, had served to bring people to websites and generally reflected positively on the company that sponsored such efforts.
Syncfusion was working exclusively with Windows Forms at the time, so doing a Windows Forms FAQ was a no-brainer. The Syncfusion technical team worked on a core of a couple of hundred entries to provide the critical mass for the FAQ. The source of these entries was the knowledge our team had gained as we developed our Grid and Tools suites.
After the initial push to go live, it quickly became obvious that the online forums and newsgroups were an endless source of new questions and information that we could include in our FAQ. So, I got into a pattern of checking various newsgroups many times a day. As new questions were posted, I quickly decided whether a question would lead to a FAQ entry or not. If so, there was a rush to find a solution, prepare a FAQ, and then get it published to our website before anyone else could respond to the new question on the message board. We actually had an infrastructure available to complete the whole process in only a few minutes.
It became a game for us to see how fast we could go from seeing a question in a forum to posting a “FAQ” solution to the forum thread. We tweaked our FAQ writing and FAQ publishing infrastructure to facilitate responding to forum questions with scripted text referencing FAQ entries. The major piece of the required time was actually solving the issue and verifying it. Once that was done, we could produce and publish a FAQ entry with code snippets and samples to our website in less than two minutes. In some cases, less than 10 minutes after a question was posted on a newsgroup, a response was added to the thread saying you could find a solution in the Syncfusion Windows Forms FAQ .
We have both anecdotal evidence and real evidence that our Windows Forms FAQ was successful beyond our expectations. Because of its success, Syncfusion has since published additional FAQs on ASP.NET and WPF. The Windows Forms FAQ certainly provided major traffic to our website in the early years. Last year, I was having dinner with a group of people from a large Indian consulting firm. One of the senior consultants for the company had this to say: “When I hear Syncfusion, I think of your datagrid FAQ. Whenever I wanted to know how to do something with a datagrid, I found it there. I owe my career to that FAQ.”
Tuesday May 26, 2009 at 01:56 PM
| Posted by:
clayb
| Category:
WPF
In .NET 2.0 and Windows Forms, you can invoke an asynchronous call to a method with no arguments using code like:
myControl.BeginInvoke(new MethodInvoker(AnotherMethod));
In .NET 3.0 and WPF, the equivalent code would be:
myControl.Dispatcher.BeginInvoke(new Action(AnotherMethod), null);
One place asynchronous calls are useful is in event handlers. In an event handler, you can make an asynchronous call to initiate actions that take place after all event listeners have completed their work. There are many situations where being able to perform an asynchronous call allows you to do things with minimal additional coding.
One example of the usefulness of asynchronous calls can be seen with Essential Grid. GridControl exposes an event, CurrentCellStartEditing, that allows you to catch the action of the current cell starting to edit. You may want to catch this action so you can position the cursor at a certain position in the text. But, when you try to implement this behavior in the event handler, the GridControl code that raises CurrentCellStartEditing later resets the cursor position according to the property setting. This subsequent action undoes your work of specifically setting the cursor position. One way around this problem is to initiate an asynchronous call to a method that positions the cursor on the current cell where you want it to be. In this manner, your positioning code is executed after the grid’s CurrentCellStartEditing code has completed, allowing your cursor position to take precedence over the position set by the GridControl.