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
MQL4 :
MODE_LOTSTEP
24
Étape pour le changement de lot
MQL5 :
SYMBOL_VOLUME_STEP
Pas de changement de volume minimal pour l'exécution des transactions
double
Cela vous informe sur le plus petit pas vers le haut ou vers le bas de la taille du lot. Si c'est 0,01, vos lots doivent correspondre à 0,01, 0,02, 0,03, 0,04, etc.
Si c'est 0,1, alors votre changement de taille de lot devra correspondre à 0,1, puis 0,2, puis 0,3, etc.
Je ne comprends donc pas ce que vous dites :
{
lotstep=lotstep*100;
Print("lot step: ",lotstep);
}
Vous voulez peut-être parler d'un pas de lot différent ?
Normalement, vous ne modifiez pas la valeur car elle est fixe pour chaque symbole.
if(sparam==lotbuttonplus)
{
if(lotsize>=(lotstep*100))
{
lotstep=lotstep*100;
Print("lot step: ",lotstep);
}
Les choses peuvent devenir confuses si vous changez la valeur d'une variable au nom intuitif. Je suggère que lottep soit toujours lottep, rien d'autre.
Que diriez-vous de quelque chose comme ceci ?
lotmaxdivide=lotmax/lotmax *(lotvalue*10);
lotsize=fmin(lotmaxdivide,lotsize+(( ctrlfalse) ? increment*10 : increment));
Marco vd Heijden:
Donc je ne comprends pas votre :
{
lotstep=lotstep*100;
Print("lot step: ",lotstep);
}
Vous voulez peut-être parler d'un pas de lot différent ?
Normalement, vous ne devriez pas changer la valeur car elle est fixe pour chaque symbole.
Oui ! Je veux dire un pas de lot différent, donc quand la taille du lot atteint la taille de 1,00 pour EURUSD. J'ai alors besoin d'augmenter la taille du lot de 1,00. Avant que la taille du lot n'atteigne 1.00 - la taille du lot augmente de 0.01, 0.02 etc. ( ce que je veux ) - mais après que la taille du lot ait atteint 1.00 - alors la taille du lot augmente de 1.00, 2.00, 3.00, etc.
C'est ce que je veux faire dans ce sous-thème.
Merci beaucoup plus.
Les choses peuvent devenir confuses si vous changez la valeur d'une variable au nom intuitif. Je suggère que lottep soit toujours lottep, rien d'autre.
Que diriez-vous de quelque chose comme ceci ?
lotmaxdivide=lotmax/lotmax *(lotvalue*10);
lotsize=fmin(lotmaxdivide,lotsize+(( ctrlfalse) ? increment*10 : increment));
( Je n'ai pas changé - ... ? ? lottep : lottep*100 - ... ? lottep : lottep*10 )
Ouais ! Dans mon code original les choses sont confuses.
Après votre grande aide, j'ai résolu mon problème. Merci beaucoup.
J'aimerais aussi que la taille du lot augmente comme ceci.
Donc la taille du lot augmente comme ceci 0.99, 1.00, 1.01, 1.11.
Mais j'ai besoin de 0,99, 1,00, 1,10, 1,20, etc.
Merci d'avance.
Je pense que 0,99, 1,00, 1,01, 1,02. serait la meilleure idée.
S'en tenir au plus petit pas disponible, je suppose.
Pourquoi voulez-vous faire ces ULTRA GRANDS pas ?
Avez-vous essayé ?
S'il vous plaît, essayez.Je pense que 0.99, 1.00, 1.01, 1.02. serait la meilleure idée.
S'il vous plaît, essayez.S'en tenir au plus petit pas disponible, je suppose.
Pourquoi voulez-vous prendre ces ULTRA GRANDS pas ?
Vous avez déjà essayé ?
J'ai déjà essayé, je pense que si j'ai besoin d'atteindre la taille de lot 5.00, je devrais cliquer 40 fois sur le bouton lot plus ( + ctrl ).
Wow et pourquoi cinq ?
Vous pouvez utiliser + et - à la place de *.
Mais il y a une ligne dans mon robot qui le sauve de la destruction totale et c'est celle-ci :
Mais il y a une ligne dans mon robot qui le sauve de la destruction totale et c'est celle-ci :
C'est tout à fait vrai, et bien sûr, je respecte ce cadre.
Mais c'est juste un problème - je veux dire que je peux l'ajuster à tout moment.
Peut-être que j'ai besoin d'un peu d'expérience sur cette taille de lot.
Je pense que ce sous-thème peut être clos pour le moment.
Merci @Marco vd Heijden et @honest_knave.
#Lot Step - Fermé
#Lot Size Max - Open
@Marco vd Heijden- merci beaucoup plus pour votre dernier commentaire, qui est j'ai inspiré pour écrire cette partie de code pour mes EA. ( Je viens d'arrêter d'écrire d'autres fonctions - que j'essaie d'écrire celui-ci avant les autres )
Donc, comme d'habitude, j'essaie de tester quelque chose pour la taille de lot maximale.
Lorsque la taille du lot est supérieure à la taille maximale du lot, la fonction d'impression ne me permet pas d'accéder au mode de négociation.
Après avoir résolu ce problème, j'ai besoin de mettre cette fonction sur les boutons Vendre et Acheter.
Q : Comment puis-je faire en sorte que la fonction d'impression m'informe du mode de négociation ? ( - la taille du lot est supérieure à la taille maximale du lot ou inférieure à celle-ci ).
Q : Cette méthode est-elle utile pour la taille de lot maximale ?
Merci d'avance.
{
string trademode;
ENUM_ACCOUNT_TRADE_MODE accounttype=(ENUM_ACCOUNT_TRADE_MODE) AccountInfoInteger(ACCOUNT_TRADE_MODE);
if(accounttype==ACCOUNT_TRADE_MODE_DEMO)
{
switch(accounttype)
{
case ACCOUNT_TRADE_MODE_DEMO:
if( lotsize > ( lotstep * lotsizemax ) ) return;
trademode="demo";
break;
case ACCOUNT_TRADE_MODE_CONTEST:
trademode="contest";
break;
default:
trademode="live";
break;
}
}
Print("Trade Mode: ",trademode);
}
Non que pour vérifier si c'est un compte de démonstration ou un compte réel, le concours est rarement utilisé.
Le lot maximum peut être très facile.
// calculate lotsize here
//---
// check if lotsize is not too high
if(lotsize>lotsize_max)
{
lotsize=losize_max;
}