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

 
alsu:
Le billet reste tel qu'il était


? ???

Comment puis-je vérifier si la commande est fermée ou non ?

 
Cruc:

Merci beaucoup pour la recommandation, j'ai presque trouvé la solution, je ne me souviens juste pas si l'ordre est déclenché, est-ce que le ticket prend une valeur de -10 ?
Le billet ne change pas. Il suffit que le OrderCloseTime devienne supérieur à zéro.
 
ilunga:
Le billet ne change pas. Il suffit que le OrderCloseTime devienne supérieur à zéro.


Et si un stop ou un profit est déclenché, il devient également inférieur à zéro, si je ne me trompe pas -1 ?

Comment définir correctement la condition ? Veuillez me conseiller.

 
Cruc:


Et si un stop ou un profit est déclenché, il sera inférieur à zéro, si je ne me trompe pas -1 ?

Comment définir correctement la condition ? S'il vous plaît, donnez-moi un indice.

Elle ne devient pas différente, elle reste la même. Les positions fermées vont dans la liste de l'historique des transactions avec les mêmes tickets.

Parcourez cette même liste d'historique des transactions et cherchez-y l'ordre.

 
artmedia70:

Pourquoi ? Affiche tous les drapeaux en une seule fois dans un commentaire.

Juste là :




il n'y a pas eu de hausse sur l'ADX, ce qui signifie que la condition

// vérifier la hausse de l'ADX > 20, ou juste la hausse de l'ADX ---- vérifier la force du mouvement.
if (x<20 && x0>20) {f3 = 1 ; }

n'est pas atteint, mais le commerce est ouvert

 
Ivn:


il n'y a pas eu de hausse sur l'ADX, c'est-à-dire que la condition

// vérifier la hausse de l'ADX > 20, ou juste la hausse de l'ADX ---- vérifier la force.
if (x<20 && x0>20) {f3 = 1 ; }

n'est pas respectée et la transaction est ouverte.

À en juger par le commentaire de la capture d'écran, vous contrôlez la barre de zéro pour prendre des décisions.

Ce n'est pas bon... Sur une barre zéro, les indicateurs peuvent aller et venir de nombreuses fois pendant la formation de la barre, créant ainsi de faux signaux (chatter).

Pour éviter cela, vérifiez la première barre déjà formée.

 
Je travaille sur ce sujet depuis longtemps maintenant. Je remarque souvent sur le graphique que le prix semble atteindre un certain niveau, en règle générale le haut ou le bas des bougies sont presque égaux l'un à l'autre. Mais je ne sais pas comment le faire mathématiquement. J'ai fouillé le forum et la base de données pendant 3 jours mais je n'ai rien trouvé de tel.
 

Salutations !

J'essaie d'afficher des informations sur une bougie précédente (barre non nulle) - bougie haussière ou baissière, taille de son corps et de ses ombres et rapport des ombres au corps de la bougie.

Mais il ne sort pas une fleur en pierre. Il produit des valeurs erronées.

int start()
  {
   int counted_bars=IndicatorCounted();
   if (counted_bars<0) return(-1);        //---- check for possible errors
   if (counted_bars>0) counted_bars--;    //---- last counted bar will be recounted
   int limit=Bars-counted_bars;
   
   double kerzen_typ;                  //тип свечи
   string kerzen_name;                 //наименование свечи
   double kerzen_body;                 //размер тела свечи
   double kerzen_shadow_up;            //размер верхней тени
   double kerzen_shadow_down;          //размер нижней тени
   double kerzen_shadow2body_up;       //отношение верхней тени к размеру тела
   double kerzen_shadow2body_down;     //отношение нижней тени к размеру тела

//---- main loop
   for(int bar=0; bar<limit; bar++)
      {
//определение контрольной свечки - белая, черная или додж и сбор информации
   if (Close[bar]>Open[bar])
      {
         kerzen_typ=1;
         kerzen_name="бычья или белая свеча";
         kerzen_shadow_up=High[bar]-Close[bar];
         kerzen_shadow_down=Open[bar]-Low[bar];
         kerzen_body=Close[bar]-Open[bar];
      }
   if (Open[bar]>Close[bar])
      {
         kerzen_typ=-1;
         kerzen_name="медвежья или черная свеча";
         kerzen_shadow_up=High[bar]-Open[bar];
         kerzen_shadow_down=Close[bar]-Low[bar];
         kerzen_body=(Open[bar]-Close[bar]);
      }
   if (Open[bar]==Close[bar])
      {
         kerzen_typ=0;
         kerzen_name="додж";}  
         kerzen_shadow_up=High[bar]-Open[bar];
         kerzen_shadow_down=Close[bar]-Low[bar];
      }
//определение соотношения тени к телу свечки      
if (kerzen_body==0)
      {
         kerzen_shadow2body_up=kerzen_shadow_up;
         kerzen_shadow2body_down=kerzen_shadow_down;
         }
if (kerzen_body!=0)
      {
         kerzen_shadow2body_up=kerzen_shadow_up/kerzen_body;
         kerzen_shadow2body_down=kerzen_shadow_down/kerzen_body;
      }     
 
//---- done
   Comment  (
               "Контрольный бар типа ",kerzen_name,"\n",
               "Верхняя тень - ",kerzen_shadow_up*10000," в ",kerzen_shadow2body_up, " раз больше","\n",
               "Тело - ",kerzen_body*10000,"\n", 
               "Нижняя тень - ",kerzen_shadow_down*10000," в ",kerzen_shadow2body_down, " раз больше"
            );
   return(0);
  }
 
gabba:

Salutations !

J'essaie d'afficher des informations sur une bougie précédente (barre non nulle) - bougie haussière ou baissière, taille de son corps et de ses ombres et rapport des ombres au corps de la bougie.

Mais il ne sort pas une fleur en pierre. Il produit des valeurs erronées.


Pourquoi utiliser un cycle si l'on ne prend qu'une barre ? Il suffit d'utiliser 1 au lieu de "barre". Ne vérifiez que les nouvelles barres afin de ne pas avoir à tout recalculer à chaque tick.
 
Cruc:


Et si un stop ou un profit est déclenché, il passera en dessous de zéro, si je ne me trompe pas - -1 ?

Comment définir correctement la condition ? Pouvez-vous me donner un indice ?

une fois de plus.

La variante la plus simple (schéma)

if (ticket > 0)
{
   OrderSelect(ticket, SELECT_BY_TICKET);
   if (OrderCloseTime() > 0)
   {
      // ордер закрылся
   }
   else
   {
      // ордер пока еще открыт
   }
}
else
{
   //первый запуск советника 
}