Uniquement "Fonctionnalités utiles de KimIV". - page 10

 
borilunad:

Il n'est pas difficile d'augmenter d'une unité !

Qu'est-ce que tu veux dire ?
 

Fonction ModifyOrder()

Voici le début du code :

void ModifyOrder(double pp=-1, double sl=0, double tp=0, color cl=CLR_NONE) {
  bool   fm;
  double op, pa, pb, os, ot;
  int    dg=MarketInfo(OrderSymbol(), MODE_DIGITS), er, it;
 
  if (pp<=0) pp=OrderOpenPrice();
  if (sl<0 ) sl=OrderStopLoss();
  if (tp<0 ) tp=OrderTakeProfit();

Initialement, les paramètres formels de la fonction ressemblent à ceci :

pp=-1, но sl=0 и tp=0

Si nous devions écrire de manière claire et systématique, il serait plus facile pour la commodité d'attribuer -1 à chacun des paramètres formels, c'est-à-dire que ce serait comme ceci :

pp=-1, sl=0 tp=0

La question se pose : pourquoi embrouiller autant le code en comparant l'un des paramètres formels à zéro, et l'autre à -1? Nous aurions aussi pu inscrire -73...

 
hoz:

Fonction ModifyOrder()

Voici le début du code :

Initialement, les paramètres formels de la fonction ressemblent à ceci :

Si nous devions écrire de manière claire et systématique, il serait plus facile pour la commodité d'attribuer -1 à chacun des paramètres formels, c'est-à-dire que ce serait comme ceci :

La question se pose : pourquoi embrouiller autant le code en comparant l'un des paramètres formels à zéro, et l'autre à -1? On aurait pu aussi entrer -73...


Demandez à l'auteur en personne, et ajoutez un pour 5 chiffres après la virgule !
 

Vous ne pouvez pas (il n'y a aucun intérêt) modifier un ordre avec un prix ouvert == 0, mais vous devriez être en mesure de définir un stoploss et un takeout de zéro, donc si vous vous y mettez (pensez), tout se met en place.

ZS. oui, les fonctions ont été écrites à l'époque où les quatre chiffres étaient en place, mais cela n'enlève rien à leur pertinence.

 
borilunad:

Demandez à l'auteur en personne, et ajoutez un 1 pour 5 chiffres après la virgule !


Avec le nombre de chiffres après la virgule, il est plus facile de le faire :

if(Digits==3 || Digits==5) pt=10*Point;
 
FAQ:

Vous ne pouvez pas (il n'y a aucun intérêt) modifier un ordre avec un prix ouvert == 0, mais vous devriez être en mesure de définir un stoploss et une prise de zéro, donc si vous vous y mettez (pensez), tout se met en place.

ZS. oui, les fonctions ont été écrites à l'époque où les quatre chiffres étaient en place, mais cela n'enlève rien à leur pertinence.


Vous devriez pouvoir modifier le stoploss et le takeprofit à zéro, mais le stoploss ou le takeprofit ne devrait pas être inférieur à 0, ni le prix d'ouverture, donc -1 et 0 est juste un paramètre formel, et vous pouvez l'utiliser sous n'importe quel entier, d'après ce que je comprends.
 
jurist70:

Chéri, où dans la ligne.


Pour toutes les paires, à l'exception des paires de yens, le point est la variation du 4ème chiffre des cotations. Pour les paires de yens, elle se trouve dans le deuxième chiffre. Avec l'introduction de la précision des cotations à 0,1 point, des cotations à 5 et 3 chiffres sont apparues.

 
hoz:

Fonction ModifyOrder()

Voici le début du code :

Initialement, les paramètres formels de la fonction ressemblent à ceci :

Si nous devions écrire de manière claire et systématique, il serait plus facile pour la commodité d'attribuer -1 à chacun des paramètres formels, c'est-à-dire que ce serait comme ceci :

La question se pose : pourquoi embrouiller autant le code en comparant l'un des paramètres formels à zéro, et l'autre à -1? Nous aurions également pu inscrire -73.

pp= -1 est un prix d'ouverture quelconque

if (pp<=0) pp=OrderOpenPrice() ; il s'agit d'un prix d'ouverture spécifique

 
pako:

pp= -1 est un prix ouvert quelconque

si (pp<=0) pp=OrderOpenPrice() ; il s'agit du prix d'ouverture spécifié


Vous auriez dû lire la question avant d'y répondre. J'ai demandé pourquoi les paramètres formels ont des valeurs différentes par défaut. Je pense que le point est que si nous appelons la fonction sans déclarer sl et tp, ils seront par défaut à 0, c'est-à-dire qu'ils ne changeront pas.

Je ne vois pas d'autre moyen de le faire.

 
hoz:


Vous auriez dû lire la question avant d'y répondre. Je demandais pourquoi les paramètres formels ont des valeurs par défaut différentes. Je pense que le point est que si nous appelons la fonction sans déclarer sl et tp, ils seront par défaut à 0, c'est-à-dire qu'ils ne changeront pas.

Je ne vois pas d'autre moyen de le faire.


Dans ce cas == 0, le stop et la prise seront effacés. En fait, je n'arrive pas à comprendre le pourquoi de toute cette agitation ? Il ne s'agit pas de fonctions standard du langage, mais de wrappers écrits par un programmeur. Si vous n'en êtes pas satisfait, alors écrivez les vôtres, ou modifiez-les comme bon vous semble, et utilisez-les.