coder un algo automatique “JAMES BOND”
Forums › ProRealTime forum Français › Support ProOrder › coder un algo automatique “JAMES BOND”
- This topic has 5 replies, 2 voices, and was last updated 1 month ago by
geroniman.
-
-
09/12/2025 at 6:44 PM #250763
Bonsoir j’aimerais programmer un algo sur la base de l’indicateur James Bond à savoir le sar est paramétré en 0.07/0.7/0.7 .quand une bougie blanche avec le Sar blanc est cassé à la baisse dans ce cas Sellstop sous le plus bas de la bougie et inversement pour les noirs avec comme filtre l’unité de temps .j’aime trader avec l’UT 5 minutes mais en 2 minutes ou en 15 minutes c’est également intéressant. autre filtre si le cours est est au-dessus de la v WAP dans ce cas on ne regarde que les buy stop jusqu’à 4 écart-types de la v WAP. les écart-types sont en pointillés jaune .j’en ai programmé jusqu’à 9. le deuxième setup lorsqu’il y a une bougie verte c’est-à-dire la première bougie blanche et Sar blanc dans ce cas buy au-dessus du plus haut de la bougie et inversement la première bougie baissière noir/ rouge et SAR noir dans ce cas-là SELL sous le plus bas de la bougie. j’aimerais avoir aussi comme paramétrage en fonction de la plage horaire par exemple de pouvoir ne trader que jusqu’à 11h ou midi et à partir de 14h jusqu’à 18h autre filtre serait en fonction de la volatilité. si faible volatilité les target ne sont que de 4 à 5 points et en forte volatilité on peut aller jusqu’à 20 points. dans une journée il y a facilement 15/ 20 trades gagnants. en ce qui concerne les stop loss si le cours va à l’inverse du signal alors on prend un reverse avec le double de lots au-dessus du plus haut de la bougie signal. Merci d’avance.
voici des exemples de trades aujourd’hui vendredi 12 Septembre
09/15/2025 at 8:36 AM #250818voici le code que donne cahtgpt. Qu’en pensez vous?
// Algo James Bond adapté pour ProRealTime / ProBuildervolatilityThreshold = 0.5 // valeur par défaut en points ; si ATR < => faible volatilité// Targets en points pour faible/forte volatilitétp_low_vol_points = 4 // 4 points = 20 ticks si tickSize = 0.25tp_high_vol_points = 15 // 15 points = 75 ticks si tickSize = 0.25// Reverse: lot multiplier et placementreverseLotMultiplier = 2reverseEntryOffsetTicks = 1 // entrée reverse 1 tick au dessus/ dessous// Setup 2 offsetsetup2_offset_ticks = 2// VWAP filter: si price > vwap => n’autorise que les BUY STOP jusqu’à VWAP + 4*stdevvwapStdPeriod = 20vwapStdMultiplierMax = 4// Heures de trading (format HHMM) – 2 plages configurablestradeStart1 = 0900tradeEnd1 = 1100tradeStart2 = 1400tradeEnd2 = 1800// Taille de la position par défautbaseQty = 1// ———- Indicateurs ———-// Parabolic SARsar = SAR(sar_acceleration, sar_step, sar_max)// VWAPvwap = VWAP// Écart type autour du VWAP (sur vwapStdPeriod bougies)vwap_dev = StdDev(close – vwap, vwapStdPeriod)// ATR pour mesurer la volatilité (en points)atr = AverageTrueRange(atrLength)// Détection de la plage horaire autoriséeisInSession = ( (time >= tradeStart1 and time <= tradeEnd1) or (time >= tradeStart2 and time <= tradeEnd2) )// Conversion ticks <-> priceticksToPrice(nTicks) = nTicks * tickSize// Helper: calcul target en points selon volatilitéisLowVol = atr < volatilityThresholdif isLowVol thentp_points = tp_low_vol_pointselsetp_points = tp_high_vol_pointsendif// ———- Rèles d’entrées ———-// Interprétation des SAR :// – “SAR haussier” -> SAR est en-dessous du cours (SAR < low) => tendance haussière// – “SAR baissier” -> SAR est au-dessus du cours (SAR > high) => tendance baissière// Bougie actuelle et précédentebull_candle = close > openbear_candle = close < openprev_sar = sar[1]prev_close = close[1]// Condition flip SAR (précédente était baissier et maintenant haussier, etc.)prev_sar_bear = prev_sar > high[1]prev_sar_bull = prev_sar < low[1]current_sar_bull = sar < lowcurrent_sar_bear = sar > high// ———- Orders logic (set pending orders when conditions met) ———-// NOTE: ProRealTime syntax for creating pending orders peut varier; ci-dessous implémentation logique// 1) Setup principal : bougie haussière, SAR haussier cassé à la baisse => SELL STOP sous le plus basif isInSession and bull_candle and current_sar_bear and current_sar_bull[1] = true then// Condition interprétée comme : la bougie est haussière mais SAR a été cassé vers le bassellStopPrice = low – ticksToPrice(1) // placer 1 tick sous le plus bas// Placer Sell Stop// Vérifier si instrument au-dessus de VWAP -> si oui, n’autoriser que buy stops (on ignore sell stops)if close > vwap then// on ne regarde que les buy stops, donc ne pas placer sell stopelse// Placer sell stopSELL_STOP baseQty CONTRACTS AT sellStopPrice// Placer TP et SL: TP = sellStopPrice – tp_points ; SL = reverse condition dynamicSET TARGET (ticksToPrice(tp_points / tickSize)) // placeholder : adapter selon syntaxeendifendif// 1b) inverse : bougie baissière, SAR baissier cassé à la hausse => BUY STOP au-dessus du plus hautif isInSession and bear_candle and current_sar_bull and current_sar_bear[1] = true thenbuyStopPrice = high + ticksToPrice(1)// VWAP filter: si price > vwap on autorise buy stops uniquement si buyStopPrice <= vwap + 4*stdevif close > vwap thenif buyStopPrice <= vwap + vwapStdMultiplierMax * vwap_dev thenif buyStopPrice <= vwap + vwapStdMultiplierMax * vwap_dev thenBUY_STOP baseQty CONTRACTS AT buyStopPriceSET TARGET (ticksToPrice(tp_points / tickSize))else// au-dessus de 4*std dev -> ne pas placerendifelseBUY_STOP baseQty CONTRACTS AT buyStopPriceSET TARGET (ticksToPrice(tp_points / tickSize))endifendif// 2) Setup secondaire : premier chandelier haussier et SAR haussier (flip depuis bearish) => BUYTOP 2 ticks au-dessus du high// “première bougie” est ici interprétée comme bougie de signal immédiate où prev_sar_bear = true and current_sar_bull = trueif isInSession and bull_candle and current_sar_bull and prev_sar_bear thenbuyTopPrice = high + ticksToPrice(setup2_offset_ticks)if close > vwap thenif buyTopPrice <= vwap + vwapStdMultiplierMax * vwap_dev thenBUY_STOP baseQty CONTRACTS AT buyTopPriceSET TARGET (ticksToPrice(tp_points / tickSize))endifelseBUY_STOP baseQty CONTRACTS AT buyTopPriceSET TARGET (ticksToPrice(tp_points / tickSize))endifendif// Symétrique : première bougie baissière et SAR baissier => SELLSTOP 2 ticks sous lowif isInSession and bear_candle and current_sar_bear and prev_sar_bull thensellTopPrice = low – ticksToPrice(setup2_offset_ticks)if close > vwap then// si cours au-dessus du VWAP, on n’exécute que buy stops -> donc ignorerelseSELL_STOP baseQty CONTRACTS AT sellTopPriceSET TARGET (ticksToPrice(tp_points / tickSize))endifendif// ———- Gestion des Stop Loss et Reverse ———-// Si le cours va à l’inverse du signal après entrée, prendre un reverse :// – Ouvrir position inverse avec double lots, entrée 1 tick au-dessus du plus haut de la bougie signal (pour SELL->reverse BUY)// – Target profit = 50% amplitude bougie précédente + 1 tick// Exemple de détection d’un trade en perte (simplifié) :// (Cela devra être adapté selon la gestion des positions réelles dans ProRealTime)/* PSEUDO-CODE:if positionOpen and positionIsLosing then// calcul reversereverseEntryPrice = if (positionType = “BUY”) then lowSignalCandle – ticksToPrice(reverseEntryOffsetTicks) else highSignalCandle + ticksToPrice(reverseEntryOffsetTicks)reverseQty = baseQty * reverseLotMultiplier// ouvrir la position reverseif positionType = “BUY” thenSELL reverseQty CONTRACTS AT reverseEntryPriceelseBUY reverseQty CONTRACTS AT reverseEntryPriceendif// target reverse = 0.5 * amplitude bougie precedente + 1 tickprev_amp = abs(high[1] – low[1])reverseTP = 0.5 * prev_amp + ticksToPrice(1)SET TARGET reverseTPendif*/// ———- Notes finales ———-// – La syntaxe exacte des commandes d’ordre (BUY_STOP / SELL_STOP / SET TARGET / SET STOP) varie selon la version// ProRealTime/ProBuilder. Adaptez la section “Placer sell/buy stop” à la syntaxe correcte :// Exemples possibles :// BUY 1 CONTRACT AT market// BUY 1 CONTRACT LIMIT price// BUY 1 CONTRACT STOP price// SET TARGET points// SET STOP points// – Tester sur données historiques en UT choisie (paramètre UT) et vérifier conversions tickSize// – Ajuster volatilityThreshold, tickSize selon instrument (par ex NQ tick réel = 0.25)// – Sécuriser la gestion des ordres (une seule entrée active à la fois, cancel pending orders après expiration, etc.)// Si vous voulez, je peux :// 1) adapter ce code à la syntaxe exacte de votre version ProRealTime (si vous me dites la version),// 2) transformer les sections pseudocode en commandes valides et testées,// 3) fournir un script prêt à backtester avec paramètres exportables.// FIN09/15/2025 at 9:31 AM #250830Pour utiliser ChatGPT ou une autre IA, il faut lui donner un guide sur la façon de procéder en langage ProBuilder.
Sans cela, le résultat obtenu sera assez mauvais et rempli d’erreurs.
Si tu regardes sur le forum, tu trouveras quelques conseils sur la façon d’entraîner ou de créer un GPT.
https://www.prorealcode.com/topic/create-strategies-codes-with-chatgpt-for-prorealtime/1 user thanked author for this post.
09/15/2025 at 4:01 PM #25086509/15/2025 at 4:09 PM #25086709/15/2025 at 4:12 PM #250870 -
AuthorPosts
Find exclusive trading pro-tools on 