Questions des débutants MQL4 MT4 MetaTrader 4 - page 139

 

J'exécute le conseiller expert dans le testeur de stratégie. Lors de la modification d'un ordre BUYSTOP, une erreur est générée :

Je ne comprends pas pourquoi. Le prix auquel mon ordre est proposé de bouger est supérieur de 40 au prix Ask, StopLevel =30. Le prix est normalisé, que faut-il de plus ?

 
khorosh:

J'exécute le conseiller expert dans le testeur de stratégie. Lors de la modification d'un ordre BUYSTOP, une erreur est générée :

Je ne comprends pas pourquoi. Le prix auquel mon ordre est proposé de bouger est supérieur de 40 au prix Ask, StopLevel =30. Le prix est normalisé, que faut-il de plus ?

Je l'ai vu avec un courtier - au lieu de 10, essayez de le fixer plus haut de 11 pips.
 
Лауреат:
Veuillez me conseiller sur la façon de créer une fonction permettant de définir le nombre d'ordres requis ! Par exemple, pour ouvrir un nombre déterminé d'ordres sans plus. dans mql4
 
Konstantin Erin:
if(OrdersTotal() < OrdersMax) OrderSend(...) ; else Alert("Le nombre requis d'ordres ouverts") ; si cette méthode est utilisée alors plusieurs ordres successifs sont ouverts ! pas d'ordres s'il y a un autre signal à négocier alors comment faire pour qu'il ouvre le nombre requis d'ordres s'il y a d'autres signaux à négocier après le premier ordre ouvert ! ?
 

Pourquoi personne n'aide, s'il vous plaît ?

 
Лауреат:
if(OrdersTotal() < OrdersMax) OrderSend(...) ; else Alert("Le nombre requis d'ordres ouverts") ; si cette méthode est utilisée alors plusieurs ordres consécutifs seront ouverts ! pas d'ordres s'il y a un autre signal à négocier alors comment faire pour qu'il ouvre le nombre requis d'ordres s'il y a d'autres signaux à négocier après le premier ordre ouvert ! ?
enum Цвет   // Цвет флага
{
  Красный,
  Зеленый
};

Цвет Флаг=Красный;

void start()
{
   if(!Сигнал())Флаг=Зеленый;

   if(Сигнал()>0 && Флаг==Зеленый)
   {
      OrderSend(Покупка...);
      Флаг=Красный;
   }

   if(Сигнал()<0 && Флаг==Зеленый)
   {
      OrderSend(Продажа...);
      Флаг=Красный;
   }
}

int Сигнал()  // Сигналы покупки и продажи
{
   return ЧтоНадо;
}
Cela pourrait être aussi court que 5 lignes, mais je suis trop paresseux pour penser...
 

Les gars, conseillez moi où trouver ou aidez moi à corriger le trailing stop, qui fonctionne de cette façon :

Par exemple, un ordre d'achat (BUY) avec TP = 100 et SL = 200 a été ouvert, et lorsque le prix est passé à BUY et a dépassé 50 points, alors SL est devenule prix d'ouverture, tandis que TP a été déplacé à 50 points et ainsi de suite constamment ????.

void TrailingPositions(int otype)
{

int cnt = OrdersTotal() ;

int lMinProfit = 0 ; // Pips min.

int lTrailingStop = 40 ; // Niveau de la position de queue (le nombre de points de la distance SL précédente)

int lTrailingStep = 20 ; // Niveau de l'arrêt de suivi (le nombre de points après lequel il se déclenchera)

for (int i=0 ; i<cnt ; i++)
{
si ( !(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continuer ;
si (OrderSymbol() != Symbol()) continue ;

if (OrderType() == OP_BUY && otype == OP_BUY) {
si (Bid-OrderOpenPrice() > lMinProfit*Point) {
si (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point) {
if(OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point, TP + lTrailingStop * Point, 0, Blue))
Print("Le Trailing Stop fonctionne") ;
}
}
}

if (OrderType() == OP_SELL && otype == OP_SELL) {
si (OrderOpenPrice()-Ask > lMinProfit*Point) {
if(OrderStopLoss() > Ask+(lTrailingStop+lTrailingStep-1)*Point || OrderStopLoss() == 0) {
if(OrderModify(OrderTicket(), OrderOpenPrice(), Ask+lTrailingStop*Point, TP - lTrailingStop * Point, 0, Red))
Print("Le Trailing Stop fonctionne") ;
}
}
}
 
LRA:
Il pourrait être plus court de 5 lignes, mais je suis trop paresseux pour y penser...
Bonne idée, je vais devoir l'essayer. Merci. Cependant, cela fonctionnera-t-il avec la fonction onticket void OnTick() ?
 
Bonjour camarades ! S'il vous plaît aidez-moi avec l'installation de l'objet "bouton", j'ai besoin de placer du code dans l'Expert Advisor, de sorte que directement sur le bouton du graphique dans l'état pressé ou non pressé renvoie une valeur de bool. Merci d'avance !
 
Arseniy Barudkin:
Bonjour Camarades ! J'ai besoin de placer du code dans l'EA pour que, directement sur le graphique, le bouton, qu'il soit pressé ou non, renvoie une valeur bool. Merci d'avance !
ObjectGetInteger(ChartId(),"имя кнопки",OBJPROP_STATE)

voici

Raison: