[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 113
![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
Alors, qu'en est-il de la question ?
Il est plus rapide de stocker dans une variable que d'appeler une fonction à chaque fois.
D'ailleurs, il est facile de vérifier dans le testeur.
Où as-tu caché ton code ? Je voulais juste le peaufiner, et il est déjà...
//+------------------------------------------------------------------+
//| Copyright © 2009, ::: -- SAMER -- ::: |
//| E-MAIL: camep@inbox.ru icq: 422372555 |
//+------------------------------------------------------------------+
extern double TakeProfit = 500;
extern double Lots = 0.1;
extern double Stoploss = 30;
extern double TrailingStop = 30;
extern int iWPRperiod1 = 50;
extern int iWPRperiod2 = 60;
extern int iWPRperiod3 = 60;
extern int iWPRperiod4 = 50;
extern int slowing = 3;
extern int period = 3;
extern int period2 = 5;
int start()
{
double a;
int b;
int total;
int ticket;
int cnt;
int iWPRperiod1;
int iWPRperiod2;
int iWPRperiod3;
int iWPRperiod4;
int slowing;
int period;
int period2;
if(Bars<100)
{
Print("bars less than 100");
return(0);
}
if(TakeProfit<10)
{
Print("TakeProfit less than 10");
return(0);
}
total=OrdersTotal();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if((iWPR(NULL,0,iWPRperiod1,0)>iWPR(NULL,0, iWPRperiod2,0)) < iStochastic(NULL,0,period2,period,slowing,0,0,0,0) )
{
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-Stoploss*Point, Ask+TakeProfit*Point,"comment",16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
{
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
if((iWPR(NULL,0,iWPRperiod1,0)>iWPR(NULL,0, iWPRperiod2,0)) > iStochastic(NULL,0,period2,period,slowing,0,0,0,0) )
{
ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+Stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
return(0);
}
return(0);
}
for(cnt=0; cnt < total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY)
{
if(iWPR(NULL,0,iWPRperiod1,0)>iWPR(NULL,0, iWPRperiod2,0))
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet)
return(0);
}
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(iWPR(NULL,0,iWPRperiod3,0)<iWPR(NULL,0, iWPRperiod4,0))
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
return(0);
}
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
Il est plus rapide de stocker dans une variable que d'appeler une fonction à chaque fois.
D'ailleurs, il peut être facilement vérifié dans le testeur.
Merci, c'est ce que je pensais aussi.
Mais combien de code j'ai lu sur ce forum - personne ne fait cela, tout le monde appelle la fonction à chaque fois. Je suis au même endroit.
Je comprends avec la fonction, mais qu'en est-il du tableau ?
P.S. récemment ici...
Les erreurs de syntaxe les plus faciles que j'ai corrigées, il ne vous reste que les plus "faciles" - les plus logiques. :)
comment me copier tout ça ^^
lorsqu'il est copié dans un programme, c'est une seule ligne.
comment me copier tout ça ^^
en le copiant dans un programme, on obtient une seule ligne.
>> merci !)
Il est plus rapide de stocker dans une variable que d'appeler une fonction à chaque fois.
D'ailleurs, il est facile de vérifier dans le testeur.
Je comprends la fonction, mais qu'en est-il du tableau ?
Je dois réécrire beaucoup de choses pour le faire fonctionner dans le testeur, aussi.
Il est plus rapide de stocker une variable que d'appeler une fonction à chaque fois, et est-il aussi rapide de lire un élément de tableau qu'une simple variable ?
Ou plus longtemps - s'agit-il d'un tableau dont il faut rechercher l'indice, ou de la même manière que pour une variable ?
>> Je ne comprends pas bien ces subtilités.
La fonction est claire, mais qu'en est-il du tableau ?
Je ne comprends pas vraiment ces choses.
Il est préférable de montrer par un exemple de code.
Il y a des ambiguïtés avec un tableau.
Je pense qu'une EE ne devrait pas contenir de tableaux liés à l'interprétation des données. Ils ont leur place dans les indicateurs.
Beaucoup de gens ici pensent différemment. Et ils essaient de tout fourrer dans le conseiller expert.