During the past few days I have received several emails from people interested in the tools we have available for system development and testing at Asirikuy.com. However there seems to be a wrong understanding about what our tools do, how they work and what they can achieve for you as a trader. For this reason I wanted to put together a simple FAQ about the F4 framework and other Asirikuy tools within the blog so that people outside of our community can get a better idea about what our community has to offer regarding system development tools. Through the following post I will answer some of the most common questions I have received regarding our trading framework and testing programs but do feel free to ask any additional questions you might have within the comment section.
What is the F4 framework?
It is a cross-platform programming framework written in ANSI C/C++ that simplifies the building and trading of simple and complex strategies for the Forex market. The F4 framework includes libraries for time correction (proprietary implementation), machine learning (Shark, FANN, Waffles), technical analysis (TA-lib), charting (ChartDirector), image processing (DevIL), web interfacing (curl), genetic optimizations (Gaul), etc. The F4 framework is paid open source. This means that you need to buy the right to use the framework – by joining Asirikuy – but after this you have access to the whole source code.
Why should I use the F4 framework?
The F4 framework provides you with a development environment that is completely unique in the FX trading world. While there are a lot of open-source back-testing and system development libraries available (for example pandas in python or quantmod in R) there is no open-source library that matches the capabilities of the F4 framework for FX system development and live trading. The F4 framework allows you to develop strategies in the same code that you use to live trade them, it allows you to trade the same code live on a variety of front-ends and – most importantly – it includes code to perform absolutely necessary time refactoring corrections that are a unique need for the FX market. With the F4 framework you will never have to worry about whether your back-testing data has the same GMT shift or weekly opening/closing times as your live trading data, all these corrections are done automatically by the framework, giving you access to internal OHLC data that is as broker independent as possible.
Why isn’t it free?
The F4 framework and Asirikuy tools aren’t free because it is a lot of hard work to build/maintain/improve a professional programming trading framework. The fees paid to join Asirikuy (which gives people access to the framework and tools) allow me to have the necessary time to keep the framework at a level that is highly professional and as bug free and robust as possible. By having a paid implementation I can dedicate a lot of my time to this programming framework which benefits all of its users. Additionally I can also use this money to buy powerful commercial libraries (such as ChartDirector) that allow its users to develop more powerful and flexible solutions. The F4 framework is aimed at professional traders who value the work that needs to be put into such implementations.
How are systems built in the F4 framework?
You code your system within a C file inside the F4 framework, you then compile the framework and generate a library file which you can use to execute your strategy on any given front-end that has been created for the framework. Your system can be coded in C or C++, whichever you prefer. The F4 framework is self-contained, a single libary file – a DLL in windows – is produced. The production of a single library file containing all your systems and their library dependencies gives additional reliability and reduces problems due to dependencies, etc.
How are these systems traded?
The F4 framework library file can be accessed by several different front-ends, which are the ones responsible of the interaction with the broker. The front-end gets information from the broker, sends it to the F4 framework and executes any commands given back by the F4 framework. We currently have front-ends available for MT4, MT5 and the cross-platform Asirikuy Trader (a python trading platform we developed) that allows you to trade your systems in JForex or the Oanda REST API. This means that you can code your systems once in F4 and then trade them in a variety of different platforms. You can also back-test your systems through these front-ends as well (MT4, MT5, NST).
Do I have to use a given compiler/IDE to build the F4 framework?
No. The F4 framework project files are built with premake4 so you can compile the framework using a variety of different IDE and compiler options. In general we use Visual Studio 2010 to compile the framework on Windows but we use gmake to compile the framework on MacOSX and codelite to compile the framework on Linux (gmake and codelite both use the gcc GNU toolkit). You can also potentially use GNU tools to compile the framework on Windows using codelite if you wish to do so.
What is the New Asirikuy Tester (NST) ?
This is a program we developed in python to carry out back-tests of our trading strategies. The NST uses the F4 library file created using the framework to access your trading strategies and carry out back-tests outside of MT4. The NST is cross-platform implementation that allows you to run back-tests in MacOSX, Linux or Windows. In this way you can make your back-testing completely independent of MT4 and the Windows platform. In addition to this the NST supports custom genetic optimization, openMP (multi-core) and MPICH (Multiple computer) back-tests. With the NST you can optimize a system using all your computer cores and even a computer cluster (if you have access to one). The NST also allows for multi-instrument back-tests, portfolio back-tests and other types of simulations outside of the scope of MT4. The NST also uses accurate historical swaps derived from historical interest rates within its simulations. Bear in mind that the strategies are NOT coded in python, they are coded in C/C++ within the F4 framework library file. The NST source code is also available to Asirikuy members so you can add any functionality you might want that is not currently present.
What are the limitations of the NST ?
The NST can carry out back-tests down to tick-by-tick resolution. However there are some limitations dealing with the building of portfolios or when using data from multiple symbols. When building a system that uses data from multiple symbols (for example testing a system on the EUR/USD using GBP/USD data as well) the data for these two symbols needs to have matching timestamps to ensure accurate testing.
Can I use my MT4 strategy with the NST ?
No, the Asirikuy Strategy Tester only works on strategies coded within the F4 framework. If you want to use our strategy tester you will need to convert your strategies to the F4 framework.
Can I create systems using R ?
Currently the F4 framework has a working R interface only in Linux/MacOSX (due to some compiler issues with the R headers for the R-C interfacing libraries in Windows). You can test/trade systems using R within a Linux/MacOSX environment if you wish to do so. However we week to be able to build the R interface in Windows in the future as well.
Can I use the F4 framework and Asirikuy tools to develop/test/trade outside of MT4 ?
Yes! The F4 framework allows you to develop trading strategies in Linux/MacOSX. You can test the systems using our New Asirikuy Tester (NST) and you can also live trade these implementations using the Asirikuy Trader. Right now you can trade in JForex or the Oanda REST API, so effectively you can have a complete live trading experience outside of MT4 using the F4 framework and Asirikuy tools.
What sort of system can I develop in F4 that I cannot easily develop in MT4 ?
There are many system implementation that are easy to put together in F4 that would be a complete nightmare to implement in MT4/MT5. For example you can create a machine learning strategy that re-trains on every bar using the past N bars of market data. Doing this in F4 is a matter of using one of our machine learning libraries, passing it the data received by the framework from the front-end, train it and get a prediction. You can then obtain a back-test for a constantly retraining machine learning system. In MT4 this is extremely difficult to implement and would probably take someone many months to do. In F4 this can be done in a small fraction of the time. We have several tutorials pertaining to system creation within the Asirikuy community, some of which contain machine learning examples.
I hope the above answers some of the questions you might have about the F4 framework and the tools that are currently associated with it. By joining our website (Asirikuy.com) you’ll obtain access to the F4 framework’s source code as well as the source code for all of the above mentioned tools. With the F4 framework you can trade using an open source implementation which is completely transparent to you. With our tools you can hopefully take your system development to the next level :o)