Description:
VScalp2_lin_trail_1 is a day trading strategy which trades in the
direction of strong momentum moves. It performs best in volatile
conditions, when there are a lot of wide swings.
Strong momentum conditions are defined by positioning of five simple
moving averages (SMAs) with different time periods (10, 20, 50, 100
and 200) and the value of ADX indicator (with time period 14), which
must be at least 30. In uptrend, SMAs with shorter time periods must
be running above SMAs with longer time periods. In downtrend, SMAs
with shorter time periods must be running below SMAs with longer time
periods.
The pair of choice is GBP/JPY due to its potential for big moves. It
uses common day trading timeframe M5. Backtesting results and some
discretion were used when fixing SL at 25 pips and TP at 75 pips. The
default slippage of 5 pips and maximum allowed spread of 5 pips are
enforced to avoid trading in unfavorable conditions.
Initial trading amount is 5 million. After each winning trade, the
amount is increased by additional 5 million. Using this technique,
strategy is essentially adding to winning position in an attempt to
get the most out of the directional move. After losing trade, trading
amount is reset to 5 million. Trading amount is reduced (amount =
Equity/20000.0) when equity level falls below 100K.
Below are listed default settings and detailed trading logic.
Default settings:
defaultInstrument : GBP/JPY - Instrument
defaultTradeAmount : 5.0 - Trade amount in millions
defaultSlippage : 5 - Slippage in pips
defaultStopLoss : 25 - Stop loss in pips
defaultTakeProfit : 75 - Take profit in pips
defaultPeriod : M5 - Time period
maxSpread : 5.0 - Max spread in pips
timePeriod1 : 10 - SMA1 time period
timePeriod2 : 20 - SMA2 time period
timePeriod3 : 50 - SMA3 time period
timePeriod4 : 100 - SMA4 time period
timePeriod5 : 200 - SMA5 time period
adxValue : 30.0 - ADX value
Trading logic (detailed):
Starts execution in onCandle.
Continues only if last (bid) candle period equals defaultPeriod and
instrument equals defaultInstrument.
Calculates spread and continues only if spread is lower or equal than
maxSpread.
Checks positions and continues only if open position count is zero.
Calculates ADX(14) and continues only if it is greater than adxValue.
Calculates SMA(timePeriod1), SMA(timePeriod2), SMA(timePeriod3),
SMA(timePeriod4) and SMA(timePeriod5).
If SMA(timePeriod1) > SMA(timePeriod2) > SMA(timePeriod3) > SMA
(timePeriod4) > SMA(timePeriod5) then:
1. If equity is lower than or equal to lastEquity, it calculates the
amount according to the following formula: amount =
min(Equity/20000.0, defaultTradeAmount). But if equity is greater
than
lastEquity it calculates the amount according to the following
formula: amount = amount + defaultTradeAmount.
2. Updates lastEquity to the value of current equity.
3. It opens long position with defaultInstrument, amount,
defaultSlippage, defaultStopLoss, defaultTakeProfit and returns.
If SMA(timePeriod1) < SMA(timePeriod2) < SMA(timePeriod3) < SMA
(timePeriod4) < SMA(timePeriod5) then:
1. If equity is lower than or equal to lastEquity, it calculates the
amount according to the following formula: amount =
min(Equity/20000.0, defaultTradeAmount). But if equity is greater
than
lastEquity it calculates the amount according to the following
formula: amount = amount + defaultTradeAmount.
2. Updates lastEquity to the value of current equity.
3. It opens short position with defaultInstrument, amount,
defaultSlippage, defaultStopLoss, defaultTakeProfit and returns.