[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 497
![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
code d'intégration dans l'EA, j'avais quelque chose comme ça jusqu'à ce que je l'efface, j'utilisais l'échelle horaire.
orderselect - sélectionne la dernière commande dans l'historique
prendre l'heure de sa fermeture et en sortir l'heure de fermeture
et avant d'ouvrir l'ordre, fixez une condition selon laquelle l'heure actuelle n'est PAS égale à l'heure de clôture de l'ordre dans l'historique.
S'il vous plaît aidez-moi avec ce problème, ma variable TP devient zéro après la deuxième mise à jour du prix, c'est-à-dire, le conseiller ouvre un ordre, et TP et Bid ne sont pas tous les deux égaux à zéro, puis le prix est mis à jour à nouveau et TP est zéro, bien que ce n'est pas dans le code, j'ai eu un problème avec tirer SL vers le haut, mais maintenant il s'avère que le problème est dans la définition de TP
int start()
{
//----
double TP ;
double SL ;
if (OrdersTotal()==0)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,Bid+4*Point) ;
OrderSelect(OrdersTotal()-1,SELECT_BY_POS) ;
TP=OrderTakeProfit() ;
}
Alert ("TP=" + TP) ;
Alert ("Bid=" + Bid) ;
if (OrdersTotal()>0)
{
if (TP-Bid<3*Point)
{
Alert ("Approaching TP by 1 or 2") ;
Alert ("TP=" + TP) ;
Alert ("Bid=" + Bid) ;
}
}
//----
return(0) ;
}
S'il vous plaît, aidez-moi avec ce problème, ma variable TP est remise à zéro après la deuxième mise à jour du prix, c'est-à-dire que l'EA ouvre un ordre et affiche les valeurs de TP et Bid, les deux ne sont pas égales à zéro, puis le prix est mis à jour à nouveau et TP est zéro, bien que dans le code, aucune commande de ce type, j'ai eu un problème avec la remontée de SL, mais maintenant il s'avère que le problème est dans la définition de TP
double TP, SL;
int start()
{
//----
if (OrdersTotal()==0)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,Bid+4*Point);
OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
TP=OrderTakeProfit();
}
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
if (OrdersTotal()>0)
{
if (TP-Bid<3*Point)
{
Alert ("Приблизился к ТП на 1 или 2");
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
}
}
//----
return(0);
}
Veuillez indiquer comment ouvrir un ordre sur une nouvelle barre une seule fois ? ???.
Lire ici : https://www.mql5.com/ru/forum/134437
Bonjour à tous !
Il y a deux signaux dans la stratégie : un primaire et un secondaire. Une transaction est ouverte lorsque le deuxième signal apparaît au plus tard 12 heures plus tard. Question : Comment puis-je apprendre à mon conseiller expert à ne pas réagir au signal, s'il apparaît après 12 heures ? S'il vous plaît, si vous pouvez donner un exemple concret de code
Bonjour à tous !
Il y a deux signaux dans la stratégie : un primaire et un secondaire. Une transaction s'ouvre lorsque le deuxième signal apparaît au plus tard 12 heures plus tard. Question : Comment puis-je apprendre à mon conseiller expert à ne pas réagir au signal, s'il apparaît après 12 heures ? S'il vous plaît, si vous pouvez me donner un exemple du code
Salut Dmitry. Pour ma part, je suis prêt à vous proposer l'option suivante. Par analogie, voir le déclenchement des critères de trading de cet article - il y a également deux signaux - à savoir - voir après la deuxième figure "La première chose à attendre sur le graphique DeMarker est lorsque le DeMarker croise la ligne MA rapide et la ligne MA lente autour de 0.7 pour une position courte. C'est le premier signal préliminaire. Ensuite, nous attendons le franchissement des lignes MA elles-mêmes. C'est le signal principal, après lequel les lectures de l'indicateur Taichi peuvent être effectuées. Si les lignes MA ne sont pas croisées, cela est considéré comme un faux signal et le mouvement du prix se poursuivra. Voici comment cela est implémenté dans mon code - dans l'inclusion des hiboux qui sont responsables du déclenchement des critères de trade.
L'astuce principale consiste à travailler à travers les deux en dessous (à la fin) de l'inclusion en mettant en place et en réinitialisant les drapeaux lorsque l'un ou l'autre critère de transaction est déclenché.
Vous enregistrerez en outre l'heure actuelle lors du déclenchement du critère principal à l'aide de TimeCurrent, c'est-à-dire que vous spécifierez une expression de type x = TimeCurrent avantreturn(OP_BUY) ; oureturn(OP_SELL) ; où x est une variable globale de type datetime par analogie dans la première fonctionint_op_DeMarker. Puis faites de même avec la deuxième fonctionint type_op_MA... - là vous mémorisez la variable y = TimeCurrent ;
Ensuite, dans le bloc de calcul des critères de transaction, vous comparez le signe plus et la valeur de ces deux variables, comme suit (il s'avère que vous n'avez pas besoin de l'analogue du travail avec les valeurs UTC - à la place, vous prenez une comparaison de l'heure de réception de vos deux signaux de transaction) :
P.S. En plus je vous envoie une fonction pour la possibilité d'optimiser la valeur de la TF de travail.
P.P.S. Voici comment cette structure de code est organisée dans mon code. Je n'exclus pas qu'il existe des variantes de code bien meilleures pour remplir de telles conditions de l'EA. :-)))
Comment calculer un profit sur une paire de devises dans mon EA ?
Par exemple, j'ai sept ordres d'achat ouverts sur l'euro à des prix différents. Comment puis-je calculer un profit sur l'euro sans affecter les autres ordres sur les autres paires ? ? ???.
utiliser SelectOrder pour analyser tous les ordres ouverts
vérifier la paire requise (OrderSymbol)
puis ajoutez le profit à une variable quelconque s'il s'agit du OrderProfit requis.
Voici un lien avec des fonctions utiles https://docs.mql4.com/ru/trading/OrderSelect
sur le côté gauche, il y a un menu avec des opérations, toutes sont décrites ici.