Qui peut aider avec le robot, pourquoi ne fonctionne-t-il pas ?

 

Bonjour à tous, qui peut aider avec le robot, pourquoi ne fonctionne-t-il pas ?

extern double lots = 0.01 ;
extern double TPforSymbol = 0 ;
extern double SLforSymbol = 0 ;

int last_bar= 0 ;

int start(){
if (last_bar == Bars) return(0) ;
last_bar = Bars ;
if(OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lots ,Ask, 3, Bid - SLforSymbol * Point, Ask + TPforSymbol * Point, 0, Blue) ;
OrderSend(Symbol(), OP_SELL, lots ,Bid, 3, Ask+ SLforSymbol * Point, Bid - TPforSymbol * Point, 0, Red) ;
}
return(0) ;
}

 
Indique une erreur de OrderSend(Symbol()
 
GIM:
Affiche l'erreur OrderSend(Symbol()

1. Recherchez le code d'erreur dans le journal de bord.

2. extern double TPforSymbol = 0 ;

extern double SLforSymbol = 0 ;

les variables sont égales à zéro.

 
Le fait que les variables soient nulles est une contrainte de pertes et profits, je ne pense pas que cela ait de l'importance ici.....
 
GIM:
Le fait que les variables soient nulles est une contrainte de pertes et profits, je ne pense pas que cela importe ici.....
L'erreur doit être de 130 ? Cela a de l'importance, regardez, vous essayez d'ouvrir un ordre avec des valeurs TP et SL égales aux valeurs ascendantes et descendantes.
 
GIM:

Bonjour à tous, qui peut aider avec le robot, pourquoi ne fonctionne-t-il pas ?

extern double lots = 0.01 ;
extern double TPforSymbol = 0 ;
extern double SLforSymbol = 0 ;

int last_bar = 0 ;

int start(){
si (last_bar == Bars) return(0) ;
last_bar = Bars ;
si (OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lots ,Ask, 3, Bid - SLforSymbol * Point, Ask + TPforSymbol * Point, 0, Blue) ;
OrderSend(Symbol(), OP_SELL, lots ,Bid, 3, Ask + SLforSymbol * Point, Bid - TPforSymbol * Point, 0, Red) ;
}
retour(0) ;
}

Les règles de la langue ne vous permettent pas d'avaler des paramètres avec des valeurs par défaut. Si vous devez définir la couleur des flèches, écrivez tous les paramètres à gauche de la couleur. B slippage 3 n'est pas suffisant, si c'est 5 chiffres, il y aura des requotes, j'ai écrit 50. Et SL et TP doivent être définis à des valeurs différentes de zéro.Aleksey Vakhrushev a déjà écrit à ce sujet.

OrderSend(Symbol(), OP_BUY, lots ,Ask, 50, Bid - SLforSymbol * Point, Ask + TPforSymbol * Point,  "", 1, 0, clr Blue);
 

droite =)

un ordre tente de placer un stop et un arrêt au même endroit que le prix - ce qui est impossible

- soit faire comme ci-dessous si vous voulez 0

ou préciserTPforSymbol, SLforSymbol

OrderSend(Symbol(), OP_BUY, lots ,Ask, 50,0, 0,  "", 1, 0, clrBlue);
 
GIM:

Bonjour à tous, qui peut aider avec le robot, pourquoi ne fonctionne-t-il pas ?


Avez-vous besoin que la fonction d'ouverture soit correcte ou voulez-vous trouver la raison des erreurs ?
 
Vladimir Zubov:
Voulez-vous que la fonction d'ouverture soit correcte ou voulez-vous comprendre pourquoi il y a des erreurs ?
Vous voulez qu'il ouvre des commerces.
 
GIM:
Cela devrait ouvrir des marchés.

Gérer les variables

extern double TPforSymbol = 0 ;

extern double SLforSymbol = 0 ;

Avec cette valeur de variables, vous obtiendrez une erreur.

Alexey Volchanskiy a écrit que vous ne spécifiez pas tous les paramètres de la fonction OrderSend().

 
extern double lots = 0.01 ;
extern double TPforSymbol = 100 ;
extern double SLforSymbol = 1000 ;
extern int stop_loss = 76 ;
extern int take_profit = 750 ;

intlast_bar = 0 ;

int start(){
if (last_bar == Bars) return(0) ;
last_bar = Bars ;
si(OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lots ,Ask, 50, Bid - stop_loss * Point, Ask + take_profit * Point, "", 1, 0, clrBlue) ;
OrderSend(Symbol(), OP_SELL, lots ,Bid, 50, Ask+ stop_loss * Point, Bid - take_profit * Point, "", 1, 0, clrRed) ;
}
return(0) ;

}


Je l'ai corrigé comme ça, mais c'est toujours faux. .....