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

 
belck:

Je t'ai dit de ne pas le prendre trop à cœur. Nous ne sommes pas ici pour nous battre. Je n'aime pas non plus quand quelqu'un refuse d'aider - c'est-à-dire qu'il décide à ma place que j'ai besoin d'un conseil ou que je dois lire un livre. Comme on dit - intelligent !

Encore une fois, les gars, s'il vous plaît ne le prenez pas agressivement ou ma demande est encore une contradiction, si oui, alors je ne l'écrirai plus.

Personne n'a le droit de vous interdire d'écrire et de poser des questions... Mais il est utile de lire ce par quoi beaucoup d'entre vous ont commencé. Et nous nous posons aussi des questions, mais, à mon avis, très différentes...

On ne vous refuse pas de l'aide, on vous donne une source de connaissances. Sur quoi le livre SC ne peut-il pas vous aider ? ? ??????????????

Qu'est-ce qui ne vous a pas plu dans les fonctionnalités entièrement fonctionnelles d'Igor Kim ? ? ?????????

Je vous ai d'abord donné un lien vers le fil de discussion d'Igor - à prendre ou à laisser... Utilisez-le, insérez-le dans votre code. Vous pouvez assembler à partir d'eux, comme à partir de briques, différents Expert Advisors entièrement opérationnels de YUMO...

Qu'avez-vous commencé à faire avec eux ?

Votre message suivant était une construction complètement incompréhensible... ...Du code empilé, dans lequel iniit et start et deinit et toutes les fonctions étaient pratiquement écrites en une ligne...

Je t'ai suggéré de te familiariser avec la programmation modulaire, je t'ai donné un lien vers un tutoriel...

! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Vous m'avez demandé en réponse de poster ce tutoriel ici ( !) dans ce fil ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.

WHY ????????????????????

Vous avez devant vous une grande variété de tutoriels différents...

Mais, selon vous, tout le monde devrait de toute urgence laisser tomber ce qu'il fait et faire la queue pour obtenir une réponse à votre question. Et la réponse est, en fait, juste en face de vos yeux.

 

Merci.

 
artmedia70:

Personne n'a le droit de vous interdire d'écrire et de demander... Mais il vaut la peine de lire ce par quoi beaucoup d'entre vous ont commencé. Et nous nous posons aussi des questions, mais, à mon avis, des questions bien différentes...

On ne vous refuse pas de l'aide, on vous donne une source de connaissances. Pourquoi le livre SC ne peut-il pas vous aider ? ? ?????????????? La réponse est l'aide ! !!

Qu'est-ce qui ne vous a pas plu dans les fonctions entièrement opérationnelles d'Igor Kim ? ? ????????? La réponse est qu'il faut beaucoup de temps pour les rassembler et les passer en revue.

Je vous ai d'abord donné un lien vers le fil de discussion d'Igor - à prendre ou à laisser... Utilisez-le, collez-le dans votre code. Vous pouvez assembler à partir d'eux, comme à partir de briques, l'UYMU de divers Expert Advisors entièrement opérationnels...

Qu'avez-vous commencé à faire avec eux ?

Votre message suivant était une conception complètement incompréhensible, ... Du code empilé, où iniit et start et deinit et toutes les fonctions étaient pratiquement écrites en une ligne...

Je t'ai suggéré de te familiariser avec la programmation modulaire et je t'ai donné un lien vers un tutoriel... La réponse : je l'ai lu et je ne l'ai pas complètement compris.

! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Votre réponse a été de me demander de poster ce tutoriel ici ( !) dans ce fil de discussion ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.

WHY ???????????????????? Pourquoi pensez-vous cela ?

Vous avez une quantité énorme de tutoriels différents devant vous... La réponse est la vôtre.

Mais, selon vous, tout le monde devrait abandonner d'urgence son dossier et faire la queue pour obtenir une réponse à votre question. La réponse - tout dépend de vous Et la réponse, en fait, se trouve chez vous La réponse - à nouveau, devant vos yeux

 
artmedia70:

Vous sélectionnez une position dans le ticket. Mais vous ne vérifiez pas où il se trouve exactement. Le poste peut se trouver dans des établissements déjà fermés :

bool OrderSelect( int index, int select, int pool=MODE_TRADES)

Cette fonction permet de sélectionner un ordre pour une manipulation ultérieure. Renvoie VRAI si la fonction se termine avec succès. Renvoie FALSE si la fonction échoue. Appelez la fonction GetLastError() pour obtenir des informations sur l'erreur.

Le paramètre pool est ignoré si la commande est sélectionnée par le numéro de ticket. Le numéro de billet est l'identifiant unique de la commande. Pour déterminer dans quelle liste un ordre est sélectionné, il faut analyser son heure de clôture. Si l'heure de clôture de l'ordre est 0, alors l'ordre est ouvert ou en attente et est pris dans la liste des positions ouvertes du terminal. Une position ouverte peut être distinguée d'un ordre en attente par son type. Si l'heure de clôture n'est pas égale à 0, alors l'ordre est clôturé ou en attente et a été sélectionné dans l'historique du terminal. La distinction entre un ordre fermé et un ordre en attente supprimé peut également être faite par type d'ordre.

Le bogue 4051 signale une fonction invalide ! !!!!.

int total=OrdersTotal() ;
int n=0 ;
for (int i=total-1 ; i>=0 ; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
si(OrderSymbol()==Symbol())
n++ ;
}
}
si (total == 1)
{
pour (int k=total-1 ; k>=0 ; k--)
{
if(OrderSelect(k,SELECT_BY_POS, MODE_TRADES))
{
//Alert("la commande est ", k) ;
si ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue) ;
Alert("erreur ", GetLastError()) ;
}
}
}
}}

retour(0) ;


Je vais devenir grisonnant et mourir bientôt si je ne résous pas ce problème.

 
VOLDEMAR:

L'erreur 4051 est écrite avec une fonction invalide ! !!!!.

int total=OrdersTotal() ;
int n=0 ;
for (int i=total-1 ; i>=0 ; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
si(OrderSymbol()==Symbol())
n++ ;
}
}
si (total == 1)
{
pour (int k=total-1 ; k>=0 ; k--)
{
if(OrderSelect(k,SELECT_BY_POS, MODE_TRADES))
{
//Alert("la commande est ", k) ;
si ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue) ;
Alert("erreur ", GetLastError()) ;
}
}
}
}}

retour(0) ;


Je vais devenir grisonnant et mourir bientôt si je ne résous pas ce problème.




ERR_INVALID_FUNCTION_PARAMVALUE 4051 Valeur du paramètre de fonction non valide
 
artmedia70:

Vous en aurez beaucoup :)

Merci beaucoup, je n'avais pas deviné qu'il fallait chercher parmi les constantes.

 
VOLDEMAR:


pourquoi

si (total == 1)
{
for (int k=total-1 ; k>=0 ; k--)
{

? ???

Je ne vois pas de logique - le cycle à l'intérieur de la condition ne fonctionnera pas toujours.

 
VOLDEMAR:


int total=OrdersTotal() ;
int n=0 ;
for (int i=total-1 ; i>=0 ; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
n++ ;
}
}
if(total == 1)
{
for(int k=total-1 ; k>=0 ; k--)
{
if(OrderSelect(k,SELECT_BY_POS, MODE_TRADES))
{
//Alert("ordre existe ", k) ;
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue) ;
Alert("error ", GetLastError()) ;
}
}
}
}

retour(0) ;


Je vais devenir grisonnant et mourir si je ne résous pas ce problème.



Vous avez le numéro de position dans la variable k, et vous devez transmettre le TICKET de la commande à la fonction OrderModify() comme premier paramètre.

Avant de modifier, prenez le ticket de la position, par exemple, int ticket = OrderTicket() ; et passez ticket au lieu de k

Quelque chose comme ça quelque part. Je l'ai écrit sur mes genoux, sans rien vérifier - juste une idée... Je ne suis même pas entré dans votre code.

int i, k, n=0, ticket=0, total=OrdersTotal();
for(i=total-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS))
         {
            if(OrderSymbol()==Symbol())
            n++;
         }
   }
if (total == 1)
   {
      for (k=total-1; k>=0; k--)
         {
            if(OrderSelect(k,SELECT_BY_POS, MODE_TRADES))
               {
                  Alert("ордер есть ", k);
                  if (OrderType()==OP_BUY && OrderTakeProfit()==0 && OrderStopLoss()==0)
                     {
                        ticket = OrderTicket();
                        OrderModify(ticket,OrderOpenPrice(),slb,tpb,0,Blue);
                        Alert("ошибка ", GetLastError());
                     }
               }
         }
   }

return(0);
 
IgorM:

pourquoi

if (total == 1)
{
for (int k=total-1 ; k>=0 ; k--)
{

? ???

Je ne vois aucune logique là-dedans - la boucle dans la condition ne tiendra pas toujours.

Igor, le sens n'est pas clair ici...

Si le nombre total d'ordres est de un (total==1), la boucle va de zéro (total-1) à zéro k>=0

Vous comprenez quelque chose ????? Moi aussi... :))

 

Salut.

J'ai une question. Je veux prendre un take profit comme ceci :

double TakeProfit =  ((LineIndicator - Ask)/2); // но мне нужно указать, что если эта цифра меньше допустимого значение, то выставляется автоматом минимальное допустимое 
значение, а это 10 пунктов.

C'était le premier point, mais en voici un autre :

La ligne de l'indicateur change de position après une certaine période de temps. Comment puis-je m'assurer que le take profit ne change pas, mais reste le même que celui qui a été défini lorsque je l'ai ouvert ?