Fonctions utiles de KimIV - page 38

 
obabuev писал (а) >>
Comment ajouter int b à string Time2 minutes now ou comment faire plus moins pour le rendre aléatoire
void start() {
  int a=MathFloor(MathRand()/32767.0*300);
  int b=-MathFloor(MathRand()/32767.0*300);
  Comment("a=",a," b=",b,"\n",
          "плюс ",TimeToStr(TimeLocal()+a, TIME_SECONDS),"\n",
          "минус ",TimeToStr(TimeLocal()+b, TIME_SECONDS));
}
 

Veuillez nous conseiller sur les méthodes existantes pour limiter le nombre d'ordres :

1) comment lier le nombre d'ordres au solde disponible, de sorte qu'il y ait une dynamique, par exemple, si les fonds disponibles sont inférieurs à la moitié du solde, alors la limite est déclenchée.

2) Comment limiter le nombre d'ordres simultanés à une valeur fixe, par exemple 10.

 
KimIV писал (а) >>
Merci Igor,
Il est très simple et facile à coder, comme tous les professionnels.
Seulement, je n'ai jamais pensé que je serais incapable de l'expliquer avec des mots, et encore moins d'écrire le code.
Ce dont j'ai besoin, c'est que le décalage aléatoire provienne d'un oscillateur, mais de façon aléatoire dans les deux sens.
Par exemple, comme le pointeur qui oscille près de zéro (descend puis remonte).
Et c'est mon zéro, ou la valeur moyenne, qui sera mon temps de réglage.
Comment diviser tout le hasard en deux parties au milieu ?
Est-ce que ça va fonctionner comme ça ?
void start() {
int a=MathFloor(MathRand()/32767.0*300);
if (a > 150) a=-a ;
Comment("a=",a,"\n",
"plus ou moins ",TimeToStr(TimeLocal()+a, TIME_SECONDS) );
}
Aussi, j'essaie de faire cette chose dans un indicateur.
Est-ce que TimeToStr(TimeLocal()+a,TIME_SECONDS) est correct ou est-ce que TimeToStr(Time[i] +a,TIME_SECONDS) ou TimeToStr(iTime(NULL,0,i)+a) ou ? ??? doivent être utilisés ?
>>Merci pour votre aide.
 
obabuev писал (а) >>
J'ai besoin que le décalage aléatoire se produise à partir d'un oscillateur mais dans les deux directions de façon aléatoire.
C'est comme l'aiguille oscillante près du zéro (qui monte et descend).
Et c'est mon zéro, ou la valeur moyenne, qui sera mon temps de réglage.
D'une certaine manière, tout doit être divisé en deux parties par hasard au milieu ou quoi ?

Alors c'est comme ça :

void start() {
  int a=MathFloor(MathRand()/32767.0*300)-150;
  Comment("a=",a,"\n",
          "плюс-минус ",TimeToStr(TimeLocal()+a, TIME_SECONDS));
}
obabuev a écrit (a) >>
Est-ce que TimeToStr(TimeLocal()+a,TIME_SECONDS) est correct ou est-ce que TimeToStr(Time[i] +a,TIME_SECONDS) ou TimeToStr(iTime(NULL,0,i)+a) ou encore ? ???.

Comment puis-je savoir ce qui est bien et ce qui est mal ? Vous seul pouvez le savoir. Je me contenterai d'expliquer quel code signifie quoi, et vous déciderez vous-même de ce dont vous avez besoin et de ce qui vous convient.

TimeToStr(TimeLocal()+a,TIME_SECONDS)

Vous ajoutez une seconde à l'heure locale en secondes et le résultat est converti en chaîne de caractères.

TimeToStr(Time[i] +a,TIME_SECONDS)

Nous ajoutons une seconde à l'heure locale de l'ordinateur en secondes et le résultat est converti en chaîne de caractères.

TimeToStr(iTime(NULL,0,i)+a)
Une seconde est ajoutée au temps d'ouverture de la i-ème barre sur le graphique actuel en secondes et le résultat est converti en ligne.
 
AlexDub писал (а) >>

Veuillez nous conseiller sur les méthodes existantes pour limiter le nombre d'ordres :

1) comment lier le nombre d'ordres au solde disponible, de sorte qu'il y ait une dynamique, par exemple, si les fonds disponibles sont inférieurs à la moitié du solde, alors la limite est déclenchée.

2) Comment limiter le nombre de commandes à une quantité fixe, par exemple 10

if (AccountFreeMargin()<AccountBalance()/2.0) {
  // срабатывает ограничение
}
AlexDub a écrit (a) >>
Pouvez-vous me dire quelles méthodes utiliser pour limiter le nombre d'ordres :
2) comment limiter le nombre d'ordres simultanés à une valeur fixe, par exemple 10
if (OrdersTotal()>=10) {
  // срабатывает ограничение
}
 
KimIV писал (а) >>

>> Alors c'est comme ça :

>> Merci,
>> un monument à votre gloire.

 
obabuev писал (а) >>

Vous avez besoin d'un monument.

Pas encore :))

 
Puis un buste en bronze à la maison... ;)
 

Comme tout le monde est gentil ! Vous pourriez aussi bien vous tirer une balle.

 

Au moins, le buste est une bonne chose...

Ils auraient dû le mettre en avant pour deux héros de l'URSS de leur vivant.

Aux frais de l'État... :)))