SigmaR: Hurst Cycles Expert Advisor for Metatrader, January figures


Evening all,

As some may know I have been beavering away in MQL creating an expert advisor to trade for me intraday. I felt I needed something that was more precise than what was offered in prorealtime. The C++ based language in MQL was pretty good.

Inspired by the recent comprehensive MT4 hurst cycles plugin by the Sentient Trader team I set to work. Bear in mind this bot has no ability to extract waves spectrascopically at the moment (and possibly never will). It simply trades the FLD much better than a human can at the intraday level, for the most part. It can trade any FLD you wish and as many as you wish (given no chart limit). I have initially developed it to trade on the 1 minute chart of the DAX as that is my favourite instrument to trade. I will be configuring it to run across all other instruments in due course.

It is currently at a beta stage of testing but I already run it on a live account. I have written a more in depth post at my blog showing some results of back and forward testing for January this year. I hope you find it interesting and I welcome suggestions.

Here is the link SigmaR Hurst Cycles EA January Results




Those results are very promising. The profit factor on the 15 min is extremely impressive. I think you are definitely on to something here.

If you need any volunteers to help test it, please consider including me.



Thanks Greg, I will compile a list of Hurstonian practitioners who would like to test run the bot!




This is great. Very impressive. Just to clarify, profit factor is not based on the number of trades but is the total profit over total loss. It doesn’t really matter, but what is the success rate? Some people care about those things. As we know, positive expectancy is the key.

It doesn’t seem overfit at all but a walk-forward analysis plus applying the same approach (with modest parameter tweaks) to other instruments will really give you confidence. Keep us posted on the results.

What will you do with all your free time?:blush:



Yes thats correct Curt regarding the profit factor. I have definitely tried to avoid any kind of curve fitting and stuck to the ‘big guns’ of profitability for an FLD trading system, namely a trailing stop, volume analysis and minimum targets. Any further tweaks may give smaller gains or a ‘polish’ to the system.

Further tweaks include:

  • Correcting the TP to the actual T2 level calculated by the MEDIAN price cross. At the moment it is not quite correct as per Hurst’s stipulation because I cannot wait for a median price cross without losing a good chunk of a move, especially with a spread involved, even at a tick resolution. That should be easy to implement.
  • Angle of FLD/Rate of change. This idea is based on my observations that after a strong price move up or down there follows a FLD cascade. Usually this can signal a large contrary move which can be exploited by increasing the weighting of risk for a trade when the Angle/ROC reaches an optimum level.
  • Precision entry when angle is steep. Very occasionally I have observed that price may gap over the FLD and the ASK/BID straddle I am using for entry. I envisage a millisecond based entry method that simulates the FLD over that short period to gain an optimum position.

There will be general tarting up of the EA too with some visual stuff to illustrate open trades/account balance/broker info etc.

I aim to have it ‘universal’ by the end of March I think. Looking forward to testing on some of the forex pairs. All being well I will post ‘live’ trading results at the end of February.

God knows what I will do! Hopefully help some others with similar mindsets! :smiley:



Hi David those results look great! Look forward to seeing how it develops


Hi David !..compliments for your results…if you include me in your list, I am available for an extensive backtesting…I suspect your results are just curve fitted but without further analysis I can’t say that for sure…please, include me in your list for testing your bot…


Hi Marco,

While it is possible there is a degree of curve fitting I have been using a similar approach live on PRT for many months with a fair degree of success. A move into MT4 was required for the added efficiency of the C++ based language and the tick based resolution. In addition forward testing is always essential to avoid curve fitting and it was done extensively on the January data presented.

The principle of variation will require adjustments to the parameters (FLD shift etc) from time to time but oscillations around the nominal average are small enough to be mopped up by the trailing stop, volume profile and minimum target variables.



Hi David,

I have been following a similar path (MT4 EA) since November. I found I had to look outside pure Hurst and add additional signals (in part inspired by Christopher Grafton treatise on Hurst) and in the end have implemented some traditional indicators to help firm underlying trends (which seems to keep the EA out of trouble). Maybe worth a look.

