Our research is closely oriented to generate the highest profit with the lowest volatility, rather than to predict prices themselves. 
We use Microsoft Excel as the main developing tool. This allows to get fully operational trading systems easily and quickly, modifying and optimizing them with little or no coding at all.
Prototypes are also highly readable and can be converted, if needed, using dedicated tools or more powerful programming languages for higher performances.
A very simple approach to get maximum smoothness of the equity line, thus optimizing the earning vs risk ratio, is stacking. Stacking means that rather than searching for the best ever trading system, you can simply operate multiple systems together, taking a position only when all of them "agree" about it.
Here is an example of a stack composed of three trading systems on the EUR/USD exchange rate. Each of them generates a sequence of long-short signals, resulting in a continuous presence in the market. Stacking the systems, we obtain a non continuous presence in the market (red line). In the second image, each blue and red square dot corresponds to an invested day.
EUR/USD exchange rate - 3 stacked trading systems (click to enlarge)



EUR/USD exchange rate - 3 stacked trading systems - signals (click to enlarge)



One of the worst issues about adaptive systems is the expectations bias. Selecting a system according to test set results often causes bad performances when tested in real trading. A quite good solution consists in the iteration of the whole selection process along the time series. This means that the genetic selection is repeated during the test at regular intervals of time.
Iterative test result on EUR/USD exchange rate (click to enlarge)



It is a hotly debated topic whether a trading system can be optimized to avoid drawdowns. In most situations, to achieve this goal requires to "short" the system itself, reversing the sign of signals: a solutions that seems counterintuitive.
To try overcoming this issue we adopt the concept of "synthetic securities". We split the system in two. The first takes as input the asset prices and produces an equity line, containing the drawdowns. The second system treats this equity line as a new security, and is trained to correct drawdowns.
Example of synthetic asset (green line) build on EUR/USD exchange rate (click to enlarge)