Je travaille sur un projet personnel et j'essaie de créer une extension Chrome qui aiderait à bloquer les trades impulsifs lorsque je négocie sur certaines plateformes. Mon idée est d'afficher une "checklist" avant chaque achat/vente, pour m'assurer que les conditions de trading sont réunies avant de prendre une décision.
J'ai déjà écrit une partie du code, et voici ce qu'il fait :
Lorsqu'un bouton "Buy" ou "Sell" est cliqué, il empêche l'action de se produire immédiatement.
Il affiche une popup avec une checklist de questions à se poser avant de procéder à l'achat ou la vente.
Après avoir validé la checklist, l'action d'achat ou de vente est ensuite lancée.
Le problème, c'est que je ne suis pas un expert en développement web et que je rencontre des difficultés pour finaliser l'extension. ChatGPT a été utile pour une partie du travail, mais je me heurte à un mur pour faire en sorte que tout fonctionne correctement.
Je me demandais si quelqu'un ici pourrait m'aider à résoudre ce souci ou me donner des conseils pour avancer dans le développement de cette extension.
Merci d'avance pour votre aide, c'est grandement apprécié ! ???? (Vous pouvez testez sur la console vous verrez le soucis, j'utilise la version web de MT5 bien entendu..).
// Ajoute un écouteur d'événement pour détecter un clic sur un bouton "Buy" ou "Sell"
document.addEventListener("click", function(event) {
// Vérifie si l'élément cliqué est un bouton "Buy" ou "Sell"
const button = event.target.closest(".button.buy, .button.sell");
if (button) {
// Empêche l'action par défaut de se produire immédiatement (empêche l'achat/vente)
event.preventDefault();
event.stopImmediatePropagation(); // Empêche la propagation immédiate de l'événement
// Désactive les boutons pour éviter toute action pendant que la popup est affichée
disableButtons();
// Vérifie si le bouton cliqué est "buy" ou "sell"
let tradeType = button.classList.contains("buy") ? "buy" : "sell";
console.log("Action détectée : " + tradeType);
// Affiche la popup avec la checklist
showChecklistPopup(tradeType);
}
});
// Fonction pour afficher la popup avec la checklist
function showChecklistPopup(tradeType) {
const popup = document.createElement("div");
popup.style.position = "fixed";
popup.style.top = "50%";
popup.style.left = "50%";
popup.style.transform = "translate(-50%, -50%)";
popup.style.backgroundColor = "#f4f4f4";
popup.style.padding = "20px";
popup.style.border = "2px solid #333";
popup.style.borderRadius = "8px";
popup.style.boxShadow = "0 4px 6px rgba(0, 0, 0, 0.1)";
popup.style.zIndex = "9999";
popup.innerHTML = `
<h3>✅ Checklist Avant de er un Trade</h3>
<ul>
<li>☐ La tendance est-elle alignée ?</li>
<li>☐ Y a-t-il une zone de liquidité proche ?</li>
<li>☐ La session est-elle favorable ?</li>
<li>☐ Ai-je une confirmation de mon entrée ?</li>
<li>☐ Le Stop Loss est-il bien placé ?</li>
<li>☐ Ai-je un bon ratio Risk/Reward ?</li>
</ul>
<div>
<p><strong>Type de Trade: ${tradeType.toUpperCase()}</strong></p>
<button onclick="confirmTrade('${tradeType}')">Confirmer Trade</button>
<button onclick="closePopup()">Fermer</button>
</div>
`;
document.body.appendChild(popup);
}
// Fonction pour confirmer le trade (une fois la popup fermée)
function confirmTrade(tradeType) {
// Réactive les boutons de trading après la confirmation
enableButtons();
const popup = document.querySelector("div");
if (popup) {
popup.remove(); // Ferme la popup
}
// Recherche à nouveau le bouton et déclenche l'action "buy" ou "sell"
const button = document.querySelector(`.button.${tradeType}`);
if (button) {
button.click(); // Cela déclenche effectivement l'action d'achat/vente
}
}
// Fonction pour fermer la popup sans effectuer l'action
function closePopup() {
// Réactive les boutons de trading après la fermeture de la popup
enableButtons();
const popup = document.querySelector("div");
if (popup) {
popup.remove(); // Ferme la popup sans rien faire
}
}
// Fonction pour désactiver les boutons de trading (Buy/Sell)
function disableButtons() {
const buyButton = document.querySelector(".button.buy");
const sellButton = document.querySelector(".button.sell");
if (buyButton) {
buyButton.disabled = true;
}
if (sellButton) {
sellButton.disabled = true;
}
}
// Fonction pour réactiver les boutons de trading après la confirmation ou fermeture
function enableButtons() {
const buyButton = document.querySelector(".button.buy");
const sellButton = document.querySelector(".button.sell");
if (buyButton) {
buyButton.disabled = false;
}
if (sellButton) {
sellButton.disabled = false;
}
}
A voir également:
Extension Chrome afin de bloquer les trades impulsifs
J'ajouterai que le fait de er par une extension Chrome intervenant sur le html d'un service en ligne te met à la merci des changements que pourra faire son éditeur à sa page, entre autres complications.
MT5 dispose d'une version Desktop sur laquelle tu peux programmer des "expert advisors" dans un langage proche du C++ avec une API te permettant d’interagir de façon fiable avec le programme.