Erreurs, bugs, questions - page 1389

 
Fantomas:

Bonjour !

J'étudie, j'essaie de réparer l'expert. Dans l'éditeur de code, en mode débogage, il y a deux façons, par tics et par historique.

Pour une raison quelconque, je ne peux pas exécuter un test d'historique, cette ligne n'est pas active. Les instructions indiquent : remplissez le tableau dans les paramètres et c'est tout.

Mais la ligne "Start on historical data" n'est pas active ????????????????????.

Avez-vous rempli les champs dans MetaEditor de cette manière et appuyé sur le bon bouton ?

1

 
Karputov Vladimir:

Avez-vous rempli les champs dans MetaEditor de cette manière et cliqué sur le bon bouton ?


Oui, on a rempli ce tableau, on a mis un point d'arrêt.

Maintenant dans le menu "Debug" les deux premières lignes.

1. Commencer sur des données réelles------- Il est actif

2. Sur les données historiques--------- s'obstine à ne pas être actif.

 
Fantomas:

Oui, on a rempli ce tableau, on a mis un point d'arrêt.

Maintenant, dans le menu Debug, les deux premières lignes.

1. Commencer sur des données réelles------- Il est actif

2. Sur les données historiques--------- s'obstine à ne pas être actif.

Dernière version du terminal ?
 
Tapochun:
La dernière version du terminal ?
Probablement 880
 
Fantomas:
Probablement 880

En effet, dans MT5 build 1159 le débogage 32 bits sur l'historique est disponible, mais dans MT4 build 891 le débogage 32 bits sur l'historique n'est pas disponible :

Vous ne pouvez pas tester l'histoire. MT4 build 891

 
Karputov Vladimir:

En effet, dans MT5 build 1159 le débogage 32 bits sur l'historique est disponible et dans MT4 build 891 le débogage 32 bits sur l'historique n'est pas disponible :


Merci à tous pour votre temps ! !!

 
Alexandr Bryzgalov:

donc ce n'est pas vraiment une erreur ?

C'est vraiment le cas. Quand même, c'est probablement possible pour (; ;)

 
Комбинатор:

En effet, même si cela est possible, il est probable que (; ;)

Oui, je l'ai lu dans l'aide.)
 

Bonjour à tous, j'écris principalement en mql4, mais j'ai décidé de commencer à travailler sur mql5 et j'ai eu un problème.

J'utilise les lectures Ishimoku dans mon indicateur. Il ne met pas à jour les données et affiche l'erreur 4806.

void OnInit(){
   int i_ich=INVALID_HANDLE;
   i_ich=iIchimoku(Symbol(), Period(), 9, 26, 52);
   WaitInd(i_ich, "Ишимоку");     
}

void WaitInd(int hnd, string name, int wait=10){
   if(hnd==INVALID_HANDLE){
      return;
   }
   double Arr[];
   datetime now=TimeLocal();
   Comment("Ждем построения индикатора ",name,"...");
   GetLastError();
   while(CopyBuffer(hnd, 0, 0, 1, Arr)<=0){
      int err=GetLastError();
      if(err!=4806){
         PrintFormat("Ошибка %d при получении данных инликатора %s",err,name);
         Comment("");
         return;
      }
      if(TimeLocal()-now>=wait){
         PrintFormat("Ошибка: индикатор %s не построился за %d секунд",name,wait);
         Comment("");
         return;
      }
   }
   Comment("");
}

int OnCalculate(const int rates_total,
                    const int prev_calculated,
                    const datetime& time[],
                    const double& open[],
                    const double& high[],
                    const double& low[],
                    const double& close[],
                    const long& tick_volume[],
                    const long& volume[],
                    const int& spread[]){
       
       return(rates_total);
}

Le même code, si je l'utilise dans un script, il ne montre aucune erreur, l'indicateur est construit instantanément. Quel peut être le problème ?

 

N'attendez pas dans l'init de l'indicateur pour créer complètement l'indicateur.

Créez l'indicateur et le contrôle de retour et tout l'environnement et l'historique seront préparés plus tard et votre code de recalcul sera appelé.

Raison: