[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 48

 
TarasBY:
Vous parlez de "considérer" et de DC ? ! ;)

Cela n'a rien à voir avec DC.
 

J'ai joué avec un conseiller expert assez peu sophistiqué que j'ai écrit. Mais j'ai décidé d'ajouter à mon expert non pas un mais plusieurs signaux pour entrer sur le marché. Mais je veux qu'un seul ordre pour chaque signal entre sur le marché.

L'affaire est la suivante. J'ai inventé de délimiter les commandes par la magie. La recherche de commandes ressemblerait à ceci :

//+-------------------------------------------------------------------------------------+
//| Поиск своих ордеров                                                                  |
//+-------------------------------------------------------------------------------------+
int FindOrders(int magic)
{
  int t;                                                 // Количество открытых позиции (buy's + sell's)
  int total = OrdersTotal() - 1;
  
  for(int i=total; i>=0; i--)
  {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber() == magic && OrderSymbol() == Symbol())
      {
        t++;
      }
  }
  
  return(t);
}

Ensuite... nous devons ouvrir des ordres pour chaque type de signal avec son propre Magic. Par exemple, pour les ventes, c'était comme ça avant :

//+-------------------------------------------------------------------------------------+
//| Открытие коротких позиций                                                           |
//+-------------------------------------------------------------------------------------+
bool OpenSell()
{
  int ticket = -1;
  string myNote = "Сов шортанул";
  
  ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,magic,0,Red);
    return(true);
  
  return(false);
}

A ce stade, j'ai décidé d'utiliser l'opérateur switch, est-il raisonnable d'utiliser cet opérateur dans ce cas ?

//+-------------------------------------------------------------------------------------+
//| Открытие коротких позиций                                                           |
//+-------------------------------------------------------------------------------------+
bool OpenSell()
{
  int ticket = -1;
  string myNote = "Сов шортанул";
  
    switch(maState)
  {
    case 4:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic6,0,Red); break;
    case 5:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic25,0,Red); break;
    case 6:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic150,0,Red); break;
    case 7:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic250,0,Red); break;
    default:   return(false);
  }
    return(true);
}

Et voici à quoi ressemblait la fonction de négociation :

//+-------------------------------------------------------------------------------------+
//| Открытие позиций                                                                    |
//+-------------------------------------------------------------------------------------+
bool Trade(int signal)
{
  if(signal == SIGNAL_BUY && FindOrders() == 0)
    if(!OpenBuy())
    return(false);
  
  if(signal == SIGNAL_SELL && FindOrders() == 0)
    if(!OpenSell())
    return(false);
    
  return(true);
}

Dois-je l'implémenter par le biais de l'opérateur de commutation ici aussi ? Je pensais aussi passer Magic par des paramètres formels à la fonction FindOrders() , mais je ne sais pas comment...

 
Bonjour. Pouvez-vous calculer une perte possible pour un taux croisé, par exemple GBPCHF, ouvrir un ordre de 1 lot et mettre un stop de 50 pip. Pour autant que je sache, la valeur du pip dépend de la devise de base, dont on ignore ce qu'elle affichera à l'avenir.
 

La valeur d'un pip de GBPCHG (si je ne me trompe pas) pour un lot est de 8 $. Ainsi, si le prix évolue en votre défaveur et qu'un stop-loss est déclenché, une perte d'environ 50 $*8=-$400 sera enregistrée.

Et il faut ajouter les pertes sur le spread asc-bid (6-8 pips)...
 
Donc le coût de l'article change à chaque fois
 

Question sur MT4. J'ai testé et optimisé l'EA pendant un certain temps (quelques jours).

Tout allait bien. Et puis soudainement, quand je lance l'EA, il commence à montrer l'entrée sur chaque barre et la sortie immédiatement, en bref, ce n'est pas une stratégie, mais l'enfer sait quoi !

Probablement que quelque part, quelque chose s'est mal passé dans les paramètres. Où et qu'est-ce que ça peut être ? Aide. plz....

 
Caesar34:
Bonjour.. Pouvez-vous me dire comment faire une période de MA ou EMA avec une valeur négative, alors que les paramètres ne permettent pas de le faire.... ? dans MT4
Spam ?
 
Caesar34:


Non !!
Alors pourquoi poster dans plusieurs fils de discussion avec une seule question ?
 

La requête iLow renvoie une valeur avec 4 décimales, bien que le graphique ait 5 décimales.

A cause de cela, le développement du premier programme mql4 est bloqué. Pouvez-vous me dire quel peut être le problème ? Ou peut-être que ça devrait être comme ça ?

 
PolarsLynx:

La requête iLow renvoie une valeur avec 4 décimales, bien que le graphique ait 5 décimales.

A cause de cela, le développement du premier programme mql4 est bloqué. Pouvez-vous me dire quel peut être le problème ? Ou peut-être que ça devrait être comme ça ?

Où est le code ?