Page 1 sur 1

EA Modification SL

Publié : 04 août 2018, 09:03
par StanFX
Quelqu'un peut-il me dire où se trouve l'erreur?

ouverture de la 1ere position ou après un trade gagnant, le stoploss du prochain trade doit avoir une valeur de 50

Code : Tout sélectionner

if ((SelectLastHistoryOrder1(Symbol(), MagicNumber)&&(OrderProfit()>0))) stoploss=50*point;
si la dernière position est perdante, le stoploss du prochain trade doit avoir une valeur de 100

Code : Tout sélectionner

if ((SelectLastHistoryOrder1(Symbol(), MagicNumber)&&(OrderProfit()<0))) stoploss=100*point;
si la dernière position et l'avant dernière position sont perdantes, le stoploss du prochain trade doit avoir une valeur de 150

Code : Tout sélectionner

if ((SelectLastHistoryOrder1(Symbol(), MagicNumber)&&(SelectLastHistoryOrder2(Symbol(), MagicNumber)&&(OrderProfit()<0)))) stoploss=150*point;

Code : Tout sélectionner

//----------------------------------------------------------------------------------------
bool SelectLastHistoryOrder1(string Symbol, int MagicNumber)
{
int lastOrder=NULL;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol && OrderMagicNumber()==MagicNumber)
{
lastOrder=i;
break;
}
}
if(lastOrder==NULL)
return(false);
else
return(true);
}
//----------------------------------------------------------------------------------------
bool SelectLastHistoryOrder2(string Symbol, int MagicNumber)
{
int lastOrder=NULL;
for(int i=OrdersHistoryTotal()-2;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol && OrderMagicNumber()==MagicNumber)
{
lastOrder=i;
break;
}
}
if(lastOrder==NULL)
return(false);
else
return(true);
}

Re: EA Modification SL

Publié : 04 août 2018, 09:34
par MaPomme
Salut Stan

Tu ne nous dit pas ce qu'il se passe mais tu devrais commencer par gérer les erreurs OrderSelect() pour essayer d'y voir plus clair.

Bon courage, j’espère pour toi que tu as une bonne clim :lol:

Re: EA Modification SL

Publié : 04 août 2018, 09:39
par StanFX
:lol: :lol: :lol: merci mapomme

Re: EA Modification SL

Publié : 04 août 2018, 09:49
par StanFX

Code : Tout sélectionner

OrderSelect(result,SELECT_BY_TICKET);
         OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);

Re: EA Modification SL

Publié : 04 août 2018, 10:27
par StanFX
Image

Re: EA Modification SL

Publié : 06 août 2018, 14:09
par Fabien LABROUSSE
Désolé, je suis naze en programmation.

Re: EA Modification SL

Publié : 06 août 2018, 14:11
par Fabien LABROUSSE
Par contre très cool tes résultats : https://www.myfxbook.com/members/DayTra ... an/1906511.


Bravo. Ton Darwin est ouvert aux investisseurs ? Tu as pas mal de capitaux qui te suivent ?


Car 180% de performance avec 30 de drawdown max sur une période significative, c'est bien.


C'est que du trading automatique ?

Re: EA Modification SL

Publié : 06 août 2018, 15:23
par StanFX
Merci mais j'ai arrêté cette stratégie car pas de perf depuis 1 an.
Fabien LABROUSSE a écrit :Tu as pas mal de capitaux qui te suivent ?
zéro
Fabien LABROUSSE a écrit :C'est que du trading automatique ?
C’était du 100% manuel.

Re: EA Modification SL

Publié : 06 août 2018, 17:15
par kariboo
StanFX a écrit :Quelqu'un peut-il me dire où se trouve l'erreur?
J'imagine qu'il ne s'agit pas d'une erreur de compilation mais que le code ne fait pas ce que tu attends. Il faudrait que tu expliques le résultat obtenu que tu appelles erreur.

De ce que je vois, si tu mets les deux conditions en parallèle dans le même if, le OrderProfit ne doit pas renvoyer l'environnement relatif au SelectLastHistoryOrder1 qui est au même niveau.

Tu as essayé le débuggage intégré ?

Re: EA Modification SL

Publié : 07 août 2018, 08:57
par StanFX
Exact il n'y a pas de problème de compilation, il ne fait simplement pas ce que je lui demande.
La modification du SL fonctionne mais j'ai l'impression qu'il sélectionne les trades dans l'historique au hasard.

J'ai tenté cette modification mais c'est le même problème:

Code : Tout sélectionner

        if (SelectLastHistoryOrder1(Symbol(), MagicNumber));
        {
          if (OrderProfit()>0)  
         {
            stoploss=50*point;  
                  }
               } 
kariboo a écrit :Tu as essayé le débuggage intégré ?
Je ne connais pas
StanFX a écrit :for(int i=OrdersHistoryTotal()-1;i>=0;i--)
Le -1 veut-il bien dire que je sélectionne le dernier trade dans l'historique?

Re: EA Modification SL

Publié : 07 août 2018, 09:12
par kariboo
La boucle a l'air normale.

Par contre, comme dit Mapomme, il faut absolument controler le retour des fonctions pour remonter les erreurs.
Ensuite il existe la fonction OrderPrint() qui t'affiche l'ordre selectionné, ca aide pour le debuggage.

Code : Tout sélectionner

for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
      if(!OrderSelect(i, SELECT_BY_POS,MODE_HISTORY))
      {
         Print( __LINE__ + " " + __FUNCTION__ + " ERROR OrderSelect ",GetLastError());
         break;
      }
      OrderPrint();

      if(OrderSymbol()==Symbol && OrderMagicNumber()==MagicNumber)
      {
            lastOrder=i;
            break;
      }
}

Re: EA Modification SL

Publié : 08 août 2018, 08:28
par StanFX
Merci je vais tester ça

Re: EA Modification SL

Publié : 12 août 2018, 22:08
par StanFX
Problème résolu, si ça peut aider voici la solution:

Code : Tout sélectionner

int Losses()
  {
    int Count = 0;
    for(int i=OrdersHistoryTotal()-1; i>=0; i--)
    {
      OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
      if(OrderProfit()>0) break;
      Count++;
    }
    return(Count);
  } 

Code : Tout sélectionner

if (Losses()>=1))  stoploss=100*point;
if (Losses()>=2))  stoploss=150*point;

Re: EA Modification SL

Publié : 12 août 2018, 22:18
par kariboo
Le code MQL5 pour accéder a l'historique et faire la même chose est beaucoup plus compliqué avec Metatrader 5:

https://www.youtube.com/watch?v=pPcjKLNZL88

Re: EA Modification SL

Publié : 12 août 2018, 23:19
par StanFX
Il est cool ce Jimdandy 8)

Re: EA Modification SL

Publié : 12 août 2018, 23:25
par StanFX
kariboo a écrit :Le code MQL5 pour accéder a l'historique et faire la même chose est beaucoup plus compliqué avec Metatrader 5
Effectivement
mql5.PNG

Re: EA Modification SL

Publié : 13 août 2018, 17:26
par MaPomme
Hummm....