Prendre un achat sur le mouvement du dernier tick.(last_tick)

 

Bonjour chers ingénieurs


J'ai un petit problème pour lequel j'aimerais votre aide :


Voici mon problème : je veux acheter sur un petit mouvement sur le dernier tick.

Par exemple le dernier tick(last_tick[0].last) évolue à la baisse et il est actuellement au prix de 100.18 une fois qu'il monte d'un pas soit il revient à 100.17 je prends une position d'achat.

Je crois que tout est possible en programmation, voici mon code sources que j'essaie d'adapter mais qui ne marche vraiment pas 
MqlTick last_tick[3];

   if(SymbolInfoTick(Symbol(),last_tick[0])) {

           double Last = last_tick[0].last;

     if (last_tick[0].last > last_tick[1].last)

       {   

       Comment("Waitting");   

       }

     else   

     if (last_tick[0].last < last_tick[1].last) 

     {    Comment("Tack a buy"); }   

     }

ça ne produit pas ce que je veux

Merci d'avance pour votre aide.

 

Bonjour chers experts 

je me demande si vraiment ma préoccupation est compréhensive, sinon je peux donner plus des détails si vous le voulez.

Merci d'avance 

 

Bonjour,

Je crois que ça devrait être quelque chose comme ça :

MqlTick tick={0};
double price=0;
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(SymbolInfoTick(Symbol(),tick))
      {
       if(price > tick.last)
         Comment("Waiting");
       else
         Comment("Take a buy");
       price=tick.last; 
      }
  }
//+------------------------------------------------------------------+
 
Alexey Petrov #:

Bonjour,

Je crois que ça devrait être quelque chose comme ça :

Merci infiniment pour votre réaction, j'ai essayé ca merche tres bien mais ca fait un mouvement rapide de Waitting et buy donc a chaque point il ya ce mouvement,

alors je veux séparer ce mouvement à 1000 point pour que ca indique pas le buy à tout moment 

j'ai essayé ceci 

price = tick.last - 1000 * _Point ; 

mais ca ne marche pas . 


au faite ce que je veux, c'est de placer un STOP LOSS automatique dans mon Expert quand je suis en position(Baissière ou haussière) à chaque fois que les ticks font en une direction inverse à 1000 ticks du dernier tick(Le plus bas niveaux atteint), il sort directement de la position c'est ca mon but.

Merci d'avance 

 
Noxtube #:

Merci infiniment pour votre réaction, j'ai essayé ca merche tres bien mais ca fait un mouvement rapide de Waitting et buy donc a chaque point il ya ce mouvement,

alors je veux séparer ce mouvement à 1000 point pour que ca indique pas le buy à tout moment 

j'ai essayé ceci 

mais ca ne marche pas . 


au faite ce que je veux, c'est de placer un STOP LOSS automatique dans mon Expert quand je suis en position(Baissière ou haussière) à chaque fois que les ticks font en une direction inverse à 1000 ticks du dernier tick(Le plus bas niveaux atteint), il sort directement de la position c'est ca mon but.

Merci d'avance 

C'est une tâche plus complexe, qui nécessite un codage plus sérieux, je ne peux pas vous donner d'exemple simple.

Vérifiez ça -

https://www.mql5.com/fr/code/9248

https://www.mql5.com/fr/code/22001


TradeProtector-1.1 - Automatic Stop Loss and proprotional Trailing Stop (updated version)
  • www.mql5.com
Updated version of the http://codebase.mql4.com/6043
 
Alexey Petrov #:

C'est une tâche plus complexe, qui nécessite un codage plus sérieux, je ne peux pas vous donner d'exemple simple.

Vérifiez ça -

https://www.mql5.com/fr/code/9248

https://www.mql5.com/fr/code/22001



le code est vraiment complexe comme vous l'avez dit,

sinon merci beaucoup je veux m'y mettre à font pour parvenir à produire le résultat voulu,

Merci infiniment pour votre temps

 
Noxtube #:


le code est vraiment complexe comme vous l'avez dit,

sinon merci beaucoup je veux m'y mettre à font pour parvenir à produire le résultat voulu,

Merci infiniment pour votre temps

Alexey Petrov #:

C'est une tâche plus complexe, qui nécessite un codage plus sérieux, je ne peux pas vous donner d'exemple simple.

Vérifiez ça -

https://www.mql5.com/fr/code/9248

https://www.mql5.com/fr/code/22001


Tout va bien maintenant, 

j'ai créé un indicateur ayant 2 niveaux le low et le middle ca répond parfaitement à ca que je voulais. 

maintenant j'ai un petit problème sur ce code je veux récupérer le dernier tick( le last_tick) avec le codes ci-dessous,

dans le back test last_tick il affiche la valeur du last_tick  mais sur un compte Demo ou relle last_tick n'affiche rien du tout il est à 0

comment puis-je m'y prendre svp?

void OnTick()
  {
 MqlTick last_tick;
 
//---
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(": Last tick = ",last_tick.last);
     }
   else Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
   
  }
comme vous pouvez le voir sur le fichier en attaché
Dossiers :
 

Assurez-vous que l'instrument auquel vous attachez votre indicateur a les derniers prix (prix de la dernière transaction) transmis par votre courtier.


Vous pouvez également modifier last_tick.last à last_tick.bid pour vérifier si c'est le cas

 
Alexey Petrov #:

Assurez-vous que l'instrument auquel vous attachez votre indicateur a les derniers prix (prix de la dernière transaction) transmis par votre courtier.


Vous pouvez également modifier last_tick.last à last_tick.bid pour vérifier si c'est le cas

Merci énormément mon frère pour votre assistance, suis arrivé à trouver solution à mon problème grâce à vous, merci beaucoup 

Raison: