[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 909

 
S'il vous plaît, dites-moi s'il existe un indicateur qui montre le volume total des positions ouvertes, parce que lorsque beaucoup d'ordres différents sont ouverts, il peut être paresseux de compter. merci.
 

J'ai besoin d'aide. J'ai un conseiller expert dans le tutoriel, mais il ne fonctionne qu'avec un seul ordre de marché, et je veux le faire fonctionner avec plusieurs, en négociant sur différents instruments financiers et en ouvrant et fermant des ordres sur eux en même temps. J'ai lancé un exemple ci-dessous, mais j'ai ralenti sur celui où la valeur de la première commande est affectée aux variables des commandes comptables. Comment puis-je faire de même pour le deuxième ordre (d'une autre paire de devises) ? Et si je veux que non seulement un seul ordre fonctionne pour ces paires de devises mais par exemple, pour une journée l'indicateur a montré plusieurs ouvertures mais la fermeture n'a pas encore eu lieu et 3 ou 5 ordres sont ouverts en paires sur ces deux paires de devises. Veuillez me conseiller sur la manière de mettre en œuvre cette mesure.


// Compte des ordres
Symb1=SymbolN1(variable externe) ; // Nom de l'instrument financier.
Symb2=SymbolN2(variable externe) ; // Nom de l'instrument financier.
Total=0 ; // Nombre d'ordres
for(int i=1 ; i<=OrdersTotal() ; i++) // Boucle d'ordres
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Si ce qui suit
{ // Analyse des ordres :
if (OrderSymbol()!=Symb1 $$ OrderSymbol() !=Symb2)continue ; // Pas notre instrument financier
if (OrderType()>1) // Ordre en attente détecté
{
Alert("Ordre en attente détecté. Le conseiller expert ne fonctionne pas.") ;
return ; // Sortie start()
}
Total++ ; // Compteur de marché. ordres
if (Total>2) // Pas plus de deux ordres
{
Alert("plus de 2 ordres de marché. L'Expert Advisor ne fonctionne pas.") ;
return ; // Exit start()
}
En dessous de cette valeur est fixée à la variable, pour en faire quelque chose à la seconde itération, puisqu'il y aura 2 ordres (le second sur une autre paire de devises) ils changeront les valeurs pour le second ordre mais j'ai besoin d'engager les informations pour le premier et le second ordre.
Ticket=OrderTicket() ; // Numéro de la commande sélectionnée.
Tip =OrderType() ; // Type de la commande sélectionnée.
Prix =OrderOpenPrice() ; // Prix de l'ordre sélectionné.
SL =OrderStopLoss() ; // SL de l'ordre sélectionné.
TP =OrderTakeProfit() ; // TP de l'ordre sélectionné.
Lot =OrderLots() ; // Nombre de lots
Peut-on utiliser les mêmes variables pour le deuxième ordre, mais avec le préfixe 1 ?
Ticket1=OrderTicket() ; // Numéro de la commande sélectionnée.
Tip1 =OrderType() ; // Type de la commande sélectionnée.
Prix1 =OrderOpenPrice() ; // Prix de l'ordre sélectionné.
SL1 =OrderStopLoss() ; // SL de l'ordre sélectionné.
TP1 =OrderTakeProfit() ; // TP de l'ordre sélectionné.
Lot1 =OrderLots() ; // Nombre de lots
}
}

 
artmedia70:

ERR_LONGS_NOT_ALLOWED 4110 Les positions longues ne sont pas autorisées. Les propriétés des experts doivent être vérifiées.

ERR_SHORTS_NOT_ALLOWED 4111 Les positions courtes ne sont pas autorisées. Les propriétés des experts doivent être vérifiées.


qu'entendez-vous par positions longues et courtes, à quoi ressemblent-elles ?
 
artmedia70:

Une pensée à peu près correcte.

Il s'agit en grande majorité de variables de type bool.

Et il ne peut avoir que deux valeurs :

vrai (true) et faux (false ).

Ainsi, si le drapeau est activé (valeur vraie), cela signifie qu'il y a un ordre, et s'il est désactivé (valeur fausse), cela signifie qu'il n'y a pas d'ordre.

Les valeurs true et false ne signifient pas nécessairement présence/absence.

Parfois, faux signifie qu'une condition est présente , et vrai signifie qu'il n'y a pas de condition.

Tout dépend de la logique du programme et des critères que le programmeur vérifie.

Dans tous les cas, si vous définissez ces drapeaux vous-même, vous pouvez spécifier quelle valeur de drapeau (vrai ou faux)

correspondra à un état de données ou à un autre.

En même temps, il existe des fonctions standard qui renvoient vrai ou faux en fonction du résultat de la fonction.

Ces valeurs peuvent être trouvées dans la référence de la fonction.

Artyom, merci.
 
gheka:

que signifient long et court ? à quoi ressemblent-ils ?

Long = Long = Acheter

short =Short = Vendre


 

Merci.

 

Je recherche un script qui ferme un ordre uniquement lorsque la barre est supérieure ou inférieure à un niveau spécifié.

Bien sûr, il devrait y avoir un paramètre tf.

. S'il y en a un, donnez-moi un lien. Merci d'avance

 

J'ai des ordres d'achat et de vente qui s'ouvrent au même prix pour près de 50-100 positions,

comment faire pour qu'un seul ordre soit ouvert, si je ne me trompe pas - OrdersTotal()

Si oui, comment dois-je l'utiliser et où dois-je la placer ? J'ai l'impression que sans cette fonction, je dois saisir l'algèbre entière.

 
gheka:

J'ai des ordres d'achat et de vente qui s'ouvrent au même prix pour près de 50-100 positions,

comment faire pour qu'un seul ordre soit ouvert, si je ne me trompe pas - OrdersTotal()

Si oui, comment dois-je l'utiliser et où dois-je la placer ? J'ai l'impression que sans cette fonction, je dois saisir l'algèbre entière.


Vous auriez dû joindre votre propre code.
 
gheka:

J'ai des ordres d'achat et de vente qui s'ouvrent au même prix pour près de 50-100 positions,

comment faire pour qu'un seul ordre soit ouvert, si je ne me trompe pas - OrdersTotal()

si oui, comment dois-je l'utiliser et où dois-je la placer ? j'ai l'impression que sans cette fonction, je dois saisir l'algèbre entière.

La fonction OrderSend() fonctionne avec chaque tick (je le pense). Pour résoudre ce problème, vous devez créer une variable avant la fonction de démarrage, par exemple int H=0.

Plus loin le code :

..........

si ( H==0)

{

OrderSend(bla bla bla) ;

}

H=1 ;

Et il n'y a pas besoin d'algèbre. Et il est préférable de ne pas utiliser OrdersTotal() pour les contraintes.

Raison: