Fuzzy Logic

Home Up Next


Yahoo Charts


US Markets Daily


Forthcoming Releases:

Fuzzy Logic:

Neural Net:
Release of NXL3


Fuzzy Logic


(April 2008)


Fuzzy logic may sound sexy, complex, the next best thing or else, but despite the vast literature and body of research, it remains a subject at the same time mysterious and yet also relatively easy to approach.  In a nutshell, it consists in using rules written in a natural language i.e. with a capacity to deal with various interpretations or semantics instead of using hard numbers in a purely mathematical way.  There is obviously some easy maths involved in the background but each step "makes logical sense" and in a way FL has less of the "black box" image than neural nets and other A.I. tools, simply  because the front end uses plain looking rules with variables and attributes, such as for intance:
IF StoK IS "HIGH" AND GradientStoK is "Down" THEN SELL.

Anyway, instead of plagiarizing existing tutorials and introductions to Fuzzy Logic, here are a few pages worth reading as an introduction to FL:


as well as 2 pages on this site : Intro + Tutorial and a document FuzzyIntro.pdf
For further reading, a few references are also provided at the bottom of this page.

Of all existing tutorials, one stood out from the rest and inspired me to develop my first FL tools a number of years ago, up to a point of now releasing my simple FL controller library (sFLC3).  I therefore strongly recommend reading the excellent:

Seattle Robotics Tutorial

Here is an extract from Seattle Robotics web site, as well as a MS Word copy of the tutorial.


Our sFLC3 Library

The sFLC3 (Simple Fuzzy Logic Controller v3) is in our opinion an interesting endeavour to simplify problem solving with FL controllers.  Our objective was not only to build a good tutorial tool, but also to design a simple modular design which would be scalable so that complex problems could be solved by a collection of inter-connected FLCs in a Fuzzy State Machine.

Current Version is V3.06 (Final Release).

sFLC3 is built in a form of a Visual C++ object oriented DLL which allows perfectly scalable solutions.  As a comparison, previous release v2.2 was limited to single FLC systems i.e. mostly for tutorial purposes. sFLC3 has been designed with both simplicity and scalability in mind.  The C++ class design is streamlined in order to make FL controllers calculate very fast while remaining very versatile.  We can now indeed  derive our FLC class into new classes to for instance build Fuzzy State Machines, or FL controllers in specific environment such as TradeStation (a test version is already available). 

What can we see already?

A few sample clients have been developed now, as well as a wrapper DLL for TradeStation (beta release), and the best way maybe to learn about sFLC3 is to go through those programs and read some of the available documentation on this site. One sample program is dialog based and explains very clearly the FL inner workings, while the other is a console application which can produce details fuzzy outputs to better assess the response curve of the FL controller, and thereby choosing the best parameters for the problem at hand. The source code is not protected.

Please click here for a short description and screenshots of sFLC3.
Please click here for a detailed description and screenshots of sFLC3.
Please click here to download demo application (valid until end June 2008)
Please click here to download sample console application (VC++ source code, valid until end June 2008)

Please click here to read introduction document on our previous SimpleFLC v2 (v3 doc also now available).


So, what's in the pipeline now?

First to come is the commercial release of "FL for TS" wrapper, and provide more samples to build more complex interconnections of FL controllers into complex systems. We will then eventually implement Ward Systems GeneHunter (or possibly our own GA code) to it to be able to construct optimal complex systems automatically. 

This expansion path will remain easily accessible thanks to our simple system design: a sFLC3 module can be driven with about 5 criteria (individual) and less than 10 when inter-connected into a complex fuzzy framework.  Such concise model will also be critical to overall performance.

Lastly, time dependent modeling, fuzzy events, etc will be added in a wrapper class to be able to provide a Fuzzy State Machine (planned release early 2009)


Who is this sFLC for ???

Right now, SimpleFLC is primarily targeted at C++ developers who wish to implement simple, efficient fuzzy logic into their VC++ code, but it will also be of interest to anyone who wish to learn about fuzzy logic controllers.  In this latter case, it is recommended to study the Seattle Robotics tutorial, and experiment a little with our SimpleFLC. SimpleFLC is not specifically related to any trading application.  Developers should obviously know how to import a DLL into their code (DLL, Header, LIB and EXP files available).

With the release of the TradeStation interface, a lot of traders will have a great tool to build superior trading strategies, and with the addition of GeneHunter, it should hopefully give competition a bit of a headache.

The release of the TradeStation interface is ready for release, but is not pushed commercially until we find time to write some documentation and to build indicator samples (a template is already available).

What is available right now??

Besides the sFLC3, a shareware version of our (older) VC++ classes (and executable) is still available for free download (v1.9).  The V2.2 source code will be released as soon as v3 is available commercially.  sFLC3 DLL source code will also be made available on a strict license basis. 

The client application is "open source" to show how easy and fast it is to build a sFLC3.  A dedicated introduction page can be reached here.

For more details about SimpleFLC, we recommend you read the following documents written for sFLC V2.2 but still quite valid:

contact info@foretrade.com for any question. 



Besides Steven D. Kaehler we should be grateful for writing such a self-explanatory hands-on tutorial, we must not forget 2 components we've been using in our sFLC3 client application: NTGraph and GridControl.  We would therefore like to thank the CodeProject people for their great site, and particularly Nikolai Teofilov and Chris Maunder for their contributions.

The GridControl is embedded in the source code of the sFLC3 client application. NTGraph needs to be however installed on the target computer.  The setup files available from the Download section do include the NTGraph and automatically register the OCX component (ActiveX). The source files and OCX can however be downloaded separately: OCX Source



Besides the FL newsgroup, we recommend these 2 e-books for more details:

“Fuzzy Control,”
Kevin M. Passino and Stephen Yurkovich, Addison Wesley Longman, Menlo Park, CA, 1998 (later published by Prentice-Hall).
http://eewww.eng.ohio-state.edu/~passino/FCbook.pdf (very good!). 
If the link is broken, a copy is available on this site.

“Fuzzy Logic: a Practical Approach,”
McNeill, Martin and Ellen Thro., 1994 Academic Press Professional.

An introduction to FL with simple BASIC implementation can also be found at : www.fuzzy-logic.com

An archive of the FL newsgroup FAQs can also be found at: http://www.cs.cmu.edu/Groups/AI/html/faqs/ai

What is now available?

Click here for details on our latest FLC offering

Home Up sFLC3 TUTORIAL REFERENCES ON THIS SITE Best viewed with MS Internet Explorer 5 and above

Page last modified: May 08, 2008
Copyright © ForeTrade Technologies 21st century and thereafter