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

 
Vladimir Karputov:

Exemple de comptage de quatre types d'ordres en attente dans le code Min Max pour N Bars Martingal

Vladimir Karputov:

Exemple de comptage de quatre types d'ordres en attente dans le code Min Max pour N Bars Martingale 2

Vladimir Karputov:

Un exemple de comptage de quatre types d'ordres en attente dans le code Min Max pour N Bars Martingale 2




Vladimir, pour une raison quelconque, il ne compte pas dans les ordres de limite ????.

int count_buy_limits = 0 ;
for(int i=OrdersTotal()-1 ; i>=0 ; i--)
{
if(o_orderInfo.OrderType()==ORDER_TYPE_BUY_LIMIT)
{
count_buy_limits++ ;
}
}

 
Fergert Фергерт:


Vladimir, pour une raison quelconque, ne compte pas dans les ordres de limitation ????.

int count_buy_limits = 0 ;
for(int i=OrdersTotal()-1 ; i>=0 ; i--)
{
if(o_orderInfo.OrderType()==ORDER_TYPE_BUY_LIMIT)
{
count_buy_limits++ ;
}
}

1. Insérez le code correctement
2. Montrer tout le code.
4. Capture d'écran de la fenêtre avec les positions et les ordres en attente
 
Vladimir Karputov:
1. Insérer le code correctement
2. Afficher tout le code
4. Capture d'écran de la fenêtre avec les positions et les ordres en attente

Il n'y a pas d'erreur de compilation.

VOICI LE CODE :

#include <Trade\Trade.mqh>
#include <Trade\OrderInfo.mqh>
#include <Trade\SymbolInfo.mqh>

CTrade      o_trade;
COrderInfo  o_orderInfo;
CSymbolInfo o_symbolInfo;

MqlTradeRequest   order_req={0}, buylimit_req1={0}, buylimit_req2={0}, sellstop_req3={0};
MqlTradeResult    order_res={0}, buylimit_res1={0}, buylimit_res2={0}, sellstop_res3={0};

//double   lot_r    = GlobalVariableGet("glot"); // Глобальная переменная
//double   lot_r    = 0.33;
double   lot_r    = NormalizeDouble(AccountInfoDouble(ACCOUNT_BALANCE)/15000,2);

int      tp_r     = 125;

double   lot_bl1  = 2.5;
double   lot_bl2  = 3;

double   lot_v    = NormalizeDouble(lot_r + (lot_r * lot_bl1) + (lot_r * lot_bl2), 2);

int      set_bl1  = 500;   
int      set_bl2  = 1000;
int      set_v    = 1100;

int      tp_bl1   = 70;
int      tp_bl2   = 480;

