Erreurs, bugs, questions - page 39

 
Je l'ai reproduit sur une autre feuille en le copiant, je vais faire une demande au service d'assistance.
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
alexvd:

Vous souvenez-vous exactement de l'endroit où DebugBreak() a été défini?

Pas encore de moyen de le reproduire.

Fait une demande dans servicedesk #18435

J'ai défini DebugBreaks avant toutes les boucles.

 
Urain:

Fait une demande à servicedesk #18435

Zy DebugBreaks mis en place avant tous les cycles.

Oui, merci.

Je l'ai déjà fait à nouveau.

 
alexvd:

Oui, merci.

Je l'ai déjà fait à nouveau.

J'ai ajouté deux autres versions compilées plus tard, une qui fonctionne et une autre qui ne fonctionne pas, pour une raison quelconque, leur poids diffère de presque deux fois.
 
ddd06:

Je voudrais connaître le sort de la requête#18261 pourun appel d'indicateur depuis un EA (la valeur ne correspond pas à l'indicateur).

Ce serait bien s'ils répondaient d'une manière ou d'une autre...

Vérifiez à nouveau votre bureau de service, s'il vous plaît, le problème a été résolu.
 

J'ai une question sur le MACD Sample.

J'ai configuré un Expert Advisor avec SL 50 et TP200 dans la démo Alpari.

J'ai ouvert une position sur GBPUSD et après un certain temps, l'Expert Advisor a modifié la position et a entré dans le journal les données suivantes

> 2010.07.08 20:01:46 Trades '3037120' : échec de la modification vendre 0.10 GBPUSD sl : 1.51740, tp : 1.49868 -> sl : 1.51740, tp : 1.49868 [Arrêts non valides].

La question est de savoir pourquoi SL est devenu handicapé. La position semble avoir été modifiée (ou du moins elle a été déplacée vers la BU avant)...

En même temps, le testeur de stratégie n'a pas juré du tout...

PS

Le fichier avec les paramètres de l'indicateur est joint...

 

Il existe un tableau bidimensionnel maVal[a][b] . Comment copier les valeurs de muVal dans [b] car je dois parcourir le tableau par [a] et comparer les valeurs de [b].

CopyBuffer(maHandle,0,0,3,maVal) ; Ne convient pas. C'est un code encombrant.

   bool Buy_Condition_1=((ma1Val[2]<ma1Val[1]) && (ma1Val[1]<ma1Val[0])||
                         (ma2Val[2]<ma2Val[1]) && (ma2Val[1]<ma2Val[0])||
                         (ma3Val[2]<ma3Val[1]) && (ma3Val[1]<ma3Val[0])||
                         (ma4Val[2]<ma4Val[1]) && (ma4Val[1]<ma4Val[0])||
                         (ma5Val[2]<ma5Val[1]) && (ma5Val[1]<ma5Val[0])); // MA растет
 
Interesting:

sl : 1.51740, tp : 1.49868 -> sl : 1.51740, tp : 1.49868 [Arrêts invalides]

La question est de savoir pourquoi SL est devenu handicapé. Et la position semble avoir été modifiée (du moins, elle a été déplacée vers la BU auparavant)...

Mon journal fronçait aussi les sourcils, si la modification de l'ordre ne changeait ni SL ni TP.
 

Nous écrivons un script simple :

void OnStart(){
  Alert("-----------------------------------");
  Alert("Period() = ",Period()," минут");
  Alert("------------ ",Symbol()," ------------");
}

Nous le lançons de manière séquentielle sur différentes échelles de temps du même instrument de trading, en commençant par M1 et en allant vers le haut. Résultat : sur la période de M1 à M30, la période est correcte :

Mais sur l'échelle de temps H1, un nombre absolument fantastique est lancé.

La chose la plus intéressante est que la trame horaire H2 (ainsi que la trame horaire suivante) n'est pas très éloignée de la trame H1.


Sur H1 la période = 16386 , sur H2 = 16387, sur H3 = 16388 et ainsi de suite - les numéros diffèrent par le dernier chiffre.

Je ne suis pas intéressé par la méthode permettant de contourner ce bogue, mais par la correction du bogue lui-même. Je veux qu'il soit retiré du tout.

 
drknn:

Nous écrivons un script simple :

Nous le lançons de manière séquentielle sur différentes échelles de temps du même instrument de trading, en commençant par M1 et en allant vers le haut. Résultat : sur la période de M1 à M30, la période est correcte :

Mais sur la période H1, un chiffre absolument fantastique est lancé.

Le plus intéressant, c'est que l'image H2 (ainsi que les images horaires suivantes) n'est pas très éloignée de l'image H1.


Sur H1 la période = 16386 , sur H2 = 16387, sur H3 = 16388 et ainsi de suite - les numéros diffèrent par le dernier chiffre.

Je ne suis pas intéressé par la méthode permettant de contourner ce bogue, mais par la correction du bogue lui-même. De sorte qu'il n'était pas là du tout.

> Je ne suis pas intéressé par un moyen de contourner ce bogue, mais par la correction du bogue lui-même. Je ne veux pas du tout qu'il soit là.

