Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1770

 
MakarFX #:

Mais pourquoi vous avez besoin de ce tableau, je ne comprends toujours pas...

int TradeSignal() 
  {
   int limit, i, sig=-1;
   double Ma_curr, Ma_prev, value;
   limit=MaPeriod*3;
   for(i=limit;i>=0;i--)
     {
      Ma_curr=iMA(_Symbol,_Period,MaPeriod,0,MaMethod,MaPrice,i);
      Ma_prev=iMA(_Symbol,_Period,MaPeriod,0,MaMethod,MaPrice,i+1);
      value=Ma_curr-Ma_prev;
      if(value>0) sig=0;
      if(value<0) sig=1;
     }
   return(sig);
  }

La fonction fonctionnera sans elle.

 
Mihail Matkovskij #:

Mais pourquoi vous avez besoin de ce tableau, je ne comprends toujours pas...

La fonction fonctionnera sans elle.

Et il n'y a pas besoin d'une boucle ici.

int TradeSignal() 
  {
   int sig=-1;
   double Ma_curr, Ma_prev, value;

   Ma_curr=iMA(_Symbol,_Period,MaPeriod,0,MaMethod,MaPrice,0);
   Ma_prev=iMA(_Symbol,_Period,MaPeriod,0,MaMethod,MaPrice,1);
   value=Ma_curr-Ma_prev;
   if(value>0) sig=0;
   if(value<0) sig=1;

   return(sig);
  }
 
Mihail Matkovskij #:

Et il n'y a pas besoin de boucle.

Je l'ai fait, mais je voulais comprendre pourquoi le tableau ne fonctionnait pas.

et d'ailleurs

ArraySize(Buffer,limit);

n'a pas aidé (


ArraySize' - nombre de paramètres erroné

corrigé sans limite

tableau hors limites dans '_exp.mq4' (267,17)

 
MakarFX #:


ArrayResize, et non ArraySize.

 
Yurij Kozhevnikov #:

ArrayResize, et non ArraySize.

tableau hors limites
 
MakarFX #:

Je l'ai fait, mais je voulais comprendre pourquoi le tableau ne fonctionnait pas.

et d'ailleurs

n'a pas aidé (


ArraySize' - nombre de paramètres erroné

corrigé sans limite

tableau hors limites dans '_exp.mq4' (267,17)


J'ai remarqué et corrigé immédiatement après. Et vous devez avoir copié le code non corrigé.

Et si vous voulez savoir pourquoi le tableau n'a pas fonctionné, etc., voir : Opérations. Voir : Opérations sur les tableaux .

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2021.11.28
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Mihail Matkovskij #:


J'ai remarqué et corrigé immédiatement après. Et vous devez avoir copié le code non corrigé.
Merci, ça marche !
 
MakarFX #:
Merci, ça marche !

Vous êtes les bienvenus ! Terminé le message...

 
//+------------------------------------------------------------------+
//| procès par muving.mq4 |
///+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#lien de propriété"https://www.mql5.com"
#propriété version "1.00"
#propriété stricte
extern string Moving_Averages1= "Paramètres de l'indicateur" ;
extern int MA_Period=13 ;
extern int MA_Shift=0 ;
extern int MA_Method=0 ;

extern int int TakeProfit= 300 ;
extern int StopLoss= 50 ;
double ma1,ma2,Lots,SL,TP ;

int res ;



//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED) ;
}
//+------------------------------------------------------------------+
//| Fonction de désinitialisation experte |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| fonction tick expert |
//+------------------------------------------------------------------+
void OnTick()
{
si(!OllCount()==0)
{
switch(OrderType())
{
cas OP_BUY
ma1=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,0) ;
ma2=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,1) ;
si((ma1-ma2)>0)
{
retour ;
}sélection
SL=NormalizeDouble(Bid+StopLoss*Point,5) ;
TP=NormalizeDouble(Bid-TakeProfit*Point,5) ;
if(OrderClose(OrderTicket(),OrderLots(),Ask,3,Black))
if(OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,",0,0,Red))
retour ;
cas OP_SELL
ma1=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,0) ;
ma2=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,1) ;
si((ma1-ma2)<0)
{
retour ;
}
sinon
SL=NormalizeDouble(Ask-StopLoss*Point,5) ;
TP=NormaliserDouble(Ask+TakeProfit*Point,5) ;
if(OrderClose(OrderTicket(),OrderLots(),Bid,3,Red))
if(OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,0,",0,0,Black))
retour ;
}
}
ma1=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,0) ;
ma2=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,1) ;
si((ma1-ma2)<0)
{
SL=NormalizeDouble(Bid+StopLoss*Point,5) ;
TP=NormalizeDouble(Bid-TakeProfit*Point,5) ;
res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,",0,0,Red) ;
si(res<0)
{
Print("Erreur d'ouverture d'un ordre de vente") ;
}
}
sinon
SL=NormalizeDouble(Ask-StopLoss*Point,5) ;
TP=NormaliserDouble(Ask+TakeProfit*Point,5) ;
if(OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,",0,0,Blue))
retour ;
}
//+------------------------------------------------------------------+
int OllCount()
{
int count=0 ;
for(int i=OrdersTotal()-1;i>=0;i--)
{
si (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
compte++ ;
}
}
return(count) ;
}
//+------------------------------------------------------------------+
//+---/| Copyright 2021, MetaQuotes Software Corp.
---------------------------------------------------------------+

//+------------------------------------------------------------------+

J'ai essayé d'écrire mon propre conseiller MA, j'ai suivi tous les exemples, mais il continue à retourner des erreurs.

ma1' - un opérateur attendu procès par muving.mq4 47 21

'=' - ':' deux points signe attendu mq4 muving trial 47 24

'=' - opérande attendu muving.mq4 47 24

ma1' - un opérateur attendu procès par muving.mq4 60 15

'=' - ':' deux-points signe attendu muving.mq4 60 18

'=' - opérande attendu muving.mq4 60 18


 
Sanjakotik78 #:


Votre logique de commande est fausse dès le départ. Trouvez un EA simple sur MA(par exemple CodeBase) et utilisez-le. Ou vous pouvez le modifier pour l'adapter à votre propre idée. En ce qui concerne votre code dans son ensemble, tout est faux. Accordez plus d'attention au codage. Commencez par un simple. Ou, comme je l'ai dit, trouvez un exemple tout fait.

Ajoutez des extraits de code à l'aide du bouton spécial situé en haut de la page :


Raison: