Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
30 août 2008 6 30 /08 /août /2008 16:33

Backtest : Premier Stochastic Oscillator (PSO) by Lee Leibfarth.

Dans le numéro d'août de S&C, Lee Leibfarth présente une variante du Stochastic : le PSO , Premier Stochastic Oscillator.  Il décrit également une stratégie basée sur cet indicateur.  Voici une vue du PSO appliqué au FCE :



Les signaux d'achat sont donnés par un croisement à la baisse de la courbe et des niveaux 0.9 ou 0.2.
Les signaux de vente, eux, par un croisement à la hausse de la courbe avec les valeurs -0.9 ou -0.2.

Et le code de l'indicateur pour Prorealtime, les paramètres par défaut sont 8,5,5 :

len=8
per=5
stoc=Stochastic[len,1](close)
nsto=0.1*(stoc-50)
ssto=exponentialaverage[per](nsto)
sssto=exponentialaverage[per](ssto)
prem=(EXP(sssto)-1)/(exp(sssto)+1)
cond1=prem<.9 and prem[1]>.9
cond2=prem<.2 and prem[1]>.2
cond3=prem>-.9 and prem[1]<-.9
cond4=prem>-.2 and prem[1]<-.2
condha=(cond1 or cond2)*-.2
condvte=(cond3 or cond4)*-.2
return prem, .9, .2, -.9, -.2,condha, condvte

Lee Leibfarth préconise un rapport R/R de 2 : soit une prise de profit éloignée du double du stoploss.  Est-ce là la clé de la profitabilité du système ?  Voici un vue de la courbe P/L pour le FCE, 3.50 eur par A/R, sans slippage, 1 contrat, stop à 1.2%, target à 2.4% :



Le rapport :



Et le code du backtest de la stratégie PSO pour Prorealtime, l'écart pour le stoploss (aa) est à introduire en variable :

bb=aa*2
REM Achat
ignored, ignored, ignored, ignored, ignored, indic1, indic2= CALL "premier stochastic"
c1 = (indic1 < 0.0)
IF c1 THEN
    BUY 1 SHARES AT MARKET THISBARONCLOSE
    pr=entryquote
    tg=pr*(1+bb)
    st=pr*(1-aa)
ENDIF
sell at st stop
sell at tg limit

REM Vente à découvert
c2 = (indic2 < 0.0)
IF c2 THEN
    SELLSHORT 1 SHARES AT MARKET THISBARONCLOSE
    prv=entryquote
    tgv=prv*(1-bb)
    stv=prv*(1+aa)
ENDIF
exitshort at stv stop
exitshort at tgv limit

Prudence !  Il faut bien faire attention si le stop et le target sont touchés sur la même barre, Prorealtime prend parfois le cas le plus favorable (dans l'ordre test sur open, puis close puis high et enfin low).  Ici, avec ce système, il faudrait un range de 3.6% pour avoir cette possibilité.  Après une rapide vérification, je n'ai pas trouvé ce genre de bougie mais prudence, si on réduit la valeur de la variable avec la fonction optimisation.

D'après les développeurs, cette stratégie peut être associée avec d'autres signaux.  Des filtres pour le trend ou/et le timing ?  On peut aussi imaginer un écart variant en fonction de l'ATR.

Partager cet article

Repost 0

commentaires