Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
{
//---
ObjectCreate("SimultaneousReleaseIndex1",OBJ_LABEL,0,0,0);
ObjectSetString(0,"SimultaneousReleaseIndex1",OBJPROP_TEXT,"Four");
ObjectCreate("SimultaneousReleaseIndex2",OBJ_LABEL,0,0,0);
ObjectSetString(0,"SimultaneousReleaseIndex2",OBJPROP_TEXT,"44");
ObjectCreate("SimultaneousReleaseIndex3",OBJ_LABEL,0,0,0);
ObjectSetString(0,"SimultaneousReleaseIndex3",OBJPROP_TEXT,"Forty4");
ObjectCreate("SimultaneousReleaseIndex4",OBJ_LABEL,0,0,0);
ObjectSetString(0,"SimultaneousReleaseIndex4",OBJPROP_TEXT,".1234567890");
if(IsNumeric(ObjectGetString(0,"SimultaneousReleaseIndex1",OBJPROP_TEXT)))
Print("text1 is numeric");
if(IsNumeric(ObjectGetString(0,"SimultaneousReleaseIndex2",OBJPROP_TEXT)))
Print("text2 is numeric");
if(IsNumeric(ObjectGetString(0,"SimultaneousReleaseIndex3",OBJPROP_TEXT)))
Print("text3 is numeric");
if(IsNumeric(ObjectGetString(0,"SimultaneousReleaseIndex4",OBJPROP_TEXT)))
Print("text4 is numeric");
}
//---
bool IsNumeric(string text)
{
int length=StringLen(text);
for(int i=0;i<length;i++)
{
int char1=StringGetChar(text,i);
if((char1>47 && char1<58) || char1==46)
continue;
else
return(false);
}
return(true);
}
//+------------------------------------------------------------------+
Oh, regardez-moi. J'aurais dû le savoir. Merci @whroeder1.
Une autre question est de savoir comment saisir les nombres négatifs. Le code doit saisir le signe de négation (-) uniquement au début de la saisie.
De plus, afin de perfectionner le code. Il doit accepter le symbole de négation (-) même au milieu de nombres tels que (45-20) et le traiter comme une soustraction et l'évaluer, puis utiliser le code
L'idée est de faire en sorte que la propriété OBJPROP_TEXT de OBT_EDIT accepte les données du calendrier économique et les traite comme les nombres qu'elles sont. C'est pourquoi une fonction intégrée de IsNumeric est très importante pour éviter d'écrire un code inutilement volumineux pour cette fonction.
Bien sûr, un point (.) devrait être numérique puisque (.) est considéré comme la même chose qu'un point et un zéro (.0) qui est en fait zéro (0). Maintenant, j'ai essayé d'augmenter le nombre de points (.....) et il le reconnaît toujours comme numérique. Nous avons besoin du code pour le point (.) afin d'éliminer les points supplémentaires (....) une fois que le premier point a été cité.
Une autre question est de savoir comment saisir des nombres négatifs. Le code doit saisir le signe de négation (-) uniquement au début de la saisie.
De plus, afin de perfectionner le code. Il doit accepter le symbole de négation (-) même au milieu de nombres tels que (45-20) et le traiter comme une soustraction et l'évaluer, puis utiliser le code
L'idée est de faire en sorte que la propriété OBJPROP_TEXT de OBT_EDIT accepte les données du calendrier économique et les traite comme les nombres qu'elles sont. C'est pourquoi une fonction intégrée de IsNumeric est très importante pour éviter d'écrire un code inutilement volumineux pour cette fonction.
macpee:
Of course a period (.) should be numeric since (.) is regarded as the same thing with a period and zero (.0) which is in fact zero (0). Now I tried increasing the number of period (.....) and it is still recognizing it as numeric. We need the code for period (.) so as to eliminate additional period (....) once the first period has been cited in
Une autre question est de savoir comment saisir les nombres négatifs. Le code doit capturer le signe de négation (-) uniquement au début de la saisie.
Y a-t-il un écho ici ?
Oui, ce genre de chose.
Vous devez faire attention à :
________________________________
Au fait, je ne trouve pas la liste du code (ASCII, je présume).
Allez-y, essayez. Je sais que ça vous démange d'avoir l'occasion d'affiner vos compétences en matière de recherche.
________________________________
L'idée générale est de faire en sorte que la propriété OBJPROP_TEXT de OBT_EDIT accepte les données du calendrier économique et les traite comme les chiffres qu'elles sont. C'est pourquoi une fonction intégrée de IsNumeric est très importante pour éviter d'écrire un code inutilement volumineux pour cette fonction.
J'ai peut-être mal compris votre intention, mais si vous voulez que l'utilisateur saisisse des dates dans une boîte d'édition et les interprète ensuite comme des dates-temps (peut-être pas si vous vous intéressez aux nombres négatifs), je ne suis pas convaincu que ce soit la meilleure approche pour un certain nombre de raisons.
Y a-t-il un écho ici ?
________________________________
Allez-y, essayez. Je sais que ça te démange d'avoir une chance d'affiner tes compétences en recherche.
________________________________
J'ai peut-être mal compris votre intention, mais si vous voulez que l'utilisateur saisisse des dates dans une zone de texte et les interprète ensuite comme des dates (peut-être pas si vous vous intéressez aux nombres négatifs), je ne suis pas convaincu que ce soit la meilleure approche pour un certain nombre de raisons.
En fait, les données économiques en question ne comportent pas de dates, mais seulement des données "réelles", "prévues", "précédentes" et éventuellement "révisées". Bien entendu, nous n'avons pas non plus l'intention de saisir des symboles tels que B(pour milliard), %(pour pourcentage), etc. Juste des nombres réels purs sans espaces. L'idée est de calculer ce que j'appelle "l'indice de diffusion simultanée". Il s'agit de combiner un ensemble de données économiques publiées simultanément et de les considérer comme une seule donnée. Je combine tous les "réels" en un seul "réel", toutes les "prévisions" en une seule "prévision", etc., afin de voir la relation entre le "réel" combiné et la "prévision" combinée, etc.
Donc :
Par exemple
{
StringReplace(text," ",NULL);
StringReplace(text,",",NULL);
int point_cnt = 0;
for(int i=StringLen(text)-1; i>=0; i--)
{
int this_char = StringGetChar(text,i);
if(this_char == '.')
{
point_cnt++;
if(point_cnt>1) return(false);
if(StringLen(text)<2) return(false);
}
else if(this_char == '+' || this_char == '-')
{
if(i>0) return(false);
}
else if(this_char < '0' || this_char > '9') return(false);
}
return(true);
}
Si le résultat est vrai, vous pouvez convertir la chaîne en un nombre.
Donc :
Par exemple
{
StringReplace(text," ",NULL);
StringReplace(text,",",NULL);
int point_cnt = 0;
for(int i=StringLen(text)-1; i>=0; i--)
{
int this_char = StringGetChar(text,i);
if(this_char == '.')
{
point_cnt++;
if(point_cnt>1) return(false);
if(StringLen(text)<2) return(false);
}
else if(this_char == '+' || this_char == '-')
{
if(i>0) return(false);
}
else if(this_char < '0' || this_char > '9') return(false);
}
return(true);
}
Si le résultat est vrai, vous pouvez convertir la chaîne en un nombre.