Code « End of Day USD-JPY »

Bonjour à tous,

Voici une stratégie que j’avais élaborée il y a pas loin de 2 ans.
A l’époque, elle s’avérait plutôt efficace.

La suite des événements ne lui a pas franchement donné raison (en raison de l’absence du tick par tick au moment du backtest il y a plusieurs années), mais je pense que cette stratégie a le mérite de pouvoir être étudiée et améliorée.

D’ailleurs à la fin, je vous livre une version améliorée avec les conditions actuelles, au tick par tick.

.

Les règles sont ainsi établies :

.

Nous profitons de la volatilité potentielle après la clôture.

En effet, après un fort mouvement dans la première heure entre 22H et 23H, on assiste à une réaction opposée du marché.

La stratégie est en effet uniquement applicable entre 22 HEURES et 23 HEURES, si les conditions d’entrée sont réunies.

Il n’y a pas de trades le vendredi, en raison du risque de gappost week-end.

Premièrement, nous définissions le plus haut et le plus bas de la période allant de 18 HEURES à 22 HEURES.

C’est ce que j’appelle l’ « amplitude » dans mon backtest.

Nous prenons 40%de cette valeur d’amplitude.

Nous allons placer 2 ordres « Buy limit » et « Sell limit ».

.

ORDRE BUY LIMIT

  • uniquement entre 22H et 23H, je le rappelle, et pas le vendredi
  • ordre BUY LIMIT placé au niveau de l’ouverture de la bougie de 22H, auquel on soustrait l’amplitude (soit 40% de la différence entre le plus haut et le plus bas de la période de 18H à 22H)
  • ordre annulé à 23H, si non exécuté

.

ORDRE SELL LIMIT

  • uniquement entre 22H et 23H, je le rappelle, et pas le vendredi
  • ordre BUY LIMIT placé au niveau de l’ouverture de la bougie de 23H, auquel on ajoute l’amplitude (soit 40% de la différence entre le plus haut et le plus bas de la période de 18H à 22H)
  • ordre annulé à 23H, si non exécuté

.

REVENTE DES POSITIONS : 

  • Quoi qu’il arrive, à 10 heures du matin le lendemain (cela explique pourquoi on ne place pas de trades le vendredi soir, en raison du risque de gap après le week-end).
  • STOP LOSS = 0,4%
  • TAKE PROFIT = 1,2%

.

.

Remarque importante :

En backtest, vous n’aurez pas un résultat aussi bon que la capture d’écran.

Pourquoi ?

Parce qu’à l’époque où j’avais testé la stratégie, le tick par tick n’existait pas. Heureusement, lisez l’article jusqu’au bout et vous aurez à la fin une version optimisée pour le tick par tick (plus fiable).

.

Voici le code du BACKTEST :

// USD/JPY 
// H1
 
Defparam cumulateorders = false
 
// Levier (max conseillé : 1.5)
LEVIER = 1
 
// Choix du réinvestissement des gains ou non
REINV = 1
IF REINV = 0 THEN
n = 1*levier
ELSIF REINV = 1 THEN
Capital = 200000 + strategyprofit
n = (capital / 200000)*levier
IF n <1 THEN
n = 1  // Taille minimum : 1
ENDIF
ENDIF
 
// Bougie référence 18 à 22H
If time = 220000 THEN
amplitude = highest[4](high) - lowest[4](low)
amplitude = amplitude*0.4
ouverture = close
ENDIF
 
// ACHAT & VENTE entre 22H et 23H
IF time >= 220000 and time <= 230000 and dayofweek <> 5 THEN
Buy n shares at ouverture - amplitude limit
Sellshort n shares at ouverture + amplitude limit
ENDIF
 
 
// STOP & OBJECTIF
SET STOP %LOSS 0.4
SET TARGET %PROFIT 1.2
 
// SORTIE
IF time = 100000 THEN
SELL AT MARKET
EXITSHORT AT MARKET
ENDIF

.

Vous pouvez tester la stratégie sans réinvestissement des gains, en mettant : 

REINV  = 0

Ou bien avec réinvestissement des gains, en mettant :

REINV = 1

N’abusez pas du levier, LEVIER = 1.5 me semble le maximum conseillé.

.

MISE A JOUR DU 20 JANVIER 2019

Remercions « Philippe », un ami lecteur qui cette semaine m’a transmis sa version améliorée de ma stratégie originale.

.

Voici le code du BACKTEST :

Defparam cumulateorders = false

n=1
// Plus le "ratio" monte, moins il y a de positions prises
ratio=0.7

// Bougie référence 18 à 22H
if time = 220000 THEN
amplitude = highest[4](high) - lowest[4](low)
ouverture = close
endif

// achat & vente en semaine hors vendredi, entre 22H et minuit
if time >= 220000 and time <= 230000 and dayOfWeek <> 5 then
buy n shares at ouverture - amplitude*ratio limit
  sellshort 2.5*n shares at ouverture + amplitude*ratio limit
endif

// stop & objectif
sell at ouverture - amplitude*ratio - 4*amplitude stop
exitShort at ouverture + amplitude*ratio + 3*amplitude stop
set target %profit 0.8

// sortie
if time = 50000 then
exitshort at market
endif
if time = 210000 then
sell at market
endif

Share Button