Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 465

 

Bonjour. J'ai commencé à étudier MQL4 il y a quelque temps et j'ai rencontré le malentendu suivant.

Comme vous pouvez le voir dans l'exemple ci-dessous, lorsque la bougie la plus haute de la barre atteint 1.3058, l'ordre doit être clôturé. L'ordre est clôturé selon les conditions mais le prix de clôture n'est pas 1.3058(il pourrait être 1-3 pips plus haut). Alors, comment clôturer correctement ? Est-ce que ça fermeà 1.3058?

if(High[0] >= 1.3058)

OrderClose( OrderTicket(), OrderLots(),  NormalizeDouble(Ask,Digits), 0, Red) ;
 
Mr.Dmitry:

Bonjour. J'ai commencé à étudier MQL4 il y a quelque temps et j'ai rencontré le malentendu suivant.

Comme vous pouvez le voir dans l'exemple ci-dessous, lorsque la bougie la plus haute de la barre atteint 1.3058, l'ordre doit être clôturé. L'ordre est clôturé selon les conditions mais le prix de clôture n'est pas 1.3058(il pourrait être 1-3 pips plus haut). Alors, comment clôturer correctement ? Est-ce que ça fermeà 1.3058?

Vous ne pouvez pas. Le MT a un slippage, qui est toujours en faveur du courtier.
 
Mr.Dmitry:

Bonjour. J'ai récemment commencé à étudier MQL4 et j'ai rencontré le malentendu suivant.

Comme vous pouvez le voir dans l'exemple ci-dessous, lorsque la bougie la plus haute de la barre atteint 1.3058, l'ordre doit être clôturé. L'ordre est clôturé selon les conditions mais le prix de clôture n'est pas 1.3058(il pourrait être 1-3 pips plus haut). Alors, comment clôturer correctement ? Vousvoulez que votre ordre soit clôturé à 1.3058?

Imaginons qu'au dernier tick, le prix était de 1,3057, et qu'au tick actuel, il est de 1,3059.

Ne dites pas plus tard que l'ordre n'a pas été clôturé. Vous ne faites pas le contrôle correctement. Vous devez le faire sur "plus ou égal" ou "moins ou égal" et rien d'autre.

 
artmedia70:

Imaginez une situation dans laquelle le prix était de 1,3057 au dernier tick et de 1,3059 au tick actuel.

Ne dites pas que l'ordre n'est pas fermé. Vous ne l'avez pas vérifié correctement. Vous devez vérifier si vous êtes "plus ou égal" ou "moins ou égal".


C'est ce que je fais >=. Ce qui précède n'est qu'un exemple (désolé pour la tautologie) et le problème n'est pas que l'ordre n'est pas fermé, mais qu'il n'est pas fermé comme je le voudrais.

borilunad:
Pas du tout, MT prévoit le slippage, qui est toujours en faveur du courtier.
Il n'y a donc aucun moyen de le faire ? Triste (((.
 
Zhunko:
Vous pourriez écrire un script qui dessine cette ligne. Liez ce script à une touche de raccourci.


Merci. Je vais essayer.
 
Mr.Dmitry:

C'est ce que je fais >=. L'exemple ci-dessus n'est qu'un exemple (excusez la tautologie) et le problème n'est pas que l'ordre ne se ferme pas, mais qu'il ne se ferme pas comme je le voudrais.

Je veux dire qu'il n'y a pas du tout d'issue ? Triste (( !)
Si vous avez finalement fixé un Stop Loss, vous avez atteint le seuil de rentabilité, commencé à trawler et le prix a soudainement tourné dans la direction opposée et sur ce mouvement, l'ordre est fermé par le Stop Loss non pas en profit, mais en perte ! Dérapage+marge élargie= :(((
 

Bonsoir à tous !

Pouvez-vous me dire ce que je fais mal ?

int start()

