[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 1124
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Bon après-midi. Revenons à ma question. La transaction inverse ne fonctionne pas. J'ai parcouru le site mais je n'ai rien trouvé sur ce sujet. Pouvez-vous me dire ce que je fais de mal (j'apprends encore la langue). Elle doit être déclenchée sur une seule bougie.
extern double TP = 70 ; //bénéfice
extern double SL = 0 ; //perte
extern double Lot = 0.1 ;
double HighLevel ;
double LowLevel ;
int resBuy=0 ;
int resSell=0 ;
//+------------------------------------------------------------------+
//| fonction d' initialisation de l'expert |
//+------------------------------------------------------------------+
int init()
{
HighLevel=High[1] ;
LowLevel=Low[1] ;
return ;
}
//+------------------------------------------------------------------+
//| fonction expert |
//+------------------------------------------------------------------+
void start()
{
if(Bars<100 && IsTradeAllowed()==false) return ;
if(resBuy==0 && resSell==0 && CheckBreak()==-1)
{
resSell=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,0,Bid -TP,"",MAGICMA,0,Red) ;
HighLevel=LowLevel ;
LowLevel=Close[1] ;
return ;
}
if(resBuy==0 && resSell==0 && CheckBreak()==1)
{
resBuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,2,0,Ask + TP,"",MAGICMA,0,Blue) ;
LowLevel=HighLevel ;
HighLevel=Close[1] ;
return ;
}
if(resBuy!=0 && resSell==0 && Close[1]<LowLevel) //------------------------------------- intéressé par cette partie : fermeture et ouverture sur une barre
{
bool closeBuy=OrderClose(resBuy, Lot, Bid, 2, Blue) ;
// while(!IsTradeAllowed()) Sleep(100) ;
resSell=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,0,Bid -TP,"",MAGICMA,0,Red) ;
HighLevel=LowLevel ;
LowLevel=Close[1] ;
return ;
}
if(resSell!=0 && resBuy==0 && Close[1]>HighLevel) //------------------------------------- intéressé par cette partie : fermeture et ouverture sur une barre
{
bool closeSell=OrderClose(resSell, Lot, Ask, 0.0002, Red) ;
// while(!IsTradeAllowed()) Sleep(100) ;
resBuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,2,0,Ask + TP,"",MAGICMA,0,Blue) ;
LowLevel=HighLevel ;
HighLevel=Close[1] ;
return ;
}
}
//----------------------------------------------------------------- Check Low&High break (Func)
double CheckBreak()
{
double candle=Open[1]-Close[1] ;
if(candle>0 && Low[1]<LowLevel) return(-1) ;
if(candle<0 && High[1]>HighLevel) return(1) ;
}
Il y a un problème avec les tableaux :
Supposons
int start (){ // Début de la fonction
int OrdSen_1=OrderSend(Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point) ; // Ordre d'achat
if(OrdSen_1==-1){ Alert("OrdSen_1 ",GetLastError());} // Vérification d'une erreur lors de la passation d'un ordre
double mas1[]={} ; // Tableau
}
La question est de savoir comment placer les valeurs "Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point" qui appartiennent à OrdSen_1 dans le tableau mas1[]={}, afin qu'elles puissent être utilisées ultérieurement, extraites du tableau ou assimilées à des variables pour leur utilisation ultérieure. Il peut y avoir d'autres ordres de ce type, ainsi que des tableaux, mais l'essentiel est de comprendre le principe.
TRES reconnaissant pour l'aide et les explications, de préférence en détail :)
Outside sera supprimé parce que vous ne l'utilisez pas, c'est-à-dire que vous ne l'appelez pas de n'importe où, est-ce clair maintenant ?
Que pensez-vous de cet échantillon ? :)))))
Salutations. Comment l'éditeur peut-il garder la trace de tous les endroits du code où la même variable. fonction est utilisée ?
Salutations. Comment l'éditeur peut-il garder la trace de tous les endroits du code où la même variable. fonction est utilisée ?
J'utilise Notepad++ pour cela. Il suffit de mettre une variable en surbrillance une fois pour qu'elle le soit tout au long de votre code.
Mais pour que Notepad++ mette en évidence la syntaxe, vous devez l'adapter au langage MQL4. Tapez Notepad++ dans la recherche de ce forum et vous trouverez un lien vers un éditeur déjà configuré - je l'ai posté ici plus d'une fois.
Merci. Je l'ai installé, il s'allume, c'est plus amusant))
Merci. Je l'ai installé, il s'allume, c'est plus amusant))
Il existe une fonction très intéressante pour marquer les variables trouvées. Appuyez sur Ctrl+F, entrez le nom de la variable, cochez "Signet" et "Marqueur trouvé". Ensuite, appuyez sur le bouton "Rechercher tout". Pour les supprimer, appuyez sur le bouton "Supprimer tout".
Il existe une fonction très intéressante pour marquer les variables trouvées. Appuyez sur Ctrl+F, entrez un nom de variable, cochez les cases "Signet" et "Marqueur trouvé". Ensuite, appuyez sur le bouton "Rechercher tout". Pour les supprimer, cliquez sur "Supprimer tout".
Et un double-clic mène à l'extrait de code)))) Juste ce dont j'ai besoin, merci)