[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 414

 
PapaYozh:

Je dirais "environ 80".

Je dirais exactement 80. Et sss2019 a tout bon avec les paramètres. Mais quel est cet indicateur sauvage avec tant de paramètres ????
 
J'ai essayé de le mettre à ma place, c'est aussi lent. Je n'ai jamais rien vu de tout ça, je n'ai que Metatrader.
 
Sepulca:

Je vais vous dire exactement, il y en a exactement 80. Et sss2019 a tout bon avec les paramètres. Mais quel est cet indicateur sauvage avec tant de paramètres ?

C'est ça le truc, c'est correct, mais c'est toujours une erreur.
 

a écrit une modification des ordres. Lorsque le prix est atteint, déplacez le stoploss au niveau du prix d'ouverture. L'erreur 130 apparaît. Je ne comprends pas ce qui ne va pas. J'étais capable d'écrire des ordres de suivi avant...

if (UseTrailing)
{ 
  for (int trall=0; trall<OrdersTotal(); trall++) 
  {
    if (!(OrderSelect(trall, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol()!=Symb)continue;        
 
    if (Tip==0 && top!=1) 
       {
        RefreshRates();
        SLM=OrderOpenPrice();
        if (Bid-OrderOpenPrice() > WithoutLoss*Point   ) 
           {
           if (OrderStopLoss() < Bid-WithoutLoss*Point) 
              {
              OrderModify(Ticket_B, OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Blue);
              top=1;
               }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
         continue;                              // Повторная попытка
         return;                                // Выход из start()

            }
        }
 
    if (Tip==1 && top!=2) 
       {
        RefreshRates();
        SLM=OrderOpenPrice();
       if ( OrderOpenPrice()-Ask > WithoutLoss*Point) 
          {
          if (OrderStopLoss() > Ask+WithoutLoss*Point) 
             {
              OrderModify(Ticket_S, OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Blue);
              top=2;
              }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
         continue;                              // Повторная попытка
         return;                                // Выход из start()

           }
         }
 
Egori4:

a écrit une modification des ordres. Lorsque le prix est atteint, déplacez le stoploss au niveau du prix d'ouverture. L'erreur 130 apparaît. Je ne comprends pas ce qui ne va pas. J'étais capable d'écrire des ordres de suivi avant...

Vous travaillez en boucle sur tous les ordres, mais il y a une certaine variable Tip qui ne change jamais et dont personne ne sait à quoi elle est égale. De plus, vous analysez une commande et en modifiez une autre entièrement différente avec le ticket stocké dans la variable Ticket_B ou Ticket_S respectivement.
 
ilunga:
Vous travaillez en boucle sur tous les ordres, mais il y a une certaine variable Tip, qui ne change pas et ne sait pas ce qu'elle équivaut. De plus, vous analysez une commande et modifiez une commande complètement différente avec une variable Ticket_B ou Ticket_S respectivement
.
Je dois alors vérifier également le type d'ordre(si Tip=0, il s'agit d'un achat, si Tip=1, il s'agit d'une vente. et Ticket_B est un achat ouvert, Ticket_S est une vente ouverte).
 
Sepulca:


Lorsque vous ouvrez un ordre en suspens, définissez une heure d'expiration, disons 23:59, l'ordre se ferme de lui-même.

nt OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

J'ai essayé de fixer le délai d'expiration à 24 heures (OrderOpenTime()+86400), mais si l'ordre s'ouvre une heure ou deux plus tard, il se fermera aussi plus tard...
 

Bonjour, quelqu'un peut m'aider avec la fonction WindowScreenShot. Pour le 3ème jour, personne ne répond((. J'ai écrit le script suivant (voir fichier joint).

En 2 mots sur le scénario. Le script est destiné à faire des captures d'écran du graphique actuel de la fenêtre du terminal client. Dans la variable externe extern datetime Time_bar est spécifié le moment de la barre à partir duquel et jusqu'à la barre zéro sera créé (en tenant compte de l'indentation droite sur le graphique). Dans la ligne

int bar_number=iBarShift(NULL,0,Time_bar,true)

le numéro de série de la barre que nous avons spécifié dans la variable externe extern datetime time_bar est recherché. La fonction elle-même, dans la ligne

bool f=WindowScreenShot(name+".gif",1024,768,bar_number,Scale,View_graph)

Maintenant, voici la question... Pour simplifier, supposons que nous ayons besoin de créer une capture d'écran des deux dernières barres. Ensuite, si la ligne

int bar_number=iBarShift(NULL,0,Time_bar,true)

est laissé inchangé, le résultat sera la capture d'écran suivante


C'est-à-dire qu'il n'y a pas de barre dans la capture d'écran (bien que la chaîne de caractères

int bar_number=iBarShift(NULL,0,bar_time,true)

le numéro de la barre par heure doit être calculé)

Si cette ligne est présentée de la manière suivante

int bar_number=iBarShift(NULL,0,Time_bar,true)+2

vous obtiendrez la capture d'écran que nous voulions :

Question: pourquoi dans le cas où cette chaîne a la forme suivante

int bar_number=iBarShift(NULL,0,Time_bar,true)

la capture d'écran est prise avec un décalage de 2 barres à droite de celle spécifiée dans la ligne ci-dessus ?

P.S. Afin de ne pas encombrer le forum, merci d'avance pour votre réponse.
Dossiers :
 
Egori4:
J'ai essayé de définir l'heure d'expiration en 24 heures (OrderOpenTime()+86400), mais si l'ordre s'est ouvert une heure ou deux plus tard, il se ferme aussi plus tard...


Je l'essaierais comme ça :

exp=iTime(Symbol(),PERIOD_D1,0)+86340;
iTime(Symbol(),PERIOD_D1,0) est l'heure d'ouverture de la barre du jour, et 86340 est 23 heures 59 minutes en secondes.
 
Egori4:
alors je dois aussi vérifier le type d'ordre (si Tip=0, alors c'est un achat, si Tip=1 - une vente. et Ticket_B - achat ouvert, Ticket_S - vente ouverte).

Si vous avez des billets stockés dans Ticket_B et Ticket_S, pourquoi avez-vous besoin d'un cycle ?

Il suffit de sélectionner par billet et de voir s'il y a des conditions pour le changer
.