{

//----

ObjectCreate("trendln1",OBJ_TREND,0) ;

ObjectSet("trendln1",OBJPROP_COLOR,Red) ;

//----

retour(0) ;

}

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!P.s. J'ai essayé d'écrire un script pour appeler la ligne de tendance afin qu'il soit ensuite possible d'assigner une touche de raccourci pour faire apparaître la ligne de tendance.

 
okvseok:

Bonsoir à tous !

Pouvez-vous me dire ce que je fais mal ?

int start()

{

//----

ObjectCreate("trendln1",OBJ_TREND,0) ;

ObjectSet("trendln1",OBJPROP_COLOR,Red) ;

//----

retour(0) ;

}

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!P.s. J'ai essayé d'écrire un script pour appeler la ligne de tendance afin qu'il soit ensuite possible d'assigner une touche de raccourci pour faire apparaître la ligne de tendance.

Vous devez au moins spécifier quelques coordonnées lorsque vous créez un objet.

// Формирование линии
int fLine(string Name            // Префикс имени
         ,string Text            // Префикс описания
         ,int Number             // Номер
         ,int Bar1,double Price1 // Первая точка
         ,int Bar2,double Price2 // Вторая точка
         ,int Bar3,double Price3 // Вспомогательная точка
         ,color Цвет
         ,int Стиль=STYLE_SOLID  // Сплошная
         ,int Видимость=0        // Только на текущем таймфрейме
         ,bool Луч=false
         ,int Толщина=1
         ,bool Фон=true ){
   int Error;
   datetime Time1=Time[Bar1],
            Time2=Time[Bar2];
   if( Number>0 ) Name=Name+Number;
   if( Bar1<Bar2
    || Bar2<LastBar
    || Price1<Zero
    || Price2<Zero ){
      Error=MyError;
      if( РежимОтладки && ПечататьПредупреждения ) Print("*     "+Name+" не создан, параметры: "+DoubleToStr(Price1,Digits)
                                       +" ("+Bar1+"/"+TimeToStr(Time1)+")..."
                                       +DoubleToStr(Price2,Digits)+" ("+Bar2+"/"+TimeToStr(Time2)+")");
      return(Error);
   }
   Error=fObjectDelete(Name);
   if( Error>0 && Error<MyError ){
      return(Error);
   }
   if( ObjectCreate(Name,OBJ_TREND,0,Time1,Price1,Time2,Price2,Time[Bar3],Price3) ){
      if( Text!="" && Number>0 ){
         Text=Text+Number;
         Фон=true;
      }
      if( !ObjectSetText(Name, Text)
       || !ObjectSet(Name, OBJPROP_COLOR, Цвет)
       || !ObjectSet(Name, OBJPROP_STYLE, Стиль)
       || !ObjectSet(Name, OBJPROP_RAY, Луч)
       || !ObjectSet(Name, OBJPROP_TIMEFRAMES, Видимость)
       || !ObjectSet(Name, OBJPROP_WIDTH, Толщина)
       || !ObjectSet(Name, OBJPROP_BACK, Фон) ){
         Error=GetLastError();
         if( !РежимОтладки ) PlaySound("alert.wav");
         Print("***** "+Name+" - ошибка модификации параметров "+Error);
   }  }
   else{
      Error=GetLastError();
      if( !РежимОтладки ) PlaySound("alert.wav");
      Print("***** "+Name+" - объект не создан, ошибка "+Error);
   }
   return(Error);
}
 
tara:

Vous devez au moins spécifier quelques coordonnées lorsque vous créez un objet.


et si je veux spécifier la coordonnée déjà avec la souris. Je dois juste appeler la ligne de tendance elle-même, mais ça n'a pas encore fonctionné. Est-ce possible ?
 
okvseok:

et si je veux déjà pointer les coordonnées avec la souris. J'ai juste besoin d'appeler la ligne de tendance elle-même, mais pas encore déclenchée. Est-ce possible ?

Ce n'est pas la chose la plus facile de construire une ligne de tendance, et vous le faites avec la souris.