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

 
jommerbot:

OK, même dans le cas le plus simple, ça ne marche pas :

Je ne comprends pas où est mon erreur. La copie du même tampon d'indicateur dans l'EA et le script fonctionne, mais pas dans l'indicateur. Le manche de l'indicateur est initialisé sans erreur.

Trouvez la différence. )

#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
#property  indicator_type1   DRAW_LINE
#property  indicator_color1  clrRed
//---
double ExtLineBuffer[];
int    iRocHandleEURUSD =INVALID_HANDLE;
int    iPlotShift       =0;
int    iPeriod          =6;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
   IndicatorSetInteger(INDICATOR_DIGITS,2);
   SetIndexBuffer(0,ExtLineBuffer,INDICATOR_DATA);
   PlotIndexSetInteger(0,PLOT_SHIFT,iPlotShift);
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,iPeriod-1);
//---
   iRocHandleEURUSD=iCustom("EURUSD",0,"Examples\\ROC");
   if(iRocHandleEURUSD==INVALID_HANDLE)
      Print("Не удалось получить хендл индикатора ROC EURUSD");
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int    rates_total,
                const int    prev_calculated,
                const int    begin,
                const double &price[])
  {
//---
   if(rates_total<iPeriod)
      return(0);
//---
   int first=0;
   double aRocRatesEURUSD[];
   ArraySetAsSeries(ExtLineBuffer,true);
//---
   if(prev_calculated==0)
      first=0;
   else
      first=prev_calculated-1;
//---
   for(int bar=first; bar<rates_total; bar++)
     {
      CopyBuffer(iRocHandleEURUSD,0,bar,1,aRocRatesEURUSD);
      Print("bar: ",bar,"; value: ",DoubleToString((aRocRatesEURUSD[0]!=EMPTY_VALUE)?aRocRatesEURUSD[0]:0,2));
      ExtLineBuffer[bar]=aRocRatesEURUSD[0];
     }
//---
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

Oui, je l'ai eu, dans la dernière version de mon code, le gestionnaire d'indicateurs entrait dans la mauvaise portée de la variable. Ça m'a manqué, merci. Mais il y a un problème - dans le testeur, sur les barres historiques avant le début de la période de test, l'indicateur fonctionne normalement, mais à partir du début de la période de test, les ticks nouvellement arrivés ne sont pas pris en compte. Par exemple, le tampon d'un indicateur d'enfant n'est pas mis à jour.

 

Bonnes gens, s'il vous plaît aidez à corriger le code, de sorte que de la ligne de travail dans "Paramètres d'entrée" du conseiller
extern string Lot = "0.2 0.2 0.3 0.4 0.5" ; // (à travers un espace)
la dernière valeur (dans ce cas 0.5) se répéterait infiniment c'est-à-dire ne pas taper
"0.2 0.2 0.2 0.3 0.4 0.5 0.5 0.5 0.5 0.5 0.5 0.5" ;

//----------------------------

StringToArrayLot(Lot,xiLot) ;

//---------------------------------------------------

int StringToArrayLot(string st,double &ad[])
{
int i=0,np ; string stp ;ArrayResize(ad,0) ;
while(StringLen(st)>0)
{
np=StringFind(st," ") ;
if(np<0)
{
stp=st ;
st="" ;
} else{
stp=StringSubstr(st,0,np) ;
st=StringSubstr(st,np+1) ;
}
i++ ;
ArrayResize(ad,i) ;
ad[i-1]=StrToDouble(stp) ;
}
return(ArraySize(ad)) ;
}

 
Pourquoi ne puis-je pas voir mon EA sur le site web ou dans le terminal ?
 
Krasev157:
Pourquoi ne puis-je pas voir mon EA sur le site web ou dans le terminal ?
Pour le voir sur le site web, vous devez le télécharger. Pour le compiler dans le terminal.
 
zfs:
Pour le voir sur le site, vous devez le télécharger. Pour le compiler dans le terminal.

Je ne peux pas le voir sur mon profil, mais je ne peux pas le voir sur mon profil.

 
Krasev157:

le postera sur le site web. Je ne le vois pas sur mon profil.

Donnez-moi un lien vers un dictionnaire albanais, s'il vous plaît.
 
barabashkakvn:
Donnez-moi un lien vers un dictionnaire albanais, s'il vous plaît.

http://www.txtblog.ru/blog/1165306807 voici

 

Herr Hattar est en feu.

Allez !

Bazinga !

 
Bonjour, si ça ne vous dérange pas trop, pouvez-vous me le dire ? Comment mettre le prix des 5 derniers ticks dans un tableau ?
Raison: