Erreurs, bugs, questions - page 1921

 
A100:

Erreur lors de la compilation

Est-il possible de faire cela chez les pros ?

 
Комбинатор:

Est-il autorisé dans les plus ?

C++ compile les deux variantes, mais la (1) semble plus correcte et intuitive. Dans (2), il est nécessaire de garder à l'esprit les types aussi, ce qui est gênant et au lieu d'une simplification nous obtenons une complication excessive, ce qui est clairement vu si <> a plusieurs typename.
 

aucune alerte ne disparaît, j'ai tout essayé, tout lu, aucune alerte sur μl site internet uniquement sur le terminal....


 
Vladimir Pastushak:

Les alertes ne disparaissent pas, j'ai tout essayé, j'ai tout lu, il n'y a pas d'alertes sur le site du μl, seulement sur le terminal....

C'est le cas depuis le début.

Il y avait un fil ici qui a trouvé quel fichier à supprimer pour les faire cocher en tant que lecture. Mais les "fantômes" apparaissent toujours.

 
Bonjour. Pouvez-vous me dire pourquoi les cotations de l'or sur la démo sont de plus en plus absentes ?
 

Les fichiers .log %AppData%\MetaQuotes\Terminal\...\MQL5\Logs\YYYYMMDD.log ne sont pas mis à jour rapidement.

La mise à jour ne se produit qu'après le redémarrage du terminal ou la sélection du menu Affichage. Si vous ne redémarrez pas ou ne cliquez pas sur Aperçu, le fichier correspondant sera vide.

Tout fonctionnait auparavant (même le fichier YYYYMMDD.log ouvert dans MetaEditor était mis à jour en quelques secondes après l'affichage des lignes dans l'onglet Experts) et aucune action supplémentaire non évidente n'a dû être effectuée.

 

Bonne nuit ! Mon conseiller expert a le RSI et le STO, mais je ne peux pas faire en sorte qu'un signal d'achat ou de vente s'ouvre sur une nouvelle bougie, et non sur la bougie actuelle !

le code est comme ceci :

void OnTick(){

for (int i=0 ; i<OrdersTotal() ; i++)

si (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
si (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())
retour ;

double RSI0 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 0) ;
double RSI1 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 1) ;

double STO0=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 0) ;
double STO1=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 1) ;

double STO2 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 0) ;
double STO3 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 1) ;

double SL=0,TP=0 ;

if (RSI1 < RSIDownLevel && RSIDownLevel < RSI0 && STO2 < STO0){

if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits) ;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits) ;
si (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NUL L,Magic)==-1) Print(GetLastError())
}

if (RSI1 > RSIUpLevel && RSIUpLevel > RSI0 && STO3 > STO1){

if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits) ;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss* Point,Digits) ;
si (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi d,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError())
}

retour(0) ;
}


Encore une fois, je dois répéter que mon ordre est déclenché par l'ouverture sur la bougie actuelle, et j'ai besoin que l'ordre s'ouvre sur la suivante ! S'il vous plaît, aidez-moi ! !!

 
sviter-pro:

Bonne nuit ! Mon conseiller expert a le RSI et le STO, mais je n'arrive pas à le faire ouvrir sur une nouvelle bougie lorsqu'un signal d'achat ou de vente se déclenche, et non sur la bougie actuelle !

Encore une fois, mon ordre est déclenché par la bougie actuelle, mais j'ai besoin que l'ordre s'ouvre sur la bougie suivante ! !! Au secours ! !!


//+------------------------------------------------------------------+
void OnTick()
  {

   for(int i=0; i<OrdersTotal(); i++)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && Magic==OrderMagicNumber())
            return;

   double RSI0 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 0);
   double RSI1 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, 1);

   double STO0=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 0);
   double STO1=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_MAIN, 1);

   double STO2 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 0);
   double STO3 = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing, MODE_SMA, STO_LOWHIGH, MODE_SIGNAL, 1);

   double SL=0,TP=0;
   
   if(NewBar())
     {
      if(RSI1<RSIDownLevel && RSIDownLevel<RSI0 && STO2<STO0)
        {

         if(takeprofit!=0) TP=NormalizeDouble(Ask+takeprofit*Point,Digits);
         if(stoploss!=0) SL=NormalizeDouble(Ask-stoploss *Point,Digits);
         if(OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NUL L,Magic)==-1) Print(GetLastError());
        }

      if(RSI1>RSIUpLevel && RSIUpLevel>RSI0 && STO3>STO1)
        {

         if(takeprofit!=0) TP=NormalizeDouble(Bid-takeprofit*Point,Digits);
         if(stoploss!=0) SL=NormalizeDouble(Bid+stoploss *Point,Digits);
         if(OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi d,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
        }
     }

   return(0);
  }
//+------------------------------------------------------------------+
bool NewBar()
  {
   static datetime time=0;
   if(time==0)
     {
      time=Time[0];
      return false;
     }
   if(time!=Time[0])
     {
      time=Time[0];
      return true;
     }
   return false;
  }
//+------------------------------------------------------------------+
 
sviter-pro:

Bonne nuit ! Mon conseiller expert a un RSI et un STO, mais je n'arrive pas à faire en sorte que lorsqu'un signal d'achat ou de vente est déclenché, il s'ouvre sur une nouvelle bougie, et non sur la bougie actuelle !

le code est comme ceci :

Encore une fois, je dois répéter que mon ordre est déclenché par l'ouverture sur la bougie actuelle, et j'ai besoin que l'ordre s'ouvre sur la suivante ! S'il vous plaît, aidez-moi ! !!

Vous prenez les valeurs de l'indicateur des barres 0 et 1.

Au lieu de 0 et 1, prenez les valeurs de 1 et 2 respectivement.

 

Erreur de compilation.

#define  MACRO( x )      ((x) + 2)
struct A {
        A( int, int ) {}
};
template<typename T>
struct B {
        static A a;
};
template<typename T>
A B::a( MACRO(1), 2 ); //error: '(' - declaration without type
Et sanstemplate<typename T> c'est bon... quelle est la différence ?
Raison: