Bonjour, je suis en train d'écrire un indicateur en MQL5, mais quoi que j'écrive comme nom de chaîne ObejectDelete retourne vrai ! même sur un graphique vide sans objets !
int ObjCount = ObjectsTotal(ChartID(),/*0=main subwindow*/0,/*all objectTypes*/-1) ;
bool deleteResult=ObjectDelete(ChartID(), "objet non existant") ;
Print(__LINE__,"-",deleteResult," | ObjCount=",ObjCount) ;
voici le résultat :
2016.12.11 13:46:38.385 Far-Test (EURUSD,H1) 37-true | ObjCount=0
ne devrait-il pas retourner false ?
voici le résultat du même code dans mt4 :
2016.12.11 14:00:10.141 Far-TestObjDelete EURUSD_e,H1 : 38-false | ObjCount=0
donc mt5 fonctionne mal !
voici le résultat du même code dans mt4 :
2016.12.11 14:00:10.141 Far-TestObjDelete EURUSD_e,H1 : 38-false | ObjCount=0
donc mt5 fonctionne mal !
Quelle build de MT5 utilisez-vous ? La build actuellement disponible est 1495 (09 Dec 2016) !
oui , le mt5 est build 1495 , 2016.dec.09 , et metaeditor est 1495 aussi.
Veuillez fournir un petit script de test/code indicateur complet que nous pouvons compiler et tester de notre côté pour voir s'il produit le même effet.
Si cela produit le même effet de notre côté, alors vous pouvez le signaler au Service Desk comme un possible bug !
Joignez-le comme un fichier complet, dans votre prochain post !
Veuillez fournir un petit script de test/code indicateur complet que nous pouvons compiler et tester de notre côté pour voir s'il produit le même effet.
S'il produit le même effet de notre côté, alors vous pouvez le signaler au Service Desk comme un possible bug !
Attachez-le comme un fichier complet, dans votre prochain post !
Voici le même code dans mt5 et mt4. Les résultats sont différents mais le fichier d'aide dit la même chose.
ObjectDelete
Cette fonction supprime l'objet avec le nom spécifié du graphique spécifié.
boolObjectDelete( |
Paramètres
chart_id
[in] Identifiant du graphique. 0 signifie le graphique actuel.
name
[in] Nom de l'objet à supprimer.
Valeur de retour
Renvoie true si la suppression a réussi, sinon renvoie false.
La sortie était la suivante :#property strict
#property indicator_chart_window
int OnInit()
{
return(INIT_SUCCEEDED);
}
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[])
{
static bool boolFirstTime = true;
if( boolFirstTime )
{
boolFirstTime = false;
bool boolDeleteResult = ObjectDelete( 0, "Non-existing Object" );
Print("Result of Deleteing non-existing Chart Object: ", boolDeleteResult );
}
return(rates_total);
}
Donc, cela ressemble effectivement à un bug qui doit être signalé au Service Desk.2016.12.11 11:12:29.999 TestObjectDelete (EURUSD.m,H4) Result of Deleteing non-existing Chart Object: true
Pour m'assurer qu'il ne s'agissait pas d'un bogue dans le code source de l'OP, j'ai recréé mon propre code et obtenu le même effet avec le code Indicator suivant, et j'ai effectivement obtenu le même résultat que l'OP :
La sortie était la suivante :#property strict
#property indicator_chart_window
int OnInit()
{
return(INIT_SUCCEEDED);
}
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[])
{
static bool boolFirstTime = true;
if( boolFirstTime )
{
boolFirstTime = false;
bool boolDeleteResult = ObjectDelete( 0, "Non-existing Object" );
Print("Result of Deleteing non-existing Chart Object: ", boolDeleteResult );
}
return(rates_total);
}
Donc, cela ressemble effectivement à un bug qui doit être signalé au Service Desk.2016.12.11 11:12:29.999 TestObjectDelete (EURUSD.m,H4) Result of Deleteing non-existing Chart Object: true
Merci pour votre temps :)
Allez-vous le signaler au Service Desk ?
Oui, je vais l'écrire. J'attendais votre confirmation. Merci.
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Bonjour, je suis en train d'écrire un indicateur en MQL5, mais quoi que j'écrive comme nom de chaîne ObejectDelete retourne vrai ! même sur un graphique vide sans objets !
int ObjCount = ObjectsTotal(ChartID(),/*0=main subwindow*/0,/*all objectTypes*/-1) ;
bool deleteResult=ObjectDelete(ChartID(), "objet non existant") ;
Print(__LINE__,"-",deleteResult," | ObjCount=",ObjCount) ;
voici le résultat :
2016.12.11 13:46:38.385 Far-Test (EURUSD,H1) 37-true | ObjCount=0
ne devrait-il pas retourner false ?