Salve a tutti,
here are the links for the first backtests of Crescendo 1.4 beta version that the beta testers are using.
The tests are made on a $10.000 account starting with 0.3 lots.
They are made using Dukascopy tick by tick data (so backtesting quality is 99%) for the years 2009 and 2010. I’m doing them for 2007-2008. Can get back more than that as Dukascopy doesn’t have tick by tick data before 2007. The spread used is 2.5 pips and the EA automatically stops trading in low volume periods (read more in the options description section).
The first backtest is made WITHOUT compouding (GAIN: +244% with a Max floating draw down reached of 19%):
The second one is made WITH compounding (GAIN: +475% with a Max floating draw down reached of 25%):
Remember that we are starting with 0.3 lots on a $10.000 account (the equivalent of 0.03 lots on a $1.000) that is 3 times (!!!) more that the actual suggested maximum lot size and we are keeping the floating DD below the 20% (no compounding) and below the 30% (with compounding).
Here follows a description of the main options of the new version. Remember is still a beta and something can change in the final version, also the default settings here are those for GBPUSD pair:
those are the username and password used to login to the download area
initial_balance = 10000;
this is the initial balance or the balance that the EA should use to trade. By default is $10.000 (and not $1.000) for this beta version only.
this is the minimum amount of pips of distance from the last open order.
daily_range_order_step = false;
dros_days = 20;
dros_factor = 3;
this options let the order step be based on the average daily range (difference between the highest high and the lowest low) of the last “dros_days” days. So by default it’ll calculate the average daily range of the last 20 days and divide it by “dros_factor” (by default 3). This will be used as the order step. That way the order step is automatically adapted to the volatility of the period. Be careful when using this options in backtests as it requires you to download the historic daily data to work well.
target_profit = 120;
this is the target profit in US dollars (!) that all the orders must reach to close them. By default now it is $120 and not $40 as by default on a $10.000 the maximum suggested lot size is 0.3 lots (see below) and not 0.1 lots. That means that with this settings the EA is expected to be 3 times safer than the previous versions. That also means that the minimum requirement to trade it should be $300 (using 0.01 lots) and no longer $1.000.
profit_trailing = false;
trail_start = 120;
trail_step = 60;
if “profit_trailing” is set to true, the target profit is not used and a profit trailing procedure is used instead. The trailing will start when the “trail_start” value is reached and the orders will be closed if the profit “retrace” of “trail_step” value from the highest profit value. So by default when the profit reach $120, if the profit come back to $60 all the orders are closed. But in case the profit continue to increase and reach for example a maximum value of $200, the orders will be closed when the total profit value retraces to $140 (200-60). All the values are in US dollars (!).
frequency_note = “0 – always; 1 – every hour; 2 – every 3 hours”;
frequency_noteb = “3 – every 6 hours; 4 – every 12 hours; 5 – every 24 hours”;
frequency = 3;
this is the frequency used for the market check. The default frequency now is 3 (every 6 hours) and no longer 4 as the filters we are applying to orders opening will lower the number of orders.
dd_based_frequency = False;
dd_step = 1;
this option will make the frequency to be “automatic” and increase/reduce based on the value of the draw down percent. The “dd_step” will decide the step used to calculate the frequency value.
use_mtf_trend = True;
trend_threshold = 3;
This will let the EA trade by using the trend score coming from the direction of 5 Hull Moving Averages. The “trend_threshold” is the minimum magnitude score to enter a trade. By default it is 3 meaning that a trend score of +3 or +5 is needed to open long trades, while a trend score of -3 or -5. Remember that there are only 3 levels of magnitude (from the weaker to the stronger): 1, 3 and 5.
trend_timeframe_1 = PERIOD_H1;
trend_timeframe_2 = PERIOD_H1;
trend_timeframe_3 = PERIOD_H1;
trend_timeframe_4 = PERIOD_H1;
trend_timeframe_5 = PERIOD_H1;
those are the timeframe of each of the Hull Moving Averages. With version 1.4, by default we’ll use not a multi TIMEFRAME, but a multi PERIOD approach. So the timeframes will be all the same for all 5 the Hull MAs. This is because of some “fault” of Metatrader 4 in managing multi timeframe data both in backtests and when trading live. The multi period approach will avoid that kind of problem giving a much more “stable” trend score.
trend_period_1 = 9;
trend_period_2 = 36;
trend_period_3 = 225;
trend_period_4 = 1225;
trend_period_5 = 4900;
those are the periods of the 5 Hull MAs. With version 1.4 by default we’ll work with different periods instead of the previous default of 10 applied to different timeframes. The value of each period is the power of some number (Ex 9 = 3×3, 36 = 6×6, 225 = 15×15, 1225 = 35×35, 4900 = 70×70) as they are the best to be used with HullMA because of its formula. So if you want to play with them, always use “squared” numbers.
check_for_OBOS_first_trade = true;
check_for_OBOS_additional_trade = false;
those option let you select the oscillators filters for the first trade of a set and/or for the additional traders.
use_stochastic1 = false;
use_stochastic3 = false;
use_rsi1 = false;
use_rsi3 = true;
those are the 4 filter available: the stochastic one is a 5,3,3 stochastic applied to 1H timframe, the stochastic3 is the average of the stochastics using the trend_timeframe1/2/3 and trend_period1/2/3. The rsi1 is the RSI of the trend_timeframe1/trend_period1. The rsi3 is the average of the trend_timeframe1-2-3/trend_period1-2-3
OB_threshold = 60;
OS_threshold = 40;
OB_threshold is the level used as a filter for a buy. If the value of the oscillator is > OB_treshold than it is good for a BUY.
OS_threshold is the level used as a filter for a sell. If the value of the oscillator is < OS_treshold than it is good for a SELL.
I use the oscillators as “momentum” indicators and not really overbought/oversold values (!!).
filter_additional_entries = false;
additional_entries_threshold = 1;
this option give you the possibility to filter additional orders also based on the trend score. If the magnitude of the trend is equal or more that the “additional_entries_threshold” than the additional order is issued. So if for example the first order is a BUY entered with a trend score of +3, the additional orders can be sent only if the trend score of +1 or more.
This is made to issue additional orders when the trend direction of the initial order is resumed.
max_open_orders = 3;
this is the maximum number of total open orders.
close_on_counter_trend = false;
counter_trend_threshold = 5;
if set to true then the EA will close the trade if the trend score reverses in the opposite direction of the initial order with a magnitude of “counter_trend_treshold” value or more.
manual_trend = false;
trendnote = “1 – long; -1 short”;
trend_direction = 0;
those options let you manually set the trend direction.
trend_following = false;
if set to true then a new order is issued as soon as a previous one is closed without waiting for the next check time (based on the “frequency” value).
use_stop_loss = false;
stop_loss = 500;
those options let you set a fixed stop loss to every order issued.
MONEY MANAGEMENT OPTIONS
compounding = false;
compounding_factor = 0.5;
fine_compounding = true;
those options let you set the automatic compounding option. It’ll use the “initial_balance” to calculate the minimum amount of gain to increase the initial “lot_size”.
The “compoundig_factor” tells the EA how fast it’ll have to start compounding. With a value of 0.5 it means that when the gain will be equal to the initial_balance, the compounded lot_size will be only 50% more of the initial lot_size.
The increase of the lot size is made gradually and if the “fine_compouding” is set to true the it’ll use microlots (0.01 steps) to increase the lot_size for every order as the EA starts gaining.
So, the higher the number of the “compouding_factor” (defaul is 0.5 but can be 1 or 2 or any number) the faster the increase of the lot_size. I suggest you not to increase it too fast as otherwise you risk to hit the “max_DD” (see below). A value of 0.5 is in my opinion the best balance (max 1). But if you don’t worry too much about the DD and want to aggressively increase the lot_size, you can set to values higher than 1.
The fine compounding (if microlots steps are allowed by your account/broker) it is surely the best choise as it’ll give you the smoothest increase of the lot_size value.
Note that the target profit is AUTOMATICALLY adapted as the lot_size increases (even if the target profit is set to trailing!).
lot_size = 0.3;
this is the lot size used to open the inital order and the additional ones if no martingale is used. If it a martingale is used then the additional orders lots sizes will be calculated based on the martingale strategy.
risk_percent = 0;
calculated the initial lot size based on a percentage of the initial balance.
max_total_DD = 30;
this is maximum total draw down before closing all the orders.
slippage = 5;
this is the maximum slippage (difference between the price level sent by the EA and the one offered by the
linear_martingale = true;
fibonacci_martingale = False;
exponential_martingale = False;
exponential_factor = 2;
logaritmic_martingale = False;
log_multiplier = 4;
those are are a set of 4 different martingale strategies.
The linear one uses that sequence 1, 2, 3, 4, 5, 6, etc multiplied by the lot_size.
The Fibonaccy uses the sequence 1, 2, 3, 5, 8, 13 etc multiplied by the lot_size.
The exponential uses the classical exponential increase, so with a factor of 2 the sequence is 1, 2, 4, 8, 16 etc.
The logaritmic one uses the natural log multipled by the log_multiplier to increase the lot_size.
avoid_low_volume_periods = true;
when set to true, the EA will stop from opening new positions around August and mid December to mid January. This is to avoid the EA to get caught in periods with low trading volumes that are very unstable. The periods are “hard coded” inside the EA code.