Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1338
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
Je vais poser la question plus correctement.
Il existe un bloc de code qui explique au conseiller expert le nombre de transactions qu'il doit ouvrir. Cela ressemble à ceci
int OPEN=1 ;
if(OrdersTotal())
OPEN=0 ; // aucun autre ordre ne peut être ouvert.
si(OPEN==1)
{
//Ouvrez ici
}
Le problème est qu'il ouvre le nombre requis de donnes (1 dans cet exemple) pour tous les symboles. Et je dois lui expliquer
qu'elle doit ouvrir ce nombre de transactions sur l'instrument ACTUEL . Quelque chose comme _Symbol ou Symbol (). Comment cela peut-il être fait ? Je pense que la solution est simple.
Je vais poser la question plus correctement.
Il existe un bloc de code qui explique au conseiller expert le nombre de transactions qu'il doit ouvrir. Cela ressemble à ceci
int OPEN=1 ;
if(OrdersTotal())
OPEN=0 ; // aucun autre ordre ne peut être ouvert.
si(OPEN==1)
{
//Ouvrez ici
}
Le problème est qu'il ouvre le nombre requis de donnes (1 dans cet exemple) pour tous les symboles. Et je dois lui expliquer
qu'elle doit ouvrir ce nombre de transactions sur l'instrument ACTUEL . Quelque chose comme _Symbol ou Symbol (). Comment cela peut-il être fait ? Je pense que la solution est simple.
Ça fait sauter un sacré paquet d'affaires, et dans une vente
eh bien il y a deux options :
1. montrer tout le code
2. rejoindre le club des télépathes
il y a deux options :
1. montrer le code entier
2. rejoindre le club des télépathes :)
:)
J'ai trouvé comment ouvrir à la fois l'achat et la vente. Mais le nombre de transactions ne s'ouvre pas à chaque fois.
int start()
{
double a=iOpen(NULL,PERIOD_D1,0) ;
double d=_ORDER*0.00001 ;
double c=d+1 ;
double s=c*a ;
double limit= NormalizeDouble(s,_Digits) ;
// Print("niveau de limite= ",limite) ;
double e=_STOP*0.00001 ;
double n=e+1 ;
double m=n*a ;
double SL= NormalizeDouble(m,_Digits) ;
//Print("stop level= ",SL) ;
double p=_TP*0.00001 ;
double f=p+1 ;
double z=f*a ;
double TP= NormalizeDouble(z,_Digits) ;
double w=iOpen(NULL,PERIOD_D1,0) ;
double q=_ORDER*0.00001 ;
double j=q+1 ;
double v=w/j ;
double limit1= NormalizeDouble(v,_Digits) ;
// Print("niveau de limite= ",limite) ;
double k=_STOP*0.00001 ;
double y=k+1 ;
double u=w/y ;
double SL1= NormalizeDouble(u,_Digits) ;
//Print("stop level=",SL) ;
double g=_TP*0.00001 ;
double _f=g+1 ;
double _m=w/_f ;
double TP1= NormalizeDouble(_m,_Digits) ;
si(Hour()==Nac)
{
if(iOpen(NULL,PERIOD_D1,0)<iOpen(NULL,PERIOD_D1,1))
{
if(!isTradeToDay(Symbol()))
{
int ticket1=OrderSend(Symbol(),OP_SELLSTOP,1.5,limit1,3,SL1,TP1,NULL,0,0,clrRed) ; //ouvert ici
}
}
if(iOpen(NULL,PERIOD_D1,0)>iOpen(NULL,PERIOD_D1,1))
{
si(isTradeToDay(Symbol())))
{
int ticket=OrderSend(Symbol(),OP_BUYSTOP,1.5,limit,3,SL,TP,NULL,0,0,0,clrBlueViolet) ; //ouvrir ici
}
}
}
if(Hour()==Kon)
{
bool result ;
erreur int ;
//----
while(OrdersTotal()>0)
{
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
si(OrderType()==OP_BUY)
result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS),3,CLR_NONE) ;
si(OrderType()==OP_SELL)
result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS)),3,CLR_NONE) ;
if(OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP)
OrderDelete(OrderTicket()) ;
si(résultat!=TRUE)
{
error=GetLastError() ;
Print("LastError = ",error, ",Symbol()) ;
}
sinon
erreur=0 ;
}
sinon
Print("Erreur lors de la sélection de la commande ", GetLastError()) ;
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
retour(0) ;
}
Voici le code sans aucune variable déclarée.
le code doit être inséré Alt+S
et où se trouve la fonction ?
comment l'avez-vous compilé ? aucune erreur ?
le code doit être inséré Alt+S
et où se trouve la fonction ?
comment l'avez-vous compilé ? aucune erreur ?
La fonction se trouve en bas. La compilation se fait sans erreur. Le côté vendeur a réussi à ajuster l'ouverture d'une transaction sur un instrument spécifique même s'il y a des ouvertures sur d'autres instruments.
instruments. Mais le côté baie déclenche des échanges à chaque tic et c'est tout.
le code doit être inséré Alt+S
et où se trouve la fonction ?
comment l'avez-vous compilé ? aucune erreur ?
Pour l'instant, le code est le suivant. Côté vendeur, tout va bien, mais côté acheteur, chaque tick est une transaction.
du côté des acheteurs, la même chose devrait être faite.
la même chose devrait être faite du côté des acheteurs.
Je n'arrive pas à trouver ce qu'il faut changer dans la fonction isTradeToDay pour qu'elle soit la même du côté de l'achat que du côté de la vente. Le côté achat ne fonctionne toujours pas :(