Questions des débutants MQL5 MT5 MetaTrader 5 - page 847

 
Vitaly Muzichenko:

Vous souhaitez peut-être que les terminaux contenant les graphiques envoient le balisage à un serveur Web et que les autres le reçoivent et l'affichent sur le graphique. Ce n'est pas une tâche facile, mais c'est faisable.

Comment puis-je le faire ou que dois-je lire pour apprendre à le faire ? Le balisage est-il automatiquement envoyé et accepté par les autres utilisateurs ou doit-il être téléchargé comme modèle à chaque fois ?
 
Илья:
Comment dois-je faire ou que dois-je lire pour savoir comment faire ? Le balisage est-il automatiquement envoyé et accepté par les autres utilisateurs ou doit-il être téléchargé séparément à chaque fois comme modèle ?

Je pense que vous avez besoin d'un petit bouton, et après avoir fait un marquage, appuyez dessus et envoyez-le. Sur les récepteurs, c'est la même chose, si vous voulez obtenir une majoration, appuyez sur le deuxième bouton. Total de 2 boutons sur le graphique, et il n'y a pas de coût de ressources pour le surveiller constamment

 

Comment puis-je limiter le placement d'ordres s'il y a toujours une position sur le marché après l'activation des ordres limités ?

en forex, j'avais l'habitude de vérifier le nombre d'ordres - positions

if( CalculateBUYPositions()==1)
//// 
 int CalculateBUYPositions()
  {
   int total=0;
//ENUM_ORDER_TYPE   order_type=ORDER_TYPE_BUY;
   for(int i=PositionsTotal()-1;i>=0;i--)
      if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
         if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
                   if(m_position.PositionType()==POSITION_TYPE_BUY)
                  
              {
            total++;
            }
//---
   return(total);
  }
  //

Les ordres limités doivent être fixés s'il n'y a qu'une seule position.

Comment puis-je remplacer cette condition ?

 
lil_lil:

Comment puis-je limiter le placement d'ordres s'il y a toujours une position sur le marché après l'activation des ordres limités ?

en forex, j'avais l'habitude de vérifier le nombre d'ordres - positions

Les ordres limités doivent être fixés s'il n'y a qu'une seule position.

comment pouvons-nous remplacer cette condition ?

La question n'est pas claire. Vous confondez les ordres et les positions.

Le code "CalculateBUYPositions()" que vous avez cité calcule le nombre de positions BUY.


Veuillez reformuler votre question.

 
Vladimir Karputov:

La question n'est pas claire. Vous confondez les ordres et les positions.

Le code que vous avez cité, "CalculateBUYPositions()" calcule le nombre de POINTS D'ACHAT.


Reformulez votre question.

Sur le forex, si j'ai une position, je place un ordre limite et les ordres limites sont activés, le nombre de positions augmente et l'EA ne place pas plus de limites.

Sur le forex, s'il y a une limite de position et que tous les ordres limites sont activés, le nombre de positions augmente et plus aucun ordre limite n'est placé. J'ai besoin d'une alternative égale à la condition, -- "s'il y a une position" CalculateBUYPositions()==1

 
lil_lil:

Sur le forex s'il y a une position je place un ordre limite, les ordres limites sont activés le nombre de positions augmente, plus aucun limiteur n'est placé par l'EA.

Sur le forex s'il y a une position l'ordre limite est activé le nombre de positions augmente et plus aucun ordre limite n'est placé par l'EA. J'ai besoin d'une alternative égale à la condition, -- "s'il y a une position" CalculateBUYPositions()==1

Non, ça ne l'est pas. Pour clarifier, il y a déjà une position sur le symbole actuel :

  • Sur les comptes de couverture, une fois que l'ordre en attente est déclenché, il y aura UNE position de plus.
  • sur les comptes de compensation après l'ordre en attente déclenchant
    • si l'ordre en attente était pour le symbole actuel alors :
      • la position existante augmentera
      • un poste existant sera diminué
      • une position existante sera reconduite
      • la position existante s'inversera


Pour clarifier votre question : quel type de compte vous recherchez et QUOI vous avez besoin de suivre.

 
lil_lil:

Comment puis-je limiter le placement d'ordres s'il y a toujours une position sur le marché après l'activation des ordres limités ?

en forex, j'avais l'habitude de vérifier le nombre d'ordres - positions

Les ordres limités doivent être fixés s'il n'y a qu'une seule position.

Comment peut-on changer cette situation ?

Cela peut être déterminé par le nombre de transactions ou le nombre d'ordres impliqués dans l'ouverture et la modification d'une position. Il vous suffit de sélectionner l'historique du billet de la position et de vérifier le numéro. S'il existe une variante selon laquelle la position a ajouté du volume puis a été partiellement fermée par un ordre limite opposé ou autre, nous devrons boucler les transactions et compter les types de transactions comme DEAL_ENTRY_IN et/ou autres types.

Документация по MQL5: Торговые функции / HistorySelectByPosition
Документация по MQL5: Торговые функции / HistorySelectByPosition
  • www.mql5.com
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть  в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
 
Merci, je compare le lot de la position avec le lot de départ, s'ils ne sont pas égaux je sors.
 

Deuxième jour à refaire le robot de MT4 à MT5. Réglage des ordres en attente - cela fonctionne. Aide sur MqlTradeRequest :

   else if(orderType==ORDER_TYPE_BUY_STOP)
     {
      request.type =ORDER_TYPE_BUY_STOP;                                // тип ордера
      price        =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+offset*point; // цена для открытия 
      request.price=NormalizeDouble(price,digits);                      // нормализованная цена открытия 
     }
   else if(orderType==ORDER_TYPE_SELL_STOP)
     {
      request.type     =ORDER_TYPE_SELL_STOP;                           // тип ордера
      price=SymbolInfoDouble(Symbol(),SYMBOL_ASK)-offset*point;         // цена для открытия 
      request.price    =NormalizeDouble(price,digits);                  // нормализованная цена открытия 
     }

Dans les deux cas, Ask - ressemble à une erreur. Dans le second cas, pour SELL_STOP, il serait préférable d'utiliser Bid ? ???

 
STARIJ:

Deuxième jour à refaire le robot de MT4 à MT5. Réglage des ordres en attente - cela fonctionne. Aide sur MqlTradeRequest :

Dans les deux cas, Ask - ressemble à une erreur. Dans le second cas, Bid serait préférable pour SELL_STOP.


Vendre s'ouvre par Enchérir et se ferme par Demander.