aide à la codification de ordersend()...

 

Bonjour à tous,

Vraiment étrange, mais quand j'exécute le code suivant, il ne fait rien. GetLastError() renvoie 130.

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green)


Mais si on prend le même code et qu'on enlève les informations de stop et de cible, les ordres sortent très bien.

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"My order #2",16384,0,Green);


J'utilise un modèle expert vide et j'ai juste ces deux lignes de code dans la fonction de démarrage.

Je ne suis pas sûr de la cause de ce problème...


Merci !

 
mugged:

Bonjour à tous,

Vraiment étrange, mais quand j'exécute le code suivant, il ne fait rien. GetLastError() renvoie 130.


Mais si on prend le même code et qu'on enlève les informations de stop et de cible, les ordres sortent très bien.


J'utilise un modèle expert vide et j'ai juste ces deux lignes de code dans la fonction de démarrage.

Je ne suis pas sûr de ce qui en est la cause...


Merci !

Quel genre de courtier ?

symbole de point fractionnel ?

 
diostar:

Quel type de courtier ?

symbole de points fractionnaires ?


J'utilise un mini-compte IBFX.


Je l'utilise sur Eur/Usd

 
De plus, lorsque j'exécute le code dans le testeur de stratégie, il fonctionne parfaitement... mais lorsque je l'exécute dans la vie réelle, j'ai des problèmes.
 

Vous avez mal calculé vos SL et TP

Si c'est un achat :

SL = Bid - StopLoss* Point

TP = Bid + TakeProfit* Point

S'il s'agit d'une vente :

SL = Ask + StopLoss* Point ;

TP = Demande - Point TakeProfit* ;

En dehors de cela, avec certains courtiers, vous devez faire l'OrderSend() sans les niveaux SL et TP, puis faire l'OrderModify() et entrer les niveaux TP et SL.

 
mugged:

J'utilise un mini compte IBFX.


Je l'exécute sur Eur/Usd

Ok.... Désolé de ne pas être plus précis.

Essayez ceci :

(1)à la fin de l'ordre : sl=tp=0. puis modifier l'ordre sl=tp.

(2) eur/usd : quels chiffres ? 4 ou 5 ?

 
SDC:

Vous avez mal calculé vos SL et TP

Si c'est un achat :

SL = Bid - StopLoss* Point

TP = Bid + TakeProfit* Point

S'il s'agit d'une vente :

SL = Ask + StopLoss* Point ;

TP = Ask - TakeProfit* Point ;


Hey Bud, j'ai essayé d'échanger le "Ask" que j'ai utilisé pour définir mon SL et TP avec "Bid" comme tu l'as suggéré mais toujours pas de chance.
 

OK, c'est probablement parce que vous devez faire OrderSend() puis OrderModify().

 
diostar:

Ok.... Désolé de ne pas être plus précis.

Essayez ceci :

(1)à la fin de l'ordre : sl=tp=0. puis ordremodifier le sl=tp.

(2) eur/usd : quels chiffres ? 4 ou 5 ?



1) Oui, cette méthode fonctionne ! Mais y a-t-il un moyen de contourner ce problème ? Je déteste l'idée du pire des cas où l'ordre initial est passé mais la modification ne se produit pas (la connexion meurt, une erreur se produit, etc etc).


2) Courtier à 5 chiffres

 
pour un courtier à 5 chiffres, vous devrez peut-être multiplier par dix les montants de votre SL et de votre TP, sinon votre TP ou votre stop est de 2,5 pips.
 
SDC:
pour un courtier à 5 chiffres, vous devrez peut-être multiplier par dix les montants de votre SL et de votre TP, sinon votre TP ou votre stop sera de 2,5 pips.

Il semble que tout se passe bien avec la méthode "envoyer puis modifier". Avez-vous une idée de la façon dont je peux faire entrer l'ordre et le stop en une seule fois ? Je préfère qu'ils entrent ensemble dans un environnement de production.