[{"data":1,"prerenderedAt":721},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-dev-graphique-trade":160,"-fr-dev-graphique-trade-surround":718},[4,25,87,121,136],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Bien démarrer",false,"\u002Ffr\u002Fgetting-started","fr\u002F1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Ffr\u002Fgetting-started\u002Fintroduction","fr\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Ffr\u002Fgetting-started\u002Finstallation","fr\u002F1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Premier démarrage","\u002Ffr\u002Fgetting-started\u002Fpremier-demarrage","fr\u002F1.getting-started\u002F3.premier-demarrage","i-lucide-rocket",{"title":26,"icon":6,"path":27,"stem":28,"children":29,"page":6},"Guide d'utilisation","\u002Ffr\u002Fguide","fr\u002F2.guide",[30,57,62,67,72,77,82],{"title":31,"path":32,"stem":33,"children":34},"Importation de fichiers","\u002Ffr\u002Fguide\u002Fimport","fr\u002F2.guide\u002F1.import\u002Findex",[35,36,41,45,49,53],{"title":31,"path":32,"stem":33},{"title":37,"path":38,"stem":39,"icon":40},"MetaTrader 5","\u002Ffr\u002Fguide\u002Fimport\u002Fmt5","fr\u002F2.guide\u002F1.import\u002F1.mt5","i-lucide-file-spreadsheet",{"title":42,"path":43,"stem":44,"icon":40},"NinjaTrader 8","\u002Ffr\u002Fguide\u002Fimport\u002Fninja-trader","fr\u002F2.guide\u002F1.import\u002F2.ninja-trader",{"title":46,"path":47,"stem":48,"icon":40},"Interactive Brokers","\u002Ffr\u002Fguide\u002Fimport\u002Finteractive-brokers","fr\u002F2.guide\u002F1.import\u002F3.interactive-brokers",{"title":50,"path":51,"stem":52,"icon":40},"Quantower","\u002Ffr\u002Fguide\u002Fimport\u002Fquantower","fr\u002F2.guide\u002F1.import\u002F4.quantower",{"title":54,"path":55,"stem":56,"icon":40},"Standard CSV format","\u002Ffr\u002Fguide\u002Fimport\u002Fstandard-csv","fr\u002F2.guide\u002F1.import\u002F5.standard-csv",{"title":58,"path":59,"stem":60,"icon":61},"Dashboard et métriques","\u002Ffr\u002Fguide\u002Fdashboard","fr\u002F2.guide\u002F2.dashboard","i-lucide-chart-line",{"title":63,"path":64,"stem":65,"icon":66},"Calendrier","\u002Ffr\u002Fguide\u002Fcalendrier","fr\u002F2.guide\u002F3.calendrier","i-lucide-calendar",{"title":68,"path":69,"stem":70,"icon":71},"Vue quotidienne","\u002Ffr\u002Fguide\u002Fdaily-view","fr\u002F2.guide\u002F4.daily-view","i-lucide-calendar-days",{"title":73,"path":74,"stem":75,"icon":76},"Transactions","\u002Ffr\u002Fguide\u002Ftrades","fr\u002F2.guide\u002F5.trades","i-lucide-table",{"title":78,"path":79,"stem":80,"icon":81},"Panneau de notes","\u002Ffr\u002Fguide\u002Fnotes","fr\u002F2.guide\u002F6.notes","i-lucide-pen-tool",{"title":83,"path":84,"stem":85,"icon":86},"Système de tags","\u002Ffr\u002Fguide\u002Ftags","fr\u002F2.guide\u002F7.tags","i-lucide-tag",{"title":88,"icon":6,"path":89,"stem":90,"children":91,"page":6},"Paramètres","\u002Ffr\u002Fparametres","fr\u002F3.parametres",[92,97,102,106,111,116],{"title":93,"path":94,"stem":95,"icon":96},"Comptes","\u002Ffr\u002Fparametres\u002Fcomptes","fr\u002F3.parametres\u002F1.comptes","i-lucide-users",{"title":98,"path":99,"stem":100,"icon":101},"Symboles","\u002Ffr\u002Fparametres\u002Fsymboles","fr\u002F3.parametres\u002F2.symboles","i-lucide-chart-candlestick",{"title":103,"path":104,"stem":105,"icon":86},"Tags","\u002Ffr\u002Fparametres\u002Ftags","fr\u002F3.parametres\u002F3.tags",{"title":107,"path":108,"stem":109,"icon":110},"Sauvegardes","\u002Ffr\u002Fparametres\u002Fbackup","fr\u002F3.parametres\u002F4.backup","i-lucide-database-backup",{"title":112,"path":113,"stem":114,"icon":115},"Plugins","\u002Ffr\u002Fparametres\u002Fplugins","fr\u002F3.parametres\u002F6.plugins","i-lucide-puzzle",{"title":117,"path":118,"stem":119,"icon":120},"Options","\u002Ffr\u002Fparametres\u002Foptions","fr\u002F3.parametres\u002F7.options","i-lucide-cog",{"title":122,"icon":6,"path":123,"stem":124,"children":125,"page":6},"Configuration avancée","\u002Ffr\u002Favance","fr\u002F4.avance",[126,131],{"title":127,"path":128,"stem":129,"icon":130},"Configuration","\u002Ffr\u002Favance\u002Fconfiguration","fr\u002F4.avance\u002F1.configuration","i-lucide-settings",{"title":132,"path":133,"stem":134,"icon":135},"FAQ","\u002Ffr\u002Favance\u002Ffaq","fr\u002F4.avance\u002F3.faq","i-lucide-circle-help",{"title":137,"icon":138,"path":139,"stem":140,"children":141,"page":6},"Développeur","i-lucide-code","\u002Ffr\u002Fdev","fr\u002F5.dev",[142,147,152,155],{"title":143,"path":144,"stem":145,"icon":146},"Référence technique","\u002Ffr\u002Fdev\u002Freference-technique","fr\u002F5.dev\u002F1.reference-technique","i-lucide-server",{"title":148,"path":149,"stem":150,"icon":151},"Stockage externe","\u002Ffr\u002Fdev\u002Fstockage-externe","fr\u002F5.dev\u002F2.stockage-externe","i-lucide-hard-drive",{"title":112,"path":153,"stem":154,"icon":115},"\u002Ffr\u002Fdev\u002Fplugins","fr\u002F5.dev\u002F3.plugins",{"title":156,"path":157,"stem":158,"icon":159},"Graphique du trade","\u002Ffr\u002Fdev\u002Fgraphique-trade","fr\u002F5.dev\u002F4.graphique-trade","i-lucide-candlestick-chart",{"id":161,"title":156,"body":162,"description":709,"extension":710,"links":711,"meta":712,"navigation":713,"path":157,"seo":714,"stem":158,"__hash__":717},"docs_fr\u002Ffr\u002F5.dev\u002F4.graphique-trade.md",{"type":163,"value":164,"toc":691},"minimark",[165,169,174,185,283,291,297,376,379,383,388,391,401,404,408,411,417,430,434,445,449,452,456,467,487,503,507,530,611,614,618,633,637,675,678,681],[166,167,168],"p",{},"Le graphique du trade s'affiche dans la modale de détail d'un trade dans la vue quotidienne. Il affiche un graphique candlestick dont les données proviennent de Polygon.io, avec le point d'entrée, le point de sortie et optionnellement les trades adjacents superposés.",[170,171,173],"h2",{"id":172},"mapping-des-symboles","Mapping des symboles",[166,175,176,180,181,184],{},[177,178,179],"code",{},"tradeToPolygonSymbol()"," convertit un symbole de trade en ticker Polygon en fonction du ",[177,182,183],{},"instrumentType"," du trade.",[186,187,188,220,244,253,262,277],"ul",{},[189,190,191,195,196,199,200,203,204,207,208,211,212,215,216,219],"li",{},[192,193,194],"strong",{},"Forex"," : les paires de 6 lettres sont préfixées avec ",[177,197,198],{},"C:"," (ex. ",[177,201,202],{},"EURUSD"," → ",[177,205,206],{},"C:EURUSD","). Les alias métaux comme ",[177,209,210],{},"GOLD"," ou ",[177,213,214],{},"XAU"," sont mappés vers ",[177,217,218],{},"C:XAUUSD",".",[189,221,222,225,226,229,230,233,234,199,237,203,240,243],{},[192,223,224],{},"Crypto"," : correspond au format ",[177,227,228],{},"X:BASEQUOTE",". ",[177,231,232],{},"USDT"," est normalisé en ",[177,235,236],{},"USD",[177,238,239],{},"BTCUSDT",[177,241,242],{},"X:BTCUSD",").",[189,245,246,249,250,243],{},[192,247,248],{},"Stock"," : ticker nu (ex. ",[177,251,252],{},"AAPL",[189,254,255,258,259,243],{},[192,256,257],{},"Future"," : ticker nu avec code mois\u002Fannée (ex. ",[177,260,261],{},"ESZ5",[189,263,264,267,268,199,271,203,274,243],{},[192,265,266],{},"Option"," : préfixé avec ",[177,269,270],{},"O:",[177,272,273],{},"AAPL240315C00150000",[177,275,276],{},"O:AAPL240315C00150000",[189,278,279,282],{},[192,280,281],{},"Any \u002F indéfini"," : si le symbole ressemble à un future, il est traité comme tel.",[170,284,286,287,290],{"id":285},"alias-polygon-spgn","Alias Polygon (",[177,288,289],{},"spgn",")",[166,292,293,294,296],{},"Pour les symboles qui ne se mappent pas automatiquement, ajoutez un champ personnalisé nommé ",[177,295,289],{}," dans la configuration du symbole. La valeur est le ticker Polygon à utiliser. Un préfixe optionnel permet de forcer le type d'instrument utilisé pour appeler l'API Polygon :",[298,299,300,316],"table",{},[301,302,303],"thead",{},[304,305,306,310,313],"tr",{},[307,308,309],"th",{},"Préfixe",[307,311,312],{},"Type d'instrument",[307,314,315],{},"Exemple",[317,318,319,334,348,362],"tbody",{},[304,320,321,327,329],{},[322,323,324],"td",{},[177,325,326],{},"ft:",[322,328,257],{},[322,330,331],{},[177,332,333],{},"ft:ES",[304,335,336,341,343],{},[322,337,338],{},[177,339,340],{},"fx:",[322,342,194],{},[322,344,345],{},[177,346,347],{},"fx:EURUSD",[304,349,350,355,357],{},[322,351,352],{},[177,353,354],{},"cr:",[322,356,224],{},[322,358,359],{},[177,360,361],{},"cr:BTCUSD",[304,363,364,369,371],{},[322,365,366],{},[177,367,368],{},"st:",[322,370,248],{},[322,372,373],{},[177,374,375],{},"st:AAPL",[166,377,378],{},"C'est utile quand un symbole broker diffère du ticker Polygon ou quand le type d'instrument doit être forcé.",[170,380,382],{"id":381},"récupération-des-données","Récupération des données",[384,385,387],"h3",{"id":386},"api-standard-aggregates","API standard aggregates",[166,389,390],{},"Les actions, forex, crypto et options utilisent :",[392,393,398],"pre",{"className":394,"code":396,"language":397},[395],"language-text","https:\u002F\u002Fapi.polygon.io\u002Fv2\u002Faggs\u002Fticker\u002F{ticker}\u002Frange\u002F{multiplier}\u002F{timespan}\u002F{from}\u002F{to}\n","text",[177,399,396],{"__ignoreMap":400},"",[166,402,403],{},"Les timestamps sont retournés en millisecondes et convertis en secondes pour le graphique.",[384,405,407],{"id":406},"api-futures","API futures",[166,409,410],{},"Les futures utilisent un endpoint dédié :",[392,412,415],{"className":413,"code":414,"language":397},[395],"https:\u002F\u002Fapi.polygon.io\u002Ffutures\u002Fv1\u002Faggs\u002F{ticker}\n",[177,416,414],{"__ignoreMap":400},[166,418,419,420,423,424,423,427,243],{},"L'API futures retourne des timestamps en nanosecondes et utilise un format de résolution différent (",[177,421,422],{},"1min",", ",[177,425,426],{},"1hour",[177,428,429],{},"1session",[384,431,433],{"id":432},"résolution-des-contrats","Résolution des contrats",[166,435,436,437,440,441,444],{},"Si un symbole future n'a pas de code d'expiration (ex. ",[177,438,439],{},"MGC",") ou si le trade tombe dans le mois d'expiration, l'application interroge l'endpoint ",[177,442,443],{},"\u002Ffutures\u002Fv1\u002Fcontracts"," pour trouver le contrat front-month. Les contrats en mois d'expiration sont ignorés pour éviter les données dégradées, avec un fallback sur le contrat le plus proche si nécessaire.",[170,446,448],{"id":447},"rate-limiting","Rate limiting",[166,450,451],{},"Le plan gratuit Polygon autorise 5 requêtes par minute. Le client applique un délai minimum de 12 secondes entre les requêtes et réessaie jusqu'à 3 fois en cas de HTTP 429 avec un backoff exponentiel (12s, 24s, 48s).",[170,453,455],{"id":454},"cache","Cache",[166,457,458,459,462,463,466],{},"Les barres sont mises en cache dans le navigateur via ",[177,460,461],{},"idb-keyval"," (",[177,464,465],{},"IndexedDB","). Le cache utilise des clés de période :",[186,468,469,478],{},[189,470,471,472,462,475,290],{},"Timeframes ≤ 5 minutes : ",[192,473,474],{},"semaines ISO",[177,476,477],{},"YYYY-Www",[189,479,480,481,462,484,290],{},"Timeframes > 5 minutes : ",[192,482,483],{},"mois",[177,485,486],{},"YYYY-MM",[166,488,489,490,493,494,498,499,502],{},"Chaque période est stockée séparément sous une clé comme ",[177,491,492],{},"polygon:{ticker}:{tf}:{periodKey}",". Les périodes historiques ne sont jamais rafraîchies ; les périodes courantes ou futures sont rafraîchies au maximum une fois par minute. Un bouton ",[495,496,497],"em",{},"Vider le cache Polygon"," dans ",[192,500,501],{},"Paramètres → Options"," supprime toutes les entrées du cache.",[170,504,506],{"id":505},"plage-de-dates-et-timeframes","Plage de dates et timeframes",[166,508,509,510,423,513,423,516,519,520,423,523,423,526,529],{},"Timeframes disponibles : ",[177,511,512],{},"1",[177,514,515],{},"5",[177,517,518],{},"15"," minutes, ",[177,521,522],{},"1 heure",[177,524,525],{},"4 heures",[177,527,528],{},"daily",". La plage demandée est centrée sur le trade avec un buffer adaptatif :",[298,531,532,545],{},[301,533,534],{},[304,535,536,539,542],{},[307,537,538],{},"Timeframe",[307,540,541],{},"Barres de buffer",[307,543,544],{},"Contexte approximatif",[317,546,547,558,569,580,590,600],{},[304,548,549,552,555],{},[322,550,551],{},"1 min",[322,553,554],{},"1500",[322,556,557],{},"~25 heures",[304,559,560,563,566],{},[322,561,562],{},"5 min",[322,564,565],{},"1000",[322,567,568],{},"~83 heures",[304,570,571,574,577],{},[322,572,573],{},"15 min",[322,575,576],{},"800",[322,578,579],{},"~200 heures",[304,581,582,584,587],{},[322,583,522],{},[322,585,586],{},"500",[322,588,589],{},"~500 heures",[304,591,592,594,597],{},[322,593,525],{},[322,595,596],{},"400",[322,598,599],{},"~1600 heures",[304,601,602,605,608],{},[322,603,604],{},"Daily",[322,606,607],{},"250",[322,609,610],{},"~250 jours",[166,612,613],{},"Au chargement, le graphique défile vers une fenêtre visible centrée sur le milieu du trade. La taille de cette fenêtre est aussi adaptative selon le timeframe.",[170,615,617],{"id":616},"fuseau-horaire-daffichage","Fuseau horaire d'affichage",[166,619,620,621,462,623,423,626,211,629,632],{},"Les axes du graphique et les étiquettes du curseur respectent le fuseau horaire configuré dans ",[192,622,501],{},[177,624,625],{},"CURRENT",[177,627,628],{},"LOCAL",[177,630,631],{},"UTC","). C'est indépendant des timestamps UTC bruts stockés par Polygon.",[170,634,636],{"id":635},"marqueurs-et-superpositions","Marqueurs et superpositions",[186,638,639,657,663,669],{},[189,640,641,644,645,648,649,652,653,656],{},[192,642,643],{},"Marqueurs d'entrée \u002F sortie"," : flèches ",[177,646,647],{},"BUY","\u002F",[177,650,651],{},"SELL"," sous la barre d'entrée, flèche ",[177,654,655],{},"EXIT"," au-dessus de la barre de sortie.",[189,658,659,662],{},[192,660,661],{},"Segments de prix"," : courtes lignes horizontales aux prix d'entrée et de sortie exacts.",[189,664,665,668],{},[192,666,667],{},"Ligne de trade"," : ligne pointillée reliant les prix d'entrée et de sortie.",[189,670,671,674],{},[192,672,673],{},"Trades adjacents"," : marqueurs et segments de prix monochromes optionnels pour les autres trades sur le même symbole dans la plage visible.",[166,676,677],{},"Les marqueurs et segments qui tombent en dehors de la plage de données récupérées sont ignorés pour éviter que le graphique ne plante.",[170,679,127],{"id":680},"configuration",[166,682,683,684,686,687,690],{},"La clé API Polygon est configurée dans ",[192,685,501],{},". Elle est stockée dans le navigateur (persistée dans ",[177,688,689],{},"localStorage",") et utilisée pour toutes les requêtes du graphique de trade. Il n'y a pas de fallback vers une clé publique ou une variable d'environnement.",{"title":400,"searchDepth":692,"depth":692,"links":693},2,[694,695,697,703,704,705,706,707,708],{"id":172,"depth":692,"text":173},{"id":285,"depth":692,"text":696},"Alias Polygon (spgn)",{"id":381,"depth":692,"text":382,"children":698},[699,701,702],{"id":386,"depth":700,"text":387},3,{"id":406,"depth":700,"text":407},{"id":432,"depth":700,"text":433},{"id":447,"depth":692,"text":448},{"id":454,"depth":692,"text":455},{"id":505,"depth":692,"text":506},{"id":616,"depth":692,"text":617},{"id":635,"depth":692,"text":636},{"id":680,"depth":692,"text":127},"Fonctionnement du graphique de trade dans PnlTracker - intégration Polygon, mapping des symboles, cache et rate limiting.","md",null,{},{"icon":159},{"title":715,"description":716},"Graphique du trade - PnlTracker","Détails techniques du graphique de trade de PnlTracker.","0tCzrj_87zZUKHIAgAjB2k8CCV9ArMUdbDBegUw1XRY",[719,711],{"title":112,"path":153,"stem":154,"description":720,"icon":115,"children":-1},"Guide de compilation et de packaging des plugins pour PnlTracker.",1785435085688]