aide fineturn EA - page 2

 
delcor wrote >>

dites-moi s'il y a un système de test sur la programmation de l'EA pour vous montrer pas à pas ce qui se passe quand cet EA fonctionne

non, il n'y a pas de ftn de test pas à pas ; utilisez Print pour afficher les valeurs de contrôle et les différentes parties de votre programme.

 

J'aime votre code pour l'optimisation des lots ; je l'ai modifié pour augmenter le volume des lots lorsque les pertes augmentent.

 
ronaldosim:

J'aime votre code pour l'optimisation des lots ; je l'ai modifié pour augmenter le volume des lots au fur et à mesure que les pertes augmentent.

montrez-moi s'il vous plaît

ou envoyez-moi votre EA

 
delcor:

montrez-moi s'il vous plaît

ou envoyez-moi votre EA

il me donne une erreur

La fonction "CalculateCurrentOrders" n'est pas référencée et sera supprimée du fichier exp.
 
delcor wrote >>

il me donne une erreur

La fonction "CalculateCurrentOrders" n'est pas référencée et sera supprimée du fichier exp-file.

ignorez cette erreur ; tout ce qu'elle dit c'est que vous avez une fonction appelée CalculateCurrentOrders que vous n'utilisez pas ; donc soit vous la supprimez, soit vous la levez ; cela ne causera aucun dommage ; le système dit qu'il va supprimer cette fonction de votre fichier compilé ex4

 
delcor wrote >>

montrez-moi s'il vous plaît

ou envoyez-moi votre EA

sous la fonction LotOptimization changez votre code en quelque chose comme ceci

lot=lot*MulltiplyingFactor*losses

où MulitplyFactor = 2 ou 3 ou 4 etc, similaire à votre DecreaseFactor qui consiste à diminuer la taille de vos lots au fur et à mesure que les pertes augmentent.

Ceci dit, augmenter la taille de vos lots au fur et à mesure que les pertes augmentent est dangereux pour votre EA, donc à utiliser avec précaution.

 
ronaldosim:

sous la fonction LotOptimisation, changez votre code en quelque chose comme ceci

lot=lot*FacteurMultiplicatif*pertes

où MulitplyFactor = 2 ou 3 ou 4 etc, similaire à votre DecreaseFactor qui consiste à diminuer la taille de vos lots au fur et à mesure que les pertes augmentent.

ceci dit, augmenter la taille de votre lot au fur et à mesure que les pertes augmentent est dangereux pour votre EA, donc à utiliser avec précaution.

Voulez-vous dire quelque chose comme ceci

//+------------------------------------------------------------------+
//| Calculer la taille optimale du lot
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots*Multiplication*Pertes ;
int orders=HistoryTotal() ; // total des ordres historiques
int losses=0 ; // nombre d'ordres de pertes sans pause
//---- sélectionner la taille du lot
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1) ;
//---- calcule le nombre d'ordres de pertes sans interruption
if(Facteur de diminution>0)
{
for(int i=ordres-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Erreur dans l'historique !") ; break ; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue ;
//----
si(OrderProfit()>0) break ;
si(OrderProfit()<0) pertes++ ;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1) ;
}
//---- retourner la taille du lot
si(lot<0.1) lot=0.1 ;
return(lot) ;
}
 
delcor wrote >>

Voulez-vous dire quelque chose comme ceci

//+------------------------------------------------------------------+
//| Calculer la taille optimale du lot |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots*Multiplication*Pertes ;
int orders=HistoryTotal() ; // total des ordres historiques
int losses=0 ; // nombre d'ordres de pertes sans pause
//---- sélectionner la taille du lot
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1) ;
//---- calcule le nombre d'ordres de perte sans interruption
if(Facteur de diminution>0)
{
for(int i=ordres-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Erreur dans l'historique !") ; break ; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue ;
//----
si(OrderProfit()>0) break ;
si(OrderProfit()<0) pertes++ ;
}
if(losses>1) lot=NormalizeDouble(Lots*Multiplying*losses ;,1) ;}
//---- retourner la taille du lot
si(lot<0.1) lot=0.1 ;
return(lot) ;
}

non, mettez-le après le if(pertes>1)

 
ronaldosim:

non, mettez-le après le if(pertes>1)

cela me donne une erreur

'Multiplying' - variable non définie C:\Program Files\Interbank FX Trader 4\experts\jbtest4.mq4 (57, 44)

où dois-je le définir ?

 
delcor:

Cela me donne une erreur

'Multiplying' - variable non définie C:\Program Files\Interbank FX Trader 4\experts\jbtest4.mq4 (57, 44)

où est-ce que je le définis



ok j'ai int multiplying=2 ;

Raison: