This is a Multiday Strategy on FTSE 100 cfd of Ig Market- Time Frame 1 Hour
Signals are taken from QQE indicator and Universal indicator participates as filter.
The Seasonal optimization is Reiner’s Idea, that work well which we know.
The position are followed by a trailing stop.
Test result are made with FTSE 100 1 € mini Spread 2
Time Frame 1 Hour
Since 16.07.2004 to 01.11.2016
The strategy needs also 3 technical indicators that are also attached at the bottom of the post. These technical indicators are original ones found on the site and modified for the strategy.
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = false // Posizioni cumulate disattivate
// define position and money management parameter
ONCE positionSize = 1
ONCE maxPositionSizeLong = 10
ONCE maxPositionSizeShort = 10
// define saisonal position multiplier >0 - long
ONCE Januaryl = 3
ONCE Februaryl = 1
ONCE Marchl = 3
ONCE Aprill = 3
ONCE Mayl = 1
ONCE Junel = 3
ONCE Julyl = 3
ONCE Augustl = 2
ONCE Septemberl = 1
ONCE Octoberl = 3
ONCE Novemberl = 3
ONCE Decemberl = 3
// saisonal pattern long position
IF CurrentMonth = 1 THEN
saisonalPatternMultiplierl = Januaryl
ELSIF CurrentMonth = 2 THEN
saisonalPatternMultiplierl = Februaryl
ELSIF CurrentMonth = 3 THEN
saisonalPatternMultiplierl = Marchl
ELSIF CurrentMonth = 4 THEN
saisonalPatternMultiplierl = Aprill
ELSIF CurrentMonth = 5 THEN
saisonalPatternMultiplierl = Mayl
ELSIF CurrentMonth = 6 THEN
saisonalPatternMultiplierl = Junel
ELSIF CurrentMonth = 7 THEN
saisonalPatternMultiplierl = Julyl
ELSIF CurrentMonth = 8 THEN
saisonalPatternMultiplierl = Augustl
ELSIF CurrentMonth = 9 THEN
saisonalPatternMultiplierl = Septemberl
ELSIF CurrentMonth = 10 THEN
saisonalPatternMultiplierl = Octoberl
ELSIF CurrentMonth = 11 THEN
saisonalPatternMultiplierl = Novemberl
ELSIF CurrentMonth = 12 THEN
saisonalPatternMultiplierl = Decemberl
ENDIF
// define saisonal position multiplier >0 short
ONCE Januarys = 3
ONCE Februarys = 1
ONCE Marchs = 3
ONCE Aprils = 1
ONCE Mays = 3
ONCE Junes = 3
ONCE Julys = 3
ONCE Augusts = 1
ONCE Septembers = 1
ONCE Octobers = 1
ONCE Novembers = 3
ONCE Decembers = 3
// saisonal pattern short position
IF CurrentMonth = 1 THEN
saisonalPatternMultipliers = Januarys
ELSIF CurrentMonth = 2 THEN
saisonalPatternMultipliers = Februarys
ELSIF CurrentMonth = 3 THEN
saisonalPatternMultipliers = Marchs
ELSIF CurrentMonth = 4 THEN
saisonalPatternMultipliers = Aprils
ELSIF CurrentMonth = 5 THEN
saisonalPatternMultipliers = Mays
ELSIF CurrentMonth = 6 THEN
saisonalPatternMultipliers = Junes
ELSIF CurrentMonth = 7 THEN
saisonalPatternMultipliers = Julys
ELSIF CurrentMonth = 8 THEN
saisonalPatternMultipliers = Augusts
ELSIF CurrentMonth = 9 THEN
saisonalPatternMultipliers = Septembers
ELSIF CurrentMonth = 10 THEN
saisonalPatternMultipliers = Octobers
ELSIF CurrentMonth = 11 THEN
saisonalPatternMultipliers = Novembers
ELSIF CurrentMonth = 12 THEN
saisonalPatternMultipliers = Decembers
ENDIF
// Condizioni per entrare su posizioni long
ignored, indicator1, ignored = CALL "QQE_QUFTSE1HBUY"
c1 = (indicator1 CROSSES OVER 50)
indicator2, ignored = CALL "UNIV_QUFTSE1H_LOW"
c2 = (indicator2 <= 0)
c3=(indicator1>66)
c4=(indicator1<35)
// Condizioni per entrare su posizioni short
ignored, indicator3, ignored = CALL "QQE_QUFTSE1HSELL"
c5 = (indicator3 CROSSES UNDER 50)
c6 = (indicator2 >= 0)
C7 = (INDICATOR3<35)
C8=(INDICATOR3>56)
IF c1 AND c2 THEN
IF saisonalPatternMultiplierl > 0 THEN // check saisonal booster setup and max position size
IF (COUNTOFPOSITION + (positionSize * saisonalPatternMultiplierl)) <= maxPositionSizeLong THEN
BUY positionSize * saisonalPatternMultiplierl CONTRACT AT MARKET
ENDIF
ELSIF saisonalPatternMultiplierl <> 0 THEN
IF (COUNTOFPOSITION + positionSize) <= maxPositionSizeLong THEN
BUY positionSize CONTRACT AT MARKET
ENDIF
endif
ENDIF
IF C3 OR C4 THEN
SELL AT MARKET
ENDIF
IF not shortonmarket and c5 AND c6 THEN
IF saisonalPatternMultipliers > 0 THEN // check saisonal booster setup and max position size
IF (COUNTOFPOSITION + (positionSize * ABS(saisonalPatternMultipliers))) <= maxPositionSizeShort THEN
SELLSHORT positionSize * ABS(saisonalPatternMultipliers) CONTRACT AT MARKET
ENDIF
ELSIF saisonalPatternMultipliers <> 0 THEN
IF (COUNTOFPOSITION + positionSize) <= maxPositionSizeLong THEN
SELLSHORT positionSize CONTRACT AT MARKET
ENDIF
ENDIF
ENDIF
IF C7 OR C8 THEN
EXITSHORT AT MARKET
ENDIF
// TRAILING STOP LOGIK
TGL =100
TGS= 100
if not onmarket then
MAXPRICE = 0
MINPRICE = close
PREZZOUSCITA = 0
ENDIF
if longonmarket then
MAXPRICE = MAX(MAXPRICE,close)
if MAXPRICE-tradeprice(1)>=TGL*pointsize then
PREZZOUSCITA = MAXPRICE-TGL*pointsize
ENDIF
ENDIF
if shortonmarket then
MINPRICE = MIN(MINPRICE,close)
if tradeprice(1)-MINPRICE>=TGS*pointsize then
PREZZOUSCITA = MINPRICE+TGS*pointsize
ENDIF
ENDIF
if onmarket and PREZZOUSCITA>0 then
EXITSHORT AT PREZZOUSCITA STOP
SELL AT PREZZOUSCITA STOP
ENDIF
ONCE maxCandlesShortWithoutProfit =85// limit short loss latest after 85 candles
// stop and profit management
posProfit = (((close - positionprice) * pointvalue) * countofposition) / pipsize
ms = posProfit < 0 AND (BarIndex - TradeIndex) >= maxCandlesShortWithoutProfit
IF SHORTONMARKET AND ms THEN
EXITSHORT AT MARKET
ENDIF
set stop ploss 500
set target pprofit 250