Ne pensez pas que je sois impoli ou arrogant, mais je vous signale que ce bug que vous venez de tuer...

Sur l'essence de la question (suggestions) :

Ce n'est pas MQL4, et Period() ne représente pas le nombre de secondes/minutes en TF.

Pour obtenir le nombre de secondes dans une période, vous devez utiliser la fonction PeriodSeconds.


Et si vous essayez d'exprimer Période comme un nombre, alors vous obtiendrez la valeur numérique correspondant à l'identifiant de la période dans l'énumération ENUM_TIMEFRAMES.


PS

Lorsque je dois traduire Period au format MQL4, j'utilise cette fonction:

//Fumction PeriodToMinute
int PeriodToMinute(ENUM_TIMEFRAMES Value)
//Возвращает число секунд в периоде
{
//----------------------------------------------------------------------------//
//Служебные переменные
int Result;
//----------------------------------------------------------------------------//
Result = PeriodSeconds(Value)/60;
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}

Et pour éviter les questions inutiles sur la "périodisation", voici deux autres fonctions : MinuteToPeriod et PeriodToStr.

//Fumction MinuteToPeriod
ENUM_TIMEFRAMES MinuteToPeriod(int Value)
//Преобразовывает число сикунд в период, возвращаемый как ENUM_TIMEFRAMES
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
ENUM_TIMEFRAMES Result;
//----------------------------------------------------------------------------//
  switch(Value)
  {
  //Перирд текущещего графика
  case   0: return(PERIOD_CURRENT); break;
  //Минуты
  case   1: return(PERIOD_M1);  break;   //1 минута
  case   2: return(PERIOD_M2);  break;   //2 минуты
  case   3: return(PERIOD_M3);  break;   //3 минуты
  case   4: return(PERIOD_M4);  break;   //4 минуты
  case   5: return(PERIOD_M5);  break;   //5 минуты
  case   6: return(PERIOD_M6);  break;   //6 минуты
  case  10: return(PERIOD_M10); break;   //10 минуты
  case  12: return(PERIOD_M12); break;   //12 минуты
  case  15: return(PERIOD_M15); break;   //15 минуты
  case  20: return(PERIOD_M20); break;   //20 минуты
  case  30: return(PERIOD_M30); break;   //30 минуты
  //Часы
  case  60: return(PERIOD_H1); break;    //60 минут  - 1 час
  case 120: return(PERIOD_H2); break;    //120 минут - 2 часа  
  case 180: return(PERIOD_H3); break;    //180 минут - 3 часа
  case 240: return(PERIOD_H4); break;    //240 минут - 4 часа
  case 360: return(PERIOD_H6); break;    //360 минут - 6 часов
  case 480: return(PERIOD_H8); break;    //480 минут - 8 часов
  case 720: return(PERIOD_H12); break;   //720 минут - 12 часов
  //Старшие ТФ
  case 1440: return(PERIOD_D1); break;   //1 день
  case 10080: return(PERIOD_W1); break;  //1 неделя 
  case 43200: return(PERIOD_MN1); break; //1 месяц 
  //Default
  default: return(PERIOD_CURRENT);
  }
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}
//Function PeriodToStr
string PeriodToStr(ENUM_TIMEFRAMES Value)
//Функция возвращает тексовое представление ТФ (периода)
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
string Result; //Возвращаемое значение
//----------------------------------------------------------------------------//

  switch(Value)
  {
  //Минуты
  case PERIOD_M1:  Result = "M1";  break; //1 минута
  case PERIOD_M2:  Result = "M2";  break; //2 минуты
  case PERIOD_M3:  Result = "M3";  break; //3 минуты  
  case PERIOD_M4:  Result = "M4";  break; //4 минуты    
  case PERIOD_M5:  Result = "M5";  break; //5 минут
  case PERIOD_M6:  Result = "M6";  break; //6 минут
  case PERIOD_M10: Result = "M10"; break; //10 минут
  case PERIOD_M12: Result = "M12"; break; //12 минут
  case PERIOD_M15: Result = "M15"; break; //15 минут
  case PERIOD_M20: Result = "M20"; break; //20 минут
  case PERIOD_M30: Result = "M30"; break; //30 минут
  //Часы
  case PERIOD_H1:  Result = "H1";  break; //60 минут   - 1 час
  case PERIOD_H2:  Result = "H2";  break; //120 минут  - 2 часа
  case PERIOD_H3:  Result = "H3";  break; //180 минут  - 3 часа
  case PERIOD_H4:  Result = "H4";  break; //240 минут  - 4 часа
  case PERIOD_H6:  Result = "H6";  break; //360 минут  - 6 часов  
  case PERIOD_H8:  Result = "H8";  break; //480 минут  - 8 часов
  case PERIOD_H12: Result = "H12"; break; //720 минут  - 12 часов
  //Старшие ТФ
  case PERIOD_D1:  Result = "Day";   break; //День
  case PERIOD_W1:  Result = "Week";  break; //Неделя
  case PERIOD_MN1: Result = "Month"; break; //Месяц
  //Unknown
  default: Result = "Unknown";
  break;
  }
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}
Raison: