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
Quel est le problème avec le code. Pourquoi le message d'erreur"failed cancel order #0 buy 0.00 at market [Invalid request]" continue-t-il d'apparaître ?
Où se trouve la sélection des positions?
Qu'est-ce que les ordres ont à voir avec les transactions ?
Qu'essayez-vous de faire ? Fermer une position ?
et le nom de la requête order_remove_mql_trade_request est un mauvais rêve.
où se trouve la sélection de la position?
qu'est-ce que les ordres ont à voir avec les transactions ?
Qu'essayez-vous de faire de toute façon ? Fermer une position ?
et le nom order_remove_mql_trade_request est un mauvais rêve.
Oui, je dois clarifier.
Le but du code -- s'il y a une position ouverte, alors annuler tous les ordres limites de la même direction que la position.
par exemple, si une position est ouverte BAY. alors annulez tous les ordres comme la limite d'achat.
J'ai oublié de sélectionner la position =). Eh bien, l'erreur ne vient pas de cela (vérifié).
Quel est le problème avec le code. Pourquoi les erreurs"failed cancel order #0 buy 0.00 at market [Invalid request]" continuent-elles d'apparaître ?
MqlTradeRequest order_remove_mql_trade_request = {0};
order_remove_mql_trade_request.action = TRADE_ACTION_REMOVE;
i = OrdersTotal();
if(i > 0){
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
for(i2 = 0;i2 <= i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
for(i2 = 0;i2 <= i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}
enlève ces signes égaux.
Je l'ai déjà fait, ça ne marche pas.
Ce n'est pas bien de tromper ses aînés.
Ce n'est pas bien de tricher. Je ne fais pas ça.
Je viens de tout revérifier avec ce code :
i = OrdersTotal();
if(i > 0){
PositionSelect(_Symbol);
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
for(i2 = 0;i2 < i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
for(i2 = 0;i2 < i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}
Le résultat est le même. L'erreur mentionnée ci-dessus se produit souvent
le résultat est le même. L'erreur se produit souvent
"souvent" est une phrase vide de sens.
Vous pensez que 2+2 est souvent égal à 4 ?
ne soyez pas paresseux - faites une analyse d'envoi et une analyse de l'erreur retournée.
vérifier ce que vous essayez d'enlever ?
y a-t-il des commandes disponibles au moment de la fermeture ?
vous essayez peut-être de supprimer une commande qui a déjà été supprimée.
Troisièmement, qui vous a appris à fermer les ordres au point de penser que vous pouvez fermer tous les ordres ? Vous pensez qu'après chacun de vos fermetures, le OrdersTotal diminuera de 1. Et vous continuez à battre votre i2++ jusqu'à ce que vous gagniez, jusqu'au i primaire.
Vous ne prenez même pas la peine de vérifier si OrderGetTicket ou OrderSelect renvoie une erreur.
mauvais, très mauvais.
C'est à cause de tels stylos que nos satellites sortent de leur orbite.
"souvent" est une phrase vide de sens.
Vous pensez que 2+2 est souvent égal à 4 ?
ne soyez pas paresseux - faites une analyse des envois et une analyse des erreurs de retour.
vérifier ce que vous essayez de supprimer ?
Y a-t-il des commandes disponibles au moment de la fermeture ?
vous essayez peut-être de supprimer une commande qui a déjà été supprimée.
Troisièmement, qui vous a appris à clôturer les ordres de cette manière ? Vous pensez que vous passez tous les ordres, mais ce n'est pas le cas. Après chacune de vos clôtures, OrdersTotal diminue de 1. Et vous battez toujours votre i2++ jusqu'à ce que vous gagniez, jusqu'au i primaire.
Vous ne prenez même pas la peine de vérifier si OrderGetTicket ou OrderSelect renvoie une erreur.
C'est mauvais, très mauvais.
C'est à cause de tels stylos que nos satellites sortent de leur orbite.
J'étais sûr que ce n'était pas cela, sinon il y aurait eu des erreurs dans le test non seulement avec les bylimits, mais aussi avec les selllimits. Merci d'essayer de m'aider et de me guider.
Salutations messieurs.
Il s'agit du prototype d'une fonction Windows qui émule une frappe :
Le problème est que cette fonction est appelée dans MT4 avec des int au lieu d'octets. Ça ressemble à ça :
Quel est le problème ? Transmet-il au moins 4 octets ? Cela dépend-il du matériel ?Salutations messieurs.
Il s'agit du prototype d'une fonction Windows qui émule une frappe :
Le problème est que cette fonction est appelée dans MT4 avec des int au lieu d'octets. Ça ressemble à ça :
Quel est le problème ? Transmet-il au moins 4 octets ? Cela dépend-il du matériel ?Lors du passage de paramètres à une fonction, le quantum minimum est un entier de 32 bits. C'est-à-dire que, dans votre cas, bVk et bScan seront convertis en type int avant d'être passés dans la fonction
C'est pourquoi les prototypes de fonction donnés ci-dessus ne se contredisent pas entre eux