Bonjour Nicolas, nouveau sur ce forum : je me présente Pascal,trader amateur de l’Hérault. Je cherche de l’aide pour programmer puis tester une stratégie automatique (achat ou vente) basée sur les premières bougies 15 mn d’une session ,avec les indicateurs ATR TS et avec des conditions initiales sur MACD ,et EMA bull (pour achat) . J’ai très peu de connaissances en programmation. Merci d’avance.
Bonjour, merci d’indiquer simplement l’ensemble des conditions de la stratégie 🙂 Si j’ai des questions sur certains points, je pourrai ainsi les soulever avant d’entamer la programmation.
Il faudrait à minima détailler les entrées et sorties de positions, les éventuelles conditions horaires, comment se ferme les positions, etc.. Merci.
Bonjour Nicolas ,merci pour votre réponse : dans un premier temps le début de la stratégie correspondrait à l’open d’un marché actions (US 15h30,France 9h00) .
Travail sur UT 15mn en intraday donc.
Par la suite je le testerais peut être sur le Forex.
1)Conditions préalables indicateurs : – pour achat : MACD >0 ,EMA 169 croissante ,prix < ATR trailing stop (période 20,facteur 2.5)
2)conditions entrée :
-après cassure ATR TS (close 15 mn >ATR TS )
– cassure confirmée du premier high après la condition précédente (close 15 mn > high )
les 2 phases sont distinctes (la 1ere bougie n’est pas prise pour le high)
– position cloturée dès re-croisement ATR TS à la baisse .
conditions short : inverse ci-dessus : cassure ATR TS à la baisse confirmée ,puis cassure du premier low suivant.
Cloture dès que prix recroise ATR TS à la hausse .
A voir éventuellement une condition pour une durée limitée de validité de la stratégie.
Voilà le code suite à ta demande et d’après mon interprétation qui je pense est correcte.
Le réglage de l’heure de début d’autorisation du trading automatique se fait à la ligne 3 dans la variable “start”. Concernant l’ATR trailing stop, j’ai utilisé celui de la bibliothèque de code ici: https://www.prorealcode.com/prorealtime-indicators/atr-trailing-stop/ . Je pense que c’est bien de celui dont on parle ?
DEFPARAM CumulateOrders = False
start = 090000
tcondition = time>=start
myMACD = MACD[12,26,9]
EMA = exponentialaverage[169]
// Période
p = 20
// Average True Range X
ATRx = AverageTrueRange[p](close) * 2.5
// ATRts = ATR Trailing Stop
// Inversion de tendance
IF close crosses over ATRts THEN
ATRts = close - ATRx
ELSIF close crosses under ATRts THEN
ATRts = close + ATRx
ENDIF
// Cacul de l'ATRts lors de la même tendance
IF close > ATRts THEN
ATRnew = close - ATRx
IF ATRnew > ATRts THEN
ATRts = ATRnew
ENDIF
ELSIF close < ATRts THEN
ATRnew = close + ATRx
IF ATRnew < ATRts THEN
ATRts = ATRnew
ENDIF
ENDIF
//defining trend and closing old positions
if close>ATRts then
trend = 1
exitshort at market
else
trend = -1
sell at market
endif
//trending since at least 1 candlestick
alreadytrendingbull = summation[2](trend=1)=2
alreadytrendingbear = summation[2](trend=-1)=2
//launching orders
if tcondition then
if not longonmarket and alreadytrendingbull and mymacd>0 and ema>ema[1] and close>high[1] then
buy 1 share at market
endif
if not shortonmarket and alreadytrendingbear and mymacd<0 and ema<ema[1] and close<low[1] then
sellshort 1 share at market
endif
endif
Oui c’est bien celà ,et je m’en sers depuis peu sur PRT . Je le connaissais antérieurement par la plate-forme Thinkorswim : pour info plus de détails de cet indicateur sur ce lien http://tlc.thinkorswim.com/center/charting/studies/studies-library/A-B/ATRTrailingStop .( Il y a d’ailleurs un certains nombre d’indicateurs qu’il m’interesserait de transposer sur PRT).
Si je comprends bien le code de l’indicateur est développé entre la ligne 11 et 31 ?
Merci Nicolas en tout cas ,je vais essayer de comprendre ton programme et le tester au plus vite !
Entre les lignes 9 et 31 précisément.
Concernant les indicateurs à convertir depuis thinkorswim, tu peux faire une requête individuelle pour chaque demande dans le forum probuilder. Pour une consultation privée, le service de programmation est accessible dans l’onglet “help” de la barre de navigation du site.
J’ai fait quelques backtest: j’ai l’impression que çà fonctionne plus dans les petites tendances intraday et qu’en cas de breakout dans une tendance flat ,il y aurait peut être interêt à placer des take profits
avant qu’on recroise l’ATR TS ,car on perd tout l’interêt du système … mais je suppose que çà obligerait à rajouter une notion de tendance .Qu’en penses tu au vu de ton test joint?
De plus d’après les croix ,la revente semble trop tardive (1 è re cloture sous ATR TS après croisement ,si je me trompe pas ) ne crois tu pas que çà optimiserait les gains ,de couper la position dès la bougie qui croise la ligne de x % par exemple ?
Désolé, tu attendais quelque chose de ma part ? Très honnêtement je n’ai pas testé plus que cela, je code X bidules et machins pour tout le monde tous les jours 🙂
En effet, si on ne sort ni sur takeprofit, et ni sur stoploss, alors on est à la merci de l’indicateur qui réagira peu ou trop tard en cas de trop fortes volatilités. Personnellement, je commencerai par placer un stop suiveur de type “ptrailing“..
Merci Nicolas je me doute que tu es fort occupé ! je me posais justement la question du trailer stop, distinct de l’ATR TS ! il optimiserait sans doute le système.
Ce code de “ptrailing” est donc à insérer à partir de la ligne 52 je suppose ? (j’ai commencé à me former sur le Probuilder mais j’avance pas vite 😉
Non tu peux le mettre à la fin, il sera lu et exécuté en dernier:
x = 10 //valeur du trailing stop en points
SET STOP PTRAILING x
Merci ! est ce que la valeur x du trailing stop peut être exprimée en pourcentage du prix ?
exemple :
x = 0,2/100(close) //valeur du trailing stop en %
SET STOP PTRAILING x
j’ai modifié ,mais j’ai un message d’erreur : “pas utilisable sur Proorder ”
x = 0.02 //valeur du trailing stop en %
SET STOP %TRAILING x
HCParticipant
Average
Bonjour,
Je pense que cela provient du STOP suiveur
%trainling n’est pas utilisable je pense sur le proorder
Voir la discution :
https://www.prorealcode.com/topic/set-stop-loss-x-trailing-y/