int OnInit()
  {
      order_req.action           = TRADE_ACTION_DEAL;
      order_req.symbol           = _Symbol;
      order_req.price            = SymbolInfoDouble(order_req.symbol, SYMBOL_ASK);
      order_req.volume           = lot_r;
      order_req.tp               = order_req.price+tp_r*_Point;
      order_req.type             = ORDER_TYPE_BUY;
      order_req.type_filling     = ORDER_FILLING_FOK;
      
      buylimit_req1.action       = TRADE_ACTION_PENDING;
      buylimit_req1.symbol       = _Symbol;
      buylimit_req1.volume       = NormalizeDouble(lot_r*lot_bl1, 2);
      buylimit_req1.price        = SymbolInfoDouble(buylimit_req1.symbol, SYMBOL_ASK)-set_bl1*_Point;
      buylimit_req1.tp           = order_req.price-tp_bl1*_Point;
      buylimit_req1.type         = ORDER_TYPE_BUY_LIMIT;
      buylimit_req1.type_filling = ORDER_FILLING_RETURN;
      buylimit_req1.expiration   = ORDER_TIME_GTC;
      buylimit_req1.magic        = 01;
      
      buylimit_req2.action       = TRADE_ACTION_PENDING;
      buylimit_req2.symbol       = _Symbol;
      buylimit_req2.volume       = NormalizeDouble(lot_r*lot_bl2, 2);
      buylimit_req2.price        = SymbolInfoDouble(buylimit_req2.symbol, SYMBOL_ASK)-set_bl2*_Point;
      buylimit_req2.tp           = order_req.price-tp_bl2*_Point;
      buylimit_req2.type         = ORDER_TYPE_BUY_LIMIT;
      buylimit_req2.type_filling = ORDER_FILLING_RETURN;
      buylimit_req2.expiration   = ORDER_TIME_GTC;
      buylimit_req1.magic        = 02;
      
      sellstop_req3.action       = TRADE_ACTION_PENDING;
      sellstop_req3.symbol       = _Symbol;
      sellstop_req3.volume       = NormalizeDouble(lot_v, 2);
      sellstop_req3.price        = SymbolInfoDouble(sellstop_req3.symbol, SYMBOL_ASK)-set_v*_Point;
      sellstop_req3.sl           = buylimit_req2.price + 10*_Point;
      sellstop_req3.type         = ORDER_TYPE_SELL_STOP;
      sellstop_req3.type_filling = ORDER_FILLING_RETURN;
      sellstop_req3.expiration   = ORDER_TIME_GTC;
      
   
   if(OrdersTotal()==0 && PositionsTotal() == 0)
      {
         OrderSend(order_req, order_res);
         OrderSend(buylimit_req1, buylimit_res1);
         OrderSend(buylimit_req2, buylimit_res2);
         OrderSend(sellstop_req3, sellstop_res3);
      }
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {

  
  }
 
 void OnTick()
  {
       int count_buy_limits = 0;
       for(int i=OrdersTotal()-1; i>=0; i--)
        {
          if(o_orderInfo.OrderType()==ORDER_TYPE_BUY_LIMIT)
               {
                  count_buy_limits++;
               }
        }   
      if(count_buy_limits < 2 || PositionsTotal() == 0)
         {
            for(int r=PositionsTotal()-1; r>=0; r--)
               {
                  ulong ticket=PositionGetTicket(r);
                  o_trade.PositionClose(ticket);   
               }  
      
            for(int o=OrdersTotal()-1; o>=0; o--)
               {
                  ulong ticket1=OrderGetTicket(o);
                  o_trade.OrderDelete(ticket1);
               }
      ExpertRemove();
         }
  }
//+------------------------------------------------------------------+
Dossiers :
001.jpg  173 kb
 
Fergert Фергерт:

Il n'y a pas d'erreur de compilation...

VOICI LE CODE :

Examinez attentivement mon exemple et votre exemple. Vous ne pouvez pas copier sans réfléchir. Tu dois réfléchir un peu. Cherchez une erreur dans votre code.

Insérez le code correctement (en utilisant le bouton Code- j'ai corrigé votre message la première fois)

 
Vladimir Karputov:

Regardez attentivement mon exemple et votre exemple. Vous ne pouvez pas copier sans réfléchir. Tu dois réfléchir un peu. Cherchez une erreur dans votre code.

Insérer le code correctement (en utilisant le bouton - j'ai corrigé votre message pour la première fois)

Yep, je l'ai...
 
Fergert Фергерт:
Yep, j'ai tout...

Oui, vous avez oublié que si vous contournez la boucle, vous devez faire un BREAK à chaque itération :

      if(m_order.SelectByIndex(i))     // selects the pending order by index for further access to its properties

Référence :

SelectByIndex

Sélectionne une commande pour un accès ultérieur par l'index spécifié.

Документация по MQL5: Стандартная библиотека / Торговые классы / COrderInfo / SelectByIndex
Документация по MQL5: Стандартная библиотека / Торговые классы / COrderInfo / SelectByIndex
  • www.mql5.com
SelectByIndex(int) - COrderInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

Oui, vous avez oublié que si vous contournez la boucle, vous devez faire un BREAK à chaque itération :

Référence :

SelectByIndex

Sélectionne une commande pour un accès ultérieur par l'index spécifié.

Ouais. Mon mauvais..... MERCI BEAUCOUP À VLADIMIR !!!!)))) Bonne chance à vous......
 
Bonjour à tous les membres du forum. Je n'arrive pas à comprendre comment utiliser les curseurs. J'ai lu l'aide, mais je n'arrive toujours pas à comprendre. J'ai lu l'aide, mais je ne la comprends toujours pas. Je veux prendre des lectures de la MA rapide sur 10 et 15 barres. Je veux obtenir une MA lente sur 10 et 15 mesures, mais ma tête s'embrouille. Je suis confus. J'ai utilisé le code standard et l'aide. Aide qui sait comment mettre en œuvre ce code. Merci d'avance.
 

Bon après-midi.

Pas de migration vers un"hébergement partagé" lorsque les transactions sont ouvertes ?

Ou une autre raison ?


J'ai fermé les transactions, elles ne migrent pas de toute façon.

L'expert fonctionne et se charge partout, quel pourrait être le problème ?

Виртуальный хостинг для MetaTrader 5
Виртуальный хостинг для MetaTrader 5
  • www.mql5.com
Самый быстрый виртуальный выделенный сервер (VPS) для трейдинга на форексе от производителей терминала MetaTrader 4/5
 
Aleksandr Prishenko:

Bon après-midi.

Pas de migration vers un"hébergement partagé" lorsque les transactions sont ouvertes ?

Ou une autre raison ?


J'ai fermé les transactions, elles ne migrent pas de toute façon.

L'Expert Advisor fonctionne et est chargé partout, quel pourrait être le problème ?

Le problème se situe au niveau de l'EA. D'ailleurs, les règles de l'hébergement partagé interdisent les dlls.