[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 - 5. - page 127

 
borilunad:
Désolé, ça ne marchera pas ! Pas le premier, pas le dernier !

Pourquoi ? Parce que la dernière commande est OrdersTotal()- 1, et la première commande a un indice de 0 . Pourquoi alors ça ne marche pas ?
 
borilunad:

J'ai une fonction pour toutes les modifications telles que la mise en place de SL et TP, le transfert vers B/S, la recherche de positions et d'ordres avec tentatives et contrôles d'erreurs.

Je dois seulement prescrire la sélection des positions, les conditions et les avertissements au départ. Voici la fonction :

Petit mais astucieux !


D'ailleurs, votre fonction ne modifie que les ordres. Et les conditions sont déjà toutes réunies au départ. Et j'ai toutes les conditions dans la fonction. Il s'avère qu'il y aura beaucoup de conditions placées au départ et il serait très déraisonnable de le surcharger, n'est-ce pas ? Après tout, l'essence de la fonction réside principalement dans les conditions, et pas seulement dans la fonction de modification pure, avec bien sûr l'affichage des erreurs. Mais d'une certaine manière, vous avez une approche étrange. Je ne l'ai pas encore rencontré. Je regarde et je suis surpris.
 
hoz:

D'ailleurs, votre fonction ne modifie que les ordres. Et les conditions sont déjà toutes réunies au départ. Et j'ai toutes les conditions dans la fonction. Il s'avère qu'il y aura beaucoup de conditions placées au départ et il serait très déraisonnable de le surcharger, n'est-ce pas ? Après tout, l'essence de la fonction réside principalement dans les conditions, et pas seulement dans la fonction de modification pure, avec bien sûr l'affichage des erreurs. Mais c'est une approche étrange. Je n'ai jamais vu une telle approche. Je le regarde et je me demande.
Chacun choisit ce qui lui convient ! J'ai l'avantage qu'une seule fonction remplit précisément toutes les modifications possibles d'une position en attente et ouverte. Je spécifie toutes les conditions nécessaires dans la ligne de départ qui peut changer fréquemment en fonction des caprices du marché. Cela me donne une grande flexibilité dans mon travail. En revanche, il faut avoir beaucoup de fonctions et toujours prescrire toutes les conditions dans le Début et dans les Fonctions. Vous parviendrez progressivement à vous mettre à l'aise. Mais l'essentiel est d'obtenir une logique claire et un fonctionnement sans erreur du programme. Je vous souhaite de réussir !
 
hoz:

Pourquoi ? Parce que la dernière commande est OrdersTotal() - 1, et la première commande a l'index 0 . Pourquoi alors ça ne le sera pas ?

Pour la dernière commande, il y a une fonction chez Kim où il compare par temps pour éviter les erreurs, et pour la première commande.

Vous pensez à tout en même temps, mais l'ordinateur pense à une seule chose à la fois, disons 0 ou 1, puis à nouveau 0 ou 1, et encore 0 ou 1, etc.

Vous devez donc suivre la logique de la machine, pas la nôtre. Et la récompense sera un programme sans erreur ! Bonne chance !

 
borilunad:
Utilisez le boutonSRC en haut pour insérer du code ! Personne n'ira fouiner comme ça. Je l'ai collé pour vous. Vous pouvez faire de même dans votre poste.
Merci pour votre aide. J'ai corrigé mon post, et j'espère que c'était correct.
 
borilunad:

J'ai une fonction pour toutes les modifications telles que la mise en place de SL et TP, le transfert vers B/S, la recherche de positions et d'ordres avec tentatives et contrôles d'erreurs.

Je dois seulement prescrire la sélection des positions, les conditions et les avertissements au départ. Voici la fonction :

void ModifyOrder(int ticket,double price,double stoploss,double takeprofit,datetime e,color arrow_color)
{
  int ModifyCnt = 0, err;
  while(ModifyCnt < 3)
  {
    if(OrderModify(ticket,NormalizeDouble(price,Digits),NormalizeDouble(stoploss,Digits),
    NormalizeDouble(takeprofit,Digits),0,arrow_color))
    ModifyCnt = 3;
    else err = GetLastError();
    if(err > 0)
    { 
      Print(ModifyCnt," #",ticket," Error modifing order: (", err , ") " , ErrorDescription(err));
      Sleep(5000); RefreshRates(); ModifyCnt++;
} } }

Le petit !


Boris. Pourquoi avez-vous la variable e ici ?
 
hoz:

Boris. Pourquoi avez-vous la variable e ici ?
La variable e est la variable (pour l'ordre, voir doc OrderModify()), que je dois spécifier, si je veux utiliser arrow_color, une pour bai, et une autre pour sell, et je peux varier les couleurs pour orderModify()). Après tout, le programme n'entre pas dans ces détails en une fois, comme nous le faisons, mais un par un, en définissant les paramètres par leur lieu de présentation dans la fonction standard OrderModify().
 
borilunad:
La variable e est une expiration (pour les ordres, voir Doc OrderModify()), que je dois spécifier si je veux utiliser la flèche_couleur, pour bai une, et pour vendre une autre, et pour les ordres je peux diversifier la couleur). Après tout, le programme n'entre pas dans ces détails en une fois, comme nous le faisons, mais un par un, en définissant les paramètres par leur lieu de présentation dans la fonction standard OrderModify().

Vous pouvez le définir sur 0(zéro), car l'expiration n'est généralement pas nécessaire. Mais vous l'avez probablement en cas d'urgence, de sorte que si quelque chose se produit, vous ne devez pas revenir à ce point.
 
Pouvez-vous me conseiller : existe-t-il une fonction personnalisée disponible gratuitement et déjà écrite qui prend un tableau en entrée et l'exporte vers Excel ?
 
hoz:

Vous pouvez mettre 0(zéro), car en général vous n'avez pas besoin d'expirer. Mais vous l'avez probablement par précaution, pour ne pas avoir à revenir sur ce point.
Ainsi, il est 0 dans la fonction standard, tandis que dans la présentation il est nécessaire de spécifier, que les paramètres suivants (couleur) doivent fonctionner. Je n'utilise pas du tout l'expiration dans l'attente, je supprime uniquement par condition.
Raison: