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
Bonjour à tous.
comment puis-je définir un code d'ordre dans le metaeditor,
J'utilise un compte démo... est-il possible de définir un ordre dans un compte démo ?
J'ai essayé mais cela a échoué
Paramètre BE
Bonjour.
J'ai besoin d'aide pour ajouter le paramètre d'arrêt BE dans cet EA, que j'ai obtenu à partir de la première page de ce fil de discussion qui est basé sur le système Trendmanager.
Merci d'avance.
Cha.
e-trendmanager.mq4
Fichier MQ4 svp
Merci d'avance.
Cha.#property copyright "Copyright ฉ 2006, www.easyforexsignals.com"
#property link "paul@easyforexsignals.com"
#define LONGCOLOR DodgerBlue
#define SHORTCOLOR OrangeRouge
#define MAGICTM 20070610
extern double TMlots=0.1 ;
extern int MoveStopAmount = 20 ;
extern int MoveStopAfterProfitof = 55 ;
extern int minadxlevel = 20 ;
extern double minSolarWind = 0.25 ;
extern double minJuice = 0.001 ;
extern int StopLoss=50,
Slippage = 3,
TakeProfit=120 ;
datetime LastTMSignalTime ;
extern int MinTimeBetweenSignals = 60 ;
int init(){
retour(0) ;
}
int deinit(){
return(0) ;
}
int start()
{
int res= 0 ;
if(Bars<100 || IsTradeAllowed()==false) return ;
CheckTrendManager(); // vérifie le système du gestionnaire de tendance
CheckForTMClose() ; // vérification des fermetures sur ce système
CheckForStopMove() ; // déplace les stops sur toutes les transactions ouvertes.
}
void CheckForStopMove() {
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break ;
if(OrderMagicNumber()!=MAGICTM || OrderSymbol()!=Symbol()) continuer ;
if(OrderType()==OP_BUY)
{
// déplacez les stops vers le haut pour verrouiller le profit
si ((OrderOpenPrice()-Ask) >= (MoveStopAfterProfitof * Point())) {
OrderModify(OrderTicket(),0,OrderOpenPrice()+(MoveStopAmount*Point),OrderTakeProfit(),0,Black) ;
}
}
if(OrderType()==OP_SELL))
{
// déplacez les stops vers le haut pour verrouiller le profit
si ((OrderOpenPrice() - Bid) >= (MoveStopAfterProfitof * Point())) {
OrderModify(OrderTicket(),0,OrderOpenPrice()-(MoveStopAmount*Point),OrderTakeProfit(),0,Black) ;
}
}
}
}
void CheckTrendManager() {
if (Time[0]-LastTMSignalTime > MinTimeBetweenSignals) {
double PipsStopLoss, PipsTakeProfit ;
double TMbuy = iCustom(Symbol(),Period(), "TrendManagerNT",2, 0) ;
double TMsell = iCustom(Symbol(),Period(), "TrendManagerNT",3, 0) ;
int orderresult ;
if (TMbuy > 0) {
if (CheckFilters(OP_BUY)==true) {
PipsStopLoss = Ask-(StopLoss * Point()) ;
PipsTakeProfit = Ask+(TakeProfit * Point()) ;
CloseExisting(OP_SELL) ;
orderresult =OrderSend(Symbol(),OP_BUY,TMlots,Ask,Slippage,PipsStopLoss, PipsTakeProfit, "",MAGICTM,0,Maroon) ;
Print(Time[0] + "BUY ON TM,le résultat de l'ordre était :" + orderresult + "stop :" + PipsStopLoss + ",takeprofit :" + PipsTakeProfit) ;
LastTMSignalTime = Time[0] ;
}
}
if (TMsell > 0){
si (CheckFilters(OP_SELL)==true) {
PipsStopLoss = Bid+(StopLoss * Point()) ;
PipsTakeProfit = Bid-(TakeProfit * Point()) ;
CloseExisting(OP_BUY) ;
orderresult = OrderSend(Symbol(),OP_SELL,TMlots,Bid,Slippage,PipsStopLoss,PipsTakeProfit, "",MAGICTM,0,Green) ;
Print(Time[0] + "SELL ON TM, order result was :" + orderresult + "stop :" + PipsStopLoss + ",takeprofit :" + PipsTakeProfit) ;
LastTMSignalTime = Time[0] ;
}
}
}
}
void CheckForTMClose() {
double TMclosesell = iCustom(Symbol(),Period(), "TrendManagerNT",4, 0) ;
double TMclosebuy = iCustom(Symbol(),Period(), "TrendManagerNT",5, 0) ;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break ;
if(OrderMagicNumber()!=MAGICTM || OrderSymbol()!=Symbol()) continue ;
//---- juste le fermer
if ((TMclosesell > 0) && (OrderType()==OP_SELL)) {
OrderClose(OrderTicket(),OrderLots(),Bid,10,Pink) ;
}
si ((TMclosebuy > 0) && (OrderType()==OP_BUY)) {
OrderClose(OrderTicket(),OrderLots(),Bid,10,Pink) ;
}
}
}
// ferme simplement les positions existantes
void CloseExisting(int OrderTyp)
{
for(int i=0;i<OrdersTotal();i++)
{
si(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break ;
if(OrderMagicNumber()!=MAGICTM || OrderSymbol()!=Symbol()) continue ;
//---- juste le fermer std slippage
if(OrderType()==OrderTyp)
{
OrderClose(OrderTicket(),OrderLots(),Bid,10,White) ;
}
}
}
bool CheckFilters(int OrderTyp) {
return(true) ;
}
Renommez simplement le fichier avec l'extension .mq4. C'est tout.
Bonjour.
J'ai essayé de le modifier mais ça ne marche pas. Pouvez-vous le terminer pour moi s'il vous plaît ?
Merci.
Cha.
Bonjour.
J'ai essayé de le changer mais ça n'a pas fonctionné.
Merci.
Cha.Done plutot corrigé quelques bugs dans le code.
Robert
Aide nécessaire pour la fonction ordeersend
Bonjour à tous,
J'ai des problèmes avec la fonction ordersend().
Voici le code que j'ai fait :
Avec ce code, j'obtiens l'erreur #130 (arrêt des erreurs)Quelqu'un peut-il m'expliquer ce qui ne va pas, je ne comprends pas....
merci.
Si vous utilisez ce que l'on appelle"l'exécution instantanée", c'est-à-dire l'utilisation d'ordres OP_BUY ou OP_SELL, vous ne pouvez pas spécifier un prix d'entrée autre que le Ask pour les achats et le Bid pour les ventes.
Bonjour à tous,
ticket1=OrderSend(Symbol(),OP_BUY,1,prixdachat+10*Point,5,prixdachat,prixdachat+20*Point, "ordre",1,15,Green) ;
ticket2=OrderSend(Symbol(),OP_SELL,1,prixdevente-10*Point,5,prixdevente,prixdevente-20*Point, "ordre",2,15,Red) ;
Avec ce code, j'obtiens l'erreur #130 (erreur s'arrête)
Quelqu'un peut-il m'expliquer ce qui ne va pas, je ne comprends pas...
merci.UTILISER LES ORDRES EN ATTENTE AU LIEU DES ORDRES INSTANTANÉS.
(par exemple, changez OP_BUY pour OP_BUYSTOP et OP_SELL pour OP_SELLSTOP)
et tout ira bien.
MERCI BEAUCOUP, M. PIP,
CHA.