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

 
Où puis-je trouver une option dans le terminal pour commencer à créer des indicateurs auxiliaires qui ne sont pas liés au graphique ouvert?
 
BillionerClub:
Où puis-je trouver une option dans le terminal pour commencer à créer des indicateurs auxiliaires qui ne sont pas liés au graphique ouvert?

Tout ce que vous devez faire lorsque vous créez un indicateur HANDLE est de spécifier la période et le symbole souhaités. Par exemple, l'indicateuriRSI:

int  iRSI( 
   string              symbol,            // имя символа 
   ENUM_TIMEFRAMES     period,            // период 
   int                 ma_period,         // период усреднения 
   ENUM_APPLIED_PRICE  applied_price      // тип цены или handle 
   );
 
Vladimir Karputov:

Tout ce que vous devez faire lorsque vous créez un indicateur HANDLE est de spécifier la période et le symbole souhaités. Par exemple, l'indicateuriRSI:

Non, je le pense. Je pense que Renat a parlé dans un post de la création d'EA auxiliaires, non liés aux EA graphiques ou quelque chose comme ça.

 
BillionerClub:

Non, c'est ce que je veux dire. Je pense que Renat a parlé dans un post de créer des EA auxiliaires, non chargées ou quelque chose comme ça.

Il s'agit des Services. Nous ne les avons pas encore.

 

J'ai une fonction qui fonctionne sous MT4 et qui vérifie la disponibilité du serveur avant de passer l'ordre (paramètre bool refreshrates - rafraîchissement des cotations et int count - nombre de vérifications avec pause si le serveur n'est pas disponible, le résultat renvoie false - on peut négocier, true le serveur n'est pas disponible. c'est-à-dire qu'il est pratique d'utiliser if(ServerDisable() return ;) :

bool ServerDisable(bool refreshrates=false,int count=10)
  {
   for(int i=0;i<count;i++)
     {
      if(IsConnected())
        {
         if(IsTradeAllowed())
           {
            if(!IsTradeContextBusy())
              {
                 {
                  if(refreshrates)RefreshRates();
                  return(false);
                 }
              }
           }
        }
      Sleep(157);
     }
   Print(__FUNCTION__," Торговый сервер не отвечает");
   return(true);
  }

Aidez-moi à réécrire correctement cette construction pour MT5, elle s'appelleTerminalInfoInteger() paramètres de demande dans l'aide MT5 (c'est-à-dire que je cherche l'analogie dans MT5 aux fonctions MT4 standard IsConnected(), IsTradeAllowed().... ) et comment exécuter RefreshRates() ?

 
Igor Makanu:

J'ai une fonction qui fonctionne sous MT4 et qui vérifie la disponibilité du serveur avant de passer l'ordre (paramètre bool refreshrates - rafraîchissement des cotations et int count - nombre de vérifications avec pause si le serveur n'est pas disponible, le résultat renvoie false - on peut négocier, true le serveur n'est pas disponible. c'est-à-dire qu'il est pratique d'utiliser if(ServerDisable() return ;) :

Aidez-moi à réécrire correctement cette construction pour MT5, elle s'appelle TerminalInfoInteger() paramètres de demande dans l'aide MT5 (c'est-à-dire que je cherche l'analogie dans MT5 aux fonctions MT4 standard IsConnected(), IsTradeAllowed().... ) et comment exécuter RefreshRates() ?

Je n'utilise que celui-là et il semble suffire.

TerminalInfoInteger(TERMINAL_CONNECTED)

 
Vitaly Muzichenko:

Je n'utilise que celui-là, il semble suffire.

TerminalInfoInteger(TERMINAL_CONNECTED)

Je ne veux pas discuter des courtiers rusés, la construction que j'ai montrée ci-dessus permet de placer un ordre, ainsi que de sortir de OnTick() lorsqu'un tick arrive, si sur ce tick il n'y a pas de possibilité de travailler avec des ordres.

J'ai besoin d'analogues exacts pour MT5 fts : IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - confirmed ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

 
Igor Makanu:

Je ne veux pas discuter des courtiers rusés, la construction que j'ai montrée ci-dessus permet de placer des ordres, ainsi que de sortir OnTick() si sur ce tick il n'y a pas de possibilité de travailler avec des ordres.

J'ai besoin d'analogues exacts pour les fonctions MT5 : IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - confirmed), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

IsTradeContextBusy() peut être exclu, le cinquième thread est toujours libre

RefreshRates() est une mise à jour des variables Ask/Bid prédéfinies.

#define Bid (::SymbolInfoDouble(_Symbol, ::SYMBOL_BID))
#define Ask (::SymbolInfoDouble(_Symbol, ::SYMBOL_ASK))

alors les prix seront toujours actualisés

 
Igor Makanu:

Je ne veux pas discuter de courtiers compliqués, la construction que j'ai montrée ci-dessus permet de placer des ordres, ainsi que de sortir de OnTick() si sur ce tick il n'y a pas de possibilité de travailler avec des ordres.

J'ai besoin d'analogues exacts pour MT5 fts : IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - confirmed), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

Je suppose que vous voulez dire que les ticks fonctionnent mais que le trading est désactivé?

Si c'est le cas, j'aimerais aussi avoir un tel chèque, mais personne n'a rien proposé jusqu'à présent.

 
Vitaly Muzichenko:

IsTradeContextBusy() peut être exclu, le cinquième thread est toujours libre

https://www.mql5.com/ru/articles/4332

IsConnected() TerminalInfoInteger(TERMINAL_CONNECTED)

IsTradeAllowed() MQLInfoInteger(MQL_TRADE_ALLOWED)

RefreshRates() SymbolInfoDouble(_Symbol, ::SYMBOL_BID)

IsTradeContextBusy() besoin d'analogie ou de justifier pourquoi la même chose n'est pas possible


J'ai besoin d'un analogue et rien de plus, j'ai réécrit la fonction ci-dessus hier sur la base de l'aide mais il y a une incertitude quant à l'interprétation correcte (différents mots décrits), maintenant je veux confirmer l'exactitude sur le forum :

//_______________________________________________________________________
bool ServerDisable(bool refreshrates=false,int count=10)
  {
   if(MQLInfoInteger(MQL_TESTER)|| MQLInfoInteger(MQL_OPTIMIZATION))return(false);
   for(int i=0;i<count;i++)
     {
      if(TerminalInfoInteger(TERMINAL_CONNECTED))if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
        {
#ifdef __MQL5__
         if(refreshrates) SymbolInfoDouble(_Symbol,SYMBOL_BID);
         return(false);
#else
#ifdef __MQL4__
         if(!IsTradeContextBusy())
           {
            if(refreshrates) RefreshRates();
            return(false);
           }
#endif   // __MQL4__
#endif
        }
      Sleep(157);
     }
   Print(__FUNCTION__," Торговый сервер не отвечает");
   return(true);
  }
//___________________________________________________________________________
LifeHack для трейдера: замешиваем ForEach на дефайнах (#define)
LifeHack для трейдера: замешиваем ForEach на дефайнах (#define)
  • www.mql5.com
— В чем сила, брат?                                   —А сила, брат, в дефайнах                     Вы все ещё пишете на MQL4 и хотите перейти на MQL5, но не знаете с чего начать? Тогда мы идём к вам! Теперь появилась возможность комфортно работать в редакторе MetaEditor MQL5 и при этом использовать MQL4-нотацию (справедливости ради замечу...