[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 606
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Montrez la fonction elle-même.
Si c'est void ClosePartPosBySelect(double Part), changez en
void ClosePartPosBySelect()
La fonction ClosePosBySelect() de Kim est modifiée de sorte qu'elle nécessite un paramètre passé de type double, qui est la variable Part
deux façons
1) Dans la fonction où la valeur est modifiée, ajoutez une esperluette,
Par exemple, void function( double& Part ){}
alors, lorsqu'une valeur à l'intérieur de la fonction est modifiée, la nouvelle valeur retourne à l'endroit de l'appel.
2. retirer la variable de la liste des paramètres de la fonction, puisque la variable est définie globalement, sa valeur peut être modifiée à n'importe quel endroit du code sans la passer en paramètre...
La première variante est meilleure, puisqu'il peut y avoir plus d'une variable déclarée globalement (et à l'intérieur d'une fonction)...
J'ai parcouru le post, en fait, la réponse a déjà été donnée...
Bonjour chers professionnels.
J'aimerais vraiment écrire un EA qui ouvrirait deux ordres de vente et d'achat en même temps.
Ensuite, après un certain nombre de points (paramètre lim), l'ordre perdant serait fermé,
et un ordre rentable sera clôturé lorsque le prix aura chuté en dessous du prix maximum depuis l'ouverture de l'ordre.
(une sorte de trailing stop virtuel).
Dans l'agonie, j'ai créé ceci, mais cela ne fonctionne pas... ne fonctionne pas
Veuillez suggérer quelque chose
Comment passer un paramètre à cette fonction alors ?
C'est l'ensemble de l'année 2009... Seules les lectures de Momentum sont utilisées pour l'entrée :
Sur le TF H1 nous cherchons le moment de la rupture du mouvement Momentum, et sur le TF M5 nous trouvons le moment exact pour entrer sur le marché. Lors de l'ouverture d'une position, nous vérifions l'heure d'ouverture de la position précédente, afin de ne pas ouvrir la totalité du dépôt au moment du signal d'entrée...
Le moment d'entrer sur le marché est confirmé par la position du Demarker dans les zones de surachat/survente sur les TF M5 et M15...
... D'ailleurs, sans casiers, c'était aussi positif.
... Même le fait que j'ai négligemment effectué le test uniquement avec Demarker, a donné des résultats intéressants :
![Seulement DeMarker](https://c.mql5.com/mql4/forum/2010/06/riudemark_small.gif)
C'est quelque chose comme ça quelque part :
Je me demande, si le résultat est similaire, pourquoi utiliser le momentum, qui est bon (comme on dit) pour montrer le moment de l'épuisement de la tendance (fin) ? Lors des ruptures de momentum, le prix a continué à monter et des positions ont été ouvertes à chaque nouvelle rupture de momentum... C'est donc les premières entrées que j'ai décidé de verrouiller...
Qu'en pensez-vous ?
vous ne pouvez pas utiliser la barre zéro dans le testeur, pour la simple raison que malgré le fait qu'elle est seulement en cours de formation (ticks du testeur) le testeur a des informations complètes sur les prix de cette barre, parce qu'elle (la barre) est un fait accompli et le testeur regarde dans le futur en prenant les données de l'historique des cotations, pas ce qu'il génère avec les ticks... déplacez une barre vers la gauche et considérez les Momentums pour 1,2,3 au lieu de 0,1,2 et demo 1 au lieu de 0...
Il est également judicieux de n'utiliser que les m5 actuels et de multiplier les périodes où des prix plus anciens sont utilisés. 14 * PERIOD_H1 / Période() et 14 * PERIOD_M15 / Période()
vous ne pouvez pas utiliser la barre zéro dans le testeur, pour la simple raison que malgré le fait qu'elle est seulement en cours de formation (ticks du testeur) le testeur a des informations complètes sur les prix de cette barre, parce qu'elle (la barre) est un fait accompli et le testeur regarde dans le futur en prenant les données de l'historique des cotations, pas ce qu'il génère avec les ticks... déplacez une barre vers la gauche et considérez les Momentums pour 1,2,3 au lieu de 0,1,2 et demo 1 au lieu de 0...
Il est également judicieux de n'utiliser que les m5 actuels et de multiplier les périodes où des prix plus anciens sont utilisés. 14 * PERIOD_H1 / Période() et 14 * PERIOD_M15 / Période()
Je me suis déjà creusé les méninges :) - Voilà le problème :
L'EA fonctionne en mode semi-automatique - ses entrées sont mes sorties de positions, mais je n'arrive pas à comprendre - comment faire pour que l'EA ne fasse qu'une seule transaction avant ma commande pour la suivante, c'est à dire que je n'ai pas de bouton start/start sur le graphique :) . Ma section init() est occupée, et je ne peux pas désactiver mon EA - ses calculs sont nécessaires pour un chalutage correct
enfin, si le résultat (dynamique) n'est pas très différent de celui obtenu en utilisant une barre de zéro, il n'y a peut-être pas de peeking, mais il vaut mieux se prémunir contre les illusions...
Comment est-il possible de résoudre de tels problèmes ?
Peut-être existe-t-il un moyen de réduire ce glissement ? Votre avis ?