Merci pour les conseils, le code est en cours depuis 5 jours, j'ai résolu le problème de ne pas définir de transactions, je veux juste faire de petites mises à jour :)
// Ajuster l'alpha en fonction de la volatilité (ATR)double atr = iATR(_Symbol, PERIOD_CURRENT, period); // Calculer l'ATRif(atr > 0.0)
alpha = atr * 0.1; // Fixer l'alpha proportionnellement à la volatilitéelse
alpha = inputAlpha; // Retour à la valeur d'entrée si l'ATR n'est pas disponible
1. corrections de bogues : - Dans FFT : L'appel FFT récursif pour les tableaux pairs et impairs peut conduire à une récursion infinie si la taille du tableau n'est pas un degré de deux. Nous devons nous assurer que la taille du tableau est un degré de deux. Ceci n'est pas vérifié dans le code actuel. - Dans la fonction CalculateFractalComponentFFT :, nous utilisons la FFT mais ne vérifions pas que N est un degré de deux. De plus, après la FFT, nous n'utilisons que les N/2 premiers éléments, ce qui est correct, mais le code de la FFT comporte une erreur d'indexation lors de la combinaison. 2. Améliorations : - Dans la fonction ExecuteTrade : la vérification de la position ouverte à l'aide de PositionSelect(_Symbol) n'est pas tout à fait correcte, parce que cette fonction renvoie vrai s'il y a une position sur un symbole, mais pas nécessairement qu'elle est ouverte à ce moment-là. Il est préférable d'utiliser une boucle à travers toutes les positions et de vérifier le numéro magique et le symbole. - En outre, dans ExecuteTrade, nous ne vérifions pas s'il existe déjà une position ouverte, de sorte que nous pouvons ouvrir plusieurs positions. Nous devons limiter l'ouverture à une seule position (ou utiliser le numéro magique pour identifier nos positions). - Dans la fonction OptimiseParameters :, le calcul de la moyenne mobile peut être remplacé par la fonction iMA intégrée. - Dans la fonction SimulerPrix : l'utilisation de MathRand() n'est peut-être pas la meilleure pour Monte Carlo, il est préférable d'utiliser la distribution normale.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
D'après ce que j'ai lu, toutes les formes d'ordres à exécution immédiate nécessitent que lechamp type_filling soit défini.
Trade Request Structure - Data Structures - Constants, Enumerations and Structures - MQL5 Reference - Référence sur le langage de trading algorithmique/automatisé pour MetaTrader 5
Propriétés de l'ordre - Constantes commerciales - Constantes, énumérations et structures - Référence MQL5 - Référence sur le langage de trading algorithmique/automatique pour MetaTrader 5
Merci pour les conseils, le code est en cours depuis 5 jours, j'ai résolu le problème de ne pas définir de transactions, je veux juste faire de petites mises à jour :)
Vous devez faire une nouvelle itération
ce code ne va pas calculer correctement l'ATR
https://www.mql5.com/fr/docs/indicators/iatr
Valeur de retour
Renvoie le handle d'un indicateur technique spécifié
Il renvoie le handle qui est un code, et ne renvoie pas la valeur ATR
2. Améliorations : - Dans la fonction ExecuteTrade : la vérification de la position ouverte à l'aide de PositionSelect(_Symbol) n'est pas tout à fait correcte, parce que cette fonction renvoie vrai s'il y a une position sur un symbole, mais pas nécessairement qu'elle est ouverte à ce moment-là. Il est préférable d'utiliser une boucle à travers toutes les positions et de vérifier le numéro magique et le symbole. - En outre, dans ExecuteTrade, nous ne vérifions pas s'il existe déjà une position ouverte, de sorte que nous pouvons ouvrir plusieurs positions. Nous devons limiter l'ouverture à une seule position (ou utiliser le numéro magique pour identifier nos positions). - Dans la fonction OptimiseParameters :, le calcul de la moyenne mobile peut être remplacé par la fonction iMA intégrée. - Dans la fonction SimulerPrix : l'utilisation de MathRand() n'est peut-être pas la meilleure pour Monte Carlo, il est préférable d'utiliser la distribution normale.