Are you just using FLD/projections for trading decisions (and a version of dynamic RRR for exit management?). Your results look more promising than mine - but still very much work in progress.




Hi Lex,

I have considered other indicators but really have had no need to include them at this point. I guess you might call the volume profiling an ‘indicator’ - I just call it trade management. The following keep SigmaR out of trouble in its current iteration:

  • Volume profile
  • Minimum targets
  • Optimised trailing stop
  • Trading Schedule

I am investigating whether the angle of the FLD (on trade entry) plays a part in the achievement of targets at the moment. It is quite interesting.

I may consider an oscillatory indicator in future testing, RSI etc.



Hi David,

Likewise use minimum targets (“Practical Upside”) and optimised trading. Project/vector speed was definitely very useful and seems to be a good way to exclude news driven events (if that is what you want). I have also been experimenting with distance to previous crossing points to filter out instances where the FLDs converge with price (and each other).

As I work only with limit orders - I also have a time expiry based on the current trading cycle and cancel a working order if not filled within the cycle framework.

I had deliberately not included a schedule (due to Forex) but think there would be a benefit as the bad signatures happen mostly in inactive times.

I use Andrew Cardwell’s approach to RSI - after all he is “Mr RSI” :wink:


// Vector details
datetime ExpiryTime;
double Speed; // Price/time
double Upside; // abs(TargetPrice-CrossPrice)
double PracticalUpside; // Upside based on next bar entry
int Length; // Bars in projection
int Bars2PreviousCP; // Clearance from previous CP (crossing point)

// Dynamic RRR
double PlannedRRR; // At onset of trade
double CurrentRRR; // At close previous bar
double RealisedRRR; // At trade closure


Cheers Lex, always nice to have some code to copy and paste.

Yes I also forgot to mention trade timers. I have one on to mop up any trades that do not trigger trailing stops/targets/stoploss after an optimised amount if time. Gives some benefit.

Can you publish your robot’s performance in Jan?



Happy to publish when I get more consistent results. At present the results are too much like noise and of no benefit to anyone.


PS Whilst the EA works fine, when I try to exit MT4 it is quite often non-responsive. Do you have any issues akin to this? It may well be bad coding on my part.


Is the FLD optimized in or out-of-sample?


Fair enough Lex. What do you mean by non responsive? Are you running DeInit correctly?




The FLD setting is based upon David Hickson’s intraday nominal model, loosely. Further to that it must be tuned to the particular market. In my testing this tuning does not deviate from the original model settings by much, demonstrating quite nicely the principle of variation

Any variability that occurs day to day affecting T2 targets is mitigated by a trailing stop that kicks in by a similar amount of variation, amongst other mitigating variables.

I hope that helps!



Yes it does. Thanks David.


I have found this week there us a significant profit advantage in analysing the angle of the fld when considering trade entries. I will post more on my blog in due course but the basic concept is as follow:

  1. Draw a straight line from the current bar fld to the forward shift point of the fld, defined by the wavelength/2.
  2. Get the angle of this line. For a buy trade the angle will lie between 90 and 180 degrees. Sell trade between 0 and 90 degrees. Imagine an arc of 180 degrees around the current fld point to help.
  3. Only enter trades at between a range of these angles, obtained by running optimisation tests.

For example in the dax, only sell at between 40 and 80 degrees. Buy between 100 and 140 degrees.



Some really interesting work David, looks like some good results there. I’d be more than happy to help test the ea, and interested to try it in Eurodollar and maybe Aussiedollar, as well as Dax. Does the %TSL kick in immediately or after x pips/profit?


Hi Evagrow,

It kicks in after a specified % gain. I tried several methods of implementing it but found this to be the most profitable. One sets the % gain for it to kick in then it trails behind price by a specified number of pips until it is either hit or the tp is hit.