Mon 1er Système, suggestion d'amélioration
Forums › ProRealTime forum Français › Support ProOrder › Mon 1er Système, suggestion d'amélioration
- This topic has 31 replies, 8 voices, and was last updated 7 years ago by JR1976.
-
-
06/12/2016 at 10:10 AM #9271
Bonjour,
Je vous partage mon premier système. Soyez indulgent, je ne suis ni trader ni programmeur 😉
C’est un système très simple sur IG DAX 5€ qui fonctionne en réel depuis début mai sans surprise par rapport au backtest, car je suis sur UT 1M donc peu de chance d’avoir SL et TP sur la même bougie. Le programme tourne simultanément sur mes comptes démo et réel, et à part un slippage de temps en temps, je n’ai pas de différence. (spread à 1)
En gros je short (j’ai le même set up en version longue) un surachat lorsque les prix sont en baisse par rapport à la cloture de la veille et l’ouverture du jour.
Parmi ce que je souhaite améliorer, je souhaite filtrer les retournements durable de tendance à la hausse mais je n’ai pas trouvé d’indicateur efficace, en tout cas pas pertinent avec les réglages standard. Le multitimeframe serait probablement une solution, ou paramétrer un indicateur sur une UT plus longue.
Je filtre les retournements haussiers brutaux en contrôlant la pente d’une MM20 mais là aussi il doit y avoir mieux à faire.
J’ai tenté d’utiliser les divergence grâce au code que Nicolas m’a donné sur un autre post sans succès.
Bref j’ai fait le gros oeuvre, mais j’ai besoin d’infos des spécialistes pour les finitions 😉
12345678910111213141516171819202122232425262728293031323334353637383940// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivéDEFPARAM Flatbefore = 093000DEFPARAM Flatafter = 173500DEFPARAM Preloadbars = 600// Aucune nouvelle position prise après le chandelier qui clôture à 17hHeureLimite = 171500// Conditions pour ouvrir une position vendeuseindicator1 = RSI[14](close)c1 = indicator1[1] > 72 AND (indicator1[1]-indicator1)>0 AND indicator1 > 62IF TIME = 090000 THENouverture = closeENDIFIF TIME = 173500 THENcloture = closeENDIF//Ecart à l'ouverturec2 = close < ouverture//Ecart par rapport à la veillec3 = close < cloture//Filtrage tendance fortement haussièreindicator2 = Average[20](close)c4= (indicator2 - indicator2[1])<2.5//Prise de positionIF Time <= HeureLimite AND c1 AND c2 AND c3 AND C4 AND NOT ONMARKET THENSELLSHORT 1 CONTRACT AT MARKETENDIF//SL et TPSET TARGET pPROFIT 15SET STOP pLOSS 20Le break even est à 57,14 % ce qui me laisse entre 17 et 18 % de marge.
Merci pour vos commentaires.
Bon Dimanche.
1 user thanked author for this post.
06/12/2016 at 6:59 PM #929406/12/2016 at 7:42 PM #9296En version achat cela fonctionne bien aussi mais j’ai moins de signaux compte tenu de l’historique limité à octobre 2015 en UT1 et une période plutôt baissière (je sépare toujours mes set up short et long en deux systèmes différents).
Par contre je n’avais pas pensé à limiter à 1 trade par jour. J’ai moins de trade, mais + de 80 % de positions gagnantes et un ration à 3,24. Merci pour la suggestion !
Cela vient certainement du problème que je cherche à traiter, qui est d’identifier les situations de retournement de tendance en intraday. J’ai parfois 2 ou 3 trades gagnants tant que la tendance baissière dure, puis je peux avoir 1 ou 2 trades perdants lorsque le marché remonte vers le cours d’ouverture (après la condition de short n’est plus remplie close<ouverture).
As-tu une idée pour que je puisse conserver plusieurs ordres par jours, en filtrant les retournements “définitifs” de tendance, car limiter à 1 trade fait “perdre” 30 trades gagnants sur la durée du backtest ?
Merci
06/12/2016 at 7:50 PM #929806/12/2016 at 8:04 PM #9300J’ai essayé mais ce n’est pas très efficace, notamment sur le premier trade perdant, les MM sont en retard.
J’ai testé MACD et quelques autres indicateurs aussi mais rien de très pertinents. Je pense qu’ils sont trop réactifs en UT1, alors qu’il faut détecter un retournement de tendance plus “structurel”.
06/12/2016 at 8:15 PM #9301Bonjour Aston, félicitation pour ton travail.
Je me lance dans une suggestion peut être inutile avec ce TF… Pour rentrer avec un meilleur timing mais aussi éviter une poussée haussière, pourquoi ne pas attendre que le RSI croisse à la baisse un niveau (70) ?
06/12/2016 at 8:36 PM #9303@Pascal, j’ai déjà testé cette version mais c’est moins bien, c’est aussi pour cela que la position n’est pas prise si le RSI < 62, sinon le potentiel de repli est déjà trop entamé.
06/12/2016 at 9:10 PM #9307Désolé je n’avais pas décrypté ton code, je débute dans la programmation !
D’ ailleurs si tu as un moment, pourrais tu m’aider à le décrypter ? Et je pourrais alors partager ton aide sur la file pour les débutants que je viens d’ouvrir.
Que fait le [1] dans les deux exemples ?
1234567891011<span class="token comment" spellcheck="true">// Conditions pour ouvrir une position vendeuse</span>indicator1 <span class="token operator">=</span> <span class="token indicators">RSI</span><span class="token punctuation">[</span><span class="token number">14</span><span class="token punctuation">]</span><span class="token punctuation">(</span><span class="token keyword">close</span><span class="token punctuation">)</span>c1 <span class="token operator">=</span> indicator1<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">></span> <span class="token number">72</span> <span class="token keyword">AND</span> <span class="token punctuation">(</span>indicator1<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token operator">-</span>indicator1<span class="token punctuation">)</span><span class="token operator">></span><span class="token number">0</span> <span class="token keyword">AND</span> indicator1 <span class="token operator">></span> <span class="token number">62</span></code><code class=" language-prorealtime"></code><code class=" language-prorealtime"><span class="token comment" spellcheck="true">//Filtrage tendance fortement haussière</span>indicator2 <span class="token operator">=</span> <span class="token indicators">Average</span><span class="token punctuation">[</span><span class="token number">20</span><span class="token punctuation">]</span><span class="token punctuation">(</span><span class="token keyword">close</span><span class="token punctuation">)</span>c4<span class="token operator">=</span> <span class="token punctuation">(</span>indicator2 <span class="token operator">-</span> indicator2<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token operator"><</span><span class="token number">2.5Merci de ton aide</span>06/12/2016 at 9:12 PM #9308Dans ce cas pourquoi ne pas fermer le premier trade avec un trailing plutôt que d’utiliser un profit fixe en points. Si plusieurs trades gagnants peuvent survenir dans tes statistiques alors peut-être qu’un seul Trade qui trail le profit pourrait les remplacer. Tu peux utiliser les fonctions de mes 2 derniers articles pour ça.
1 user thanked author for this post.
06/13/2016 at 6:03 AM #9314@Pascal, le chiffre entre crochet permet de récupérer la valeur d’un indicateur sur la nième bougie précédente [n]. Tu devrais commencer si ce n’est déjà fait à lire les manuels de programmation PRT, cela t’aidera bcp.
@Nicolas, j’ai testé avec un suiveur dont j’avais posté le code ici pour mémoire, mais ce n’est pas si efficace que cela en intraday. La stratégie a besoin d’un SL à 20 pour que le mouvement de baisse se forme, ce qui veut dire que pour qu’un trailing donne plus de 20 pts de profit, il faut que je gagne au moins 40 pts avant de reperdre la valeur du trailing. Même avec un pas ou en réduisant la valeur du trailing en cours de trade ça ne donne pas d’aussi bon résultat, je suis donc revenu à un TP.06/13/2016 at 2:46 PM #9334Jamais évident de capter une tendance longue sans accroître son drawdown. Je trouve à l’inverse qu’on peut avoir pour objectif de limiter son drawdown tout en maintenant un % (très) élevé de trades gagnants.
Avec un filtre MM10 au lieu de 20, on améliore les deux. Drawdown + % de trades gagnants.
J’ai testé d’autres indicateurs de tendance mais sans amélioration notable. Je verrai avec d’autres MM.Aurais-tu la possibilité de poster le code achat ?
06/13/2016 at 6:22 PM #9341@Sofitech, tu as mis quoi comme pente maxi pour ta MM10 ?
Ci dessous le code “Long” limité à 1 trade par jour. Ca permet de remonter le TP au même niveau que le SL. 68 % de trades gagnants et ration à plus de 2
1234567891011121314151617181920212223242526272829303132333435363738394041424344// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivéDEFPARAM Flatbefore = 093000DEFPARAM Flatafter = 173500// Aucune nouvelle position prise après le chandelier qui clôture à 17h15HeureLimite = 171500// Conditions pour ouvrir une position acheteuseindicator1 = RSI[14](close)c1 = indicator1[1]< 26 AND (indicator1[1]-indicator1)< 0 AND indicator1 < 32//Récupération clôture et ouvertureIF TIME = 090000 THENouverture = closeUnTradeParJour = 0ENDIFIF TIME = 173500 THENcloture = closeENDIF//Ecart à l'ouverturec2 = close > ouverture//Ecart par rapport à la veillec3 = close > cloture//Filtre retournementindicator2 = Average[20](close)c4= (indicator2[1]-indicator2)<2.5//Prise de positionIF Time <= HeureLimite AND c1 AND c2 AND c3 AND c4 AND UnTradeParJour = 0 AND NOT ONMARKET THENBUY 1 CONTRACT AT MARKETUnTradeParJour = 1ENDIF// SL et TPSET TARGET PPROFIT 20SET STOP PLOSS 2006/14/2016 at 8:04 AM #9361Merci pour le code achat.
Pour répondre à ta questions, j’ai simplement modifier la partie filtre de tendance comme ceci :
//Filtrage tendance fortement haussière
indicator2 = Average[10](close)
c4= (indicator2 – indicator2[1])<2.5J’ai fait d’autres essais avec des indicateurs de tendances, j’en ferais certainement d’autres. Je posterai si je trouve des pistes pour améliorer le système.
06/14/2016 at 4:18 PM #9395Sur le système de vente à découvert, on peut avoir donc une MM10 en filtrage (j’ai essayé sans meilleurs résultats d’autres filtres) et ajouter un MM tel que celui décrit sur le blog.
Les résultats me semblent intéressants… et non biaisés car en M1, on ne sort que fort rarement en 1ère bougie (les résultats le confirment d’ailleurs).
L’approche est bonne. Il y a certainement des pistes à explorer pour améliorer.
Ci-dessous le code :12345678910111213141516171819202122232425262728293031323334353637383940414243444546// Conditions pour ouvrir une position acheteuse// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivéDEFPARAM Flatbefore = 093000DEFPARAM Flatafter = 173500DEFPARAM Preloadbars = 600REM Money ManagementCapital = 10000Risk = 0.01StopLoss = 10 // Could be our variable XREM Calculate contractsequity = Capital + StrategyProfitmaxrisk = round(equity*Risk)PositionSize = abs(round((maxrisk/StopLoss)/PointValue)*pipsize)// Aucune nouvelle position prise après le chandelier qui clôture à 17hHeureLimite = 171500// Conditions pour ouvrir une position vendeuseindicator1 = RSI[14](close)c1 = indicator1[1] > 72 AND (indicator1[1]-indicator1)>0 AND indicator1 > 62IF TIME = 090000 THENouverture = closeENDIFIF TIME = 173500 THENcloture = closeENDIF//Ecart à l'ouverturec2 = close < ouverture//Ecart par rapport à la veillec3 = close < cloture//Filtrage tendance fortement haussièreindicator2 = Average[10](close)c4= (indicator2 - indicator2[1])<2.5//Prise de positionIF Time <= HeureLimite AND c1 AND c2 AND c3 AND C4 AND NOT ONMARKET THENSELLSHORT PositionSize CONTRACTS AT MARKETENDIF//SL et TPSET TARGET pPROFIT 15SET STOP pLOSS 15/1.506/14/2016 at 6:36 PM #9402Ok
A quoi sert le “/1.5” dans SET STOP pLOSS 15/1.5, je ne connais pas cette fonction ?
-
AuthorPosts
Find exclusive trading pro-tools on