Trader les gaps

Forum sur le trading automatique et algorithmique : systèmes, backtests, robots de trading, résultats et limites, code à l'appui.
Avatar du membre
BearIsDead
Membre du Conseil Jedi
Messages : 10291
Enregistré le : 09 nov. 2017 20:02

Trader les gaps

Message non lu par BearIsDead »

Bonjour,

Je vous partage un code que j'ai testé avec mon abonnement PRT CAC intraday. Ca ne donne pas grand chose, mais bon... peut-être que ça peut donner des idées. On peut remplacer le momentum par le RSI...

A exécuter en 1H

Code : #

// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé

NbContrats = 1

StopLossNbPoints = targetProfitNbPoints  / ratioGL

IF DAYOFWEEK <> 0 THEN // pas de trade le dimanche
monMomentum = Momentum[19]
IF TIME = 160000 THEN
SELL AT MARKET
EXITSHORT AT MARKET
ENDIF

IF NOT ONMARKET THEN
IF TIME = 100000 THEN
IF open > close[1] + nbMinPointsForGap AND open < close[1] + nbMinPointsForGap + maxGapSize THEN
isGapHaussier = 1
isGapBaissier = 0
ELSIF open < close[1] - nbMinPointsForGap AND open > close[1] - nbMinPointsForGap - maxGapSize THEN
isGapHaussier = 0
isGapBaissier = 1
ELSE
isGapHaussier = 0
isGapBaissier = 0
ENDIF
ENDIF

IF isGapHaussier AND monMomentum CROSSES UNDER 0 THEN
BUY NbContrats CONTRACTS AT MARKET
SET TARGET PROFIT targetProfitNbPoints
SET STOP LOSS StopLossNbPoints
ELSIF isGapBaissier AND monMomentum CROSSES OVER 0 THEN
SELLSHORT NbContrats CONTRACTS AT MARKET
SET TARGET PROFIT targetProfitNbPoints
SET STOP LOSS StopLossNbPoints
ENDIF
ENDIF
ENDIF
C'est de l'intraday => on ferme tout en fin de journée
nbMinPointsForGap => nombre de points minimum pour le gap
maxGapSize => taille maximummale du gap
Avatar du membre
chad
Membre du Conseil Jedi
Messages : 33818
Enregistré le : 14 janv. 2015 16:06

Re: Trader les gaps

Message non lu par chad »

c'est a dire ça ne donne pas grand chose ? il ne trade pas ? il perd ?
Avatar du membre
BearIsDead
Membre du Conseil Jedi
Messages : 10291
Enregistré le : 09 nov. 2017 20:02

Re: Trader les gaps

Message non lu par BearIsDead »

Si il trade. Mais pas de résultats super. Je n'ai pas poussé l'investigation plus loin... Pour traduire le code, il prend une position long ou short selon qu'il y a un gap haussier ou baissier, quand le momentum 19 horaire passe en-dessous ou au-dessus de 0 respectivement. Et il ferme tout à 17H00.
Avatar du membre
chad
Membre du Conseil Jedi
Messages : 33818
Enregistré le : 14 janv. 2015 16:06

Re: Trader les gaps

Message non lu par chad »

merci pour la traduction :top:
Avatar du membre
BearIsDead
Membre du Conseil Jedi
Messages : 10291
Enregistré le : 09 nov. 2017 20:02

Re: Trader les gaps

Message non lu par BearIsDead »

:mercichinois: Errata=> il ferme tout à 16H00 autant pour moi...
Avatar du membre
BearIsDead
Membre du Conseil Jedi
Messages : 10291
Enregistré le : 09 nov. 2017 20:02

Re: Trader les gaps

Message non lu par BearIsDead »

Bon en fait il y a un ptit bug. :p. Je corrigerai tout à l'heure.++
Avatar du membre
BearIsDead
Membre du Conseil Jedi
Messages : 10291
Enregistré le : 09 nov. 2017 20:02

Re: Trader les gaps

Message non lu par BearIsDead »

J'ai supprimé le timestop => les trades sont donc du swing, il faut par conséquent mettre un SL Garanti. Ca donne un bon résultat pour l'instant 2005 à 2018

Code : #

// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé

NbContrats = 1

targetProfitNbPoints = AverageTrueRange[14] * multipleATR
StopLossNbPoints = targetProfitNbPoints  / ratioGL

IF DAYOFWEEK <> 0 THEN // pas de trade le dimanche
monMomentum = Momentum[19]

IF NOT ONMARKET THEN
IF TIME = 100000 THEN
IF open > close[1] + nbMinPointsForGap AND open < close[1] + nbMinPointsForGap + maxGapSize THEN
isGapHaussier = 1
isGapBaissier = 0
ELSIF open < close[1] - nbMinPointsForGap AND open > close[1] - nbMinPointsForGap - maxGapSize THEN
isGapHaussier = 0
isGapBaissier = 1
ELSE
isGapHaussier = 0
isGapBaissier = 0
ENDIF
ENDIF

IF isGapHaussier AND monMomentum CROSSES UNDER 0 THEN
BUY NbContrats CONTRACTS AT MARKET
SET TARGET PROFIT targetProfitNbPoints
SET STOP LOSS StopLossNbPoints
ELSIF isGapBaissier AND monMomentum CROSSES OVER 0 THEN
SELLSHORT NbContrats CONTRACTS AT MARKET
SET TARGET PROFIT targetProfitNbPoints
SET STOP LOSS StopLossNbPoints
ENDIF
ENDIF
ENDIF
Rapport détaillé
Rapport détaillé
Capture.PNG (144.19 Kio) Vu 1190 fois
L'equity
L'equity
Capture2.png (229.47 Kio) Vu 1190 fois
Problèmes: si l'equity telle quelle n'est pas trop mal, le drawdown est conséquent, et il y a peu de positions + temps d'exposition sur le marché évidemment très important (c'est du swing après tout lol).

Je n'ai pas fait de WalkForward ni Monte Carlo.

Si vous avez des remarques, je suis preneur :top:

Disclaimer => merci de ne pas utiliser aveuglément. C'est juste une ébauche.
Avatar du membre
BearIsDead
Membre du Conseil Jedi
Messages : 10291
Enregistré le : 09 nov. 2017 20:02

Re: Trader les gaps

Message non lu par BearIsDead »

Ah oui, une stat que j'aime bien vérifier, c'est le % long VS short de la stratégie. A savoir, si le code est tout le temps long, dans un marché haussier ça semble un peu évident qu'il va être gagnant. Mais quid du marché baissier.

Donc:
Positionnement Long VS Short
Positionnement Long VS Short
Capture2.png (168.63 Kio) Vu 1182 fois
Ca semble tout à fait raisonnable, même si les longs ont gagné beaucoup plus que les shorts (vu que la majeure partie du temps c'est haussier...)