Journées commerciales

1 réponses

jdowney

Client, bbp_participant, communauté, 12 réponses.

Visiter le profil

il y a 10 ans #111962

Hi Support,

 

J'ai un problème avec mon EA pour négocier certains jours de la semaine, avec l'option de désactiver ou d'activer le jour dans l'EA.

 

Cependant, lorsque j'effectue un back test sur la plateforme MT4, l'EA n'effectue des transactions que les lundis et pas le reste de la semaine.

 

J'ai défini les variables en tant que Boolan et int et j'ai essayé les deux options en vain.

 

voir la capture d'écran ci-jointe et la stratégie (TradeDays On OFF.sqw)

 

Une idée, quelque chose m'échappe ou c'est peut-être l'ordre dans lequel les règles devraient être...

 

Avec mes salutations, John.

 

 

//——————————————————————–
// Pas d'échange le lundi

IF (IsBarOpen is True) && (((MonTrade = 0)
      And (DayOfWeek[0] = _CONSTANT_)))
ALORS
   // Action #1
      Clôturer toutes les commandes ;

   // Action #2
   Ne rien faire

END IF ;

//——————————————————————–
// Mar. sans échanges

IF (IsBarOpen is True) && (((TueTrade = 0)
      And (DayOfWeek[0] = _CONSTANT_)))
ALORS
   // Action #1
      Clôturer toutes les commandes ;

   // Action #2
   Ne rien faire

END IF ;

//——————————————————————–
// Mercredi sans échanges

IF (IsBarOpen is True) && (((WedTrade = 0)
      And (DayOfWeek[0] = _CONSTANT_)))
ALORS
   // Action #1
      Clôturer toutes les commandes ;

   // Action #2
   Ne rien faire

END IF ;

//——————————————————————–
// Pas d'échanges Thur

IF (IsBarOpen is True) && (((ThuTrade = 0)
      And (DayOfWeek[0] = _CONSTANT_)))
ALORS
   // Action #1
      Clôturer toutes les commandes ;

   // Action #2
   Ne rien faire

END IF ;

//——————————————————————–
// Pas d'échange le vendredi

IF (IsBarOpen is True) && (((FriTrade = 0)
      And (DayOfWeek[0] = _CONSTANT_)))
ALORS
   // Action #1
      Clôturer toutes les commandes ;

   // Action #2
   Ne rien faire

END IF ;

//——————————————————————–
// Pas d'échange le samedi

IF (IsBarOpen is True) && (((SatTrade = 0)
      And (DayOfWeek[0] = _CONSTANT_)))
ALORS
   // Action #1
      Clôturer toutes les commandes ;

   // Action #2
   Ne rien faire

END IF ;

//——————————————————————–
// EnvUpper Band Short

IF (IsBarOpen is True) && (((Bid >= Envelopes( 8 , Exponential , 0 , Median price , 0.12 )[1])
      Et ((SpreadInPips < 7)
      Et ((DayOfWeek[0] = _CONSTANT_)
      Et ((MonTrade = 1)
      Ou ((Jour de la semaine[0] = _CONSTANT_)
      Et ((TueTrade = 1)
      Ou ((Jour de la semaine[0] = _CONSTANT_)
      Et ((WedTrade = 1)
      Ou ((Jour de la semaine[0] = _CONSTANT_)
      Et ((ThuTrade = 1)
      Ou ((Jour de la semaine[0] = _CONSTANT_)
      Et ((FriTrade = 1)
      Ou ((Jour de la semaine[0] = _CONSTANT_)
      Et (SatTrade = 1)))))))))))))))
ALORS
   // Action #1
      Fermer l'ordre avec le numéro magique : 2000 ;

   // Action #2
   Vente de 0,1 lot au marché
      Nombre magique = 1000 ;
      Stop Loss = 25 pips ;
      Profit Cible = (Enveloppes( 8 , Exponentielle , 0 , Prix médian , 0.03 )[1] ? 1 : 0) pips ;

   // Action #3
      Tirer la flèche vers le bas ;

END IF ;

//——————————————————————–
// EnvLower Band Long

IF (IsBarOpen is True) && (((Ask <= Envelopes( 8 , Exponential , 0 , Median price , 0.12 )[1])
      Et ((SpreadInPips < 7)
      Et ((DayOfWeek[0] = _CONSTANT_)
      Et ((MonTrade = 1)
      Ou ((Jour de la semaine[0] = _CONSTANT_)
      Et ((TueTrade = 1)
      Ou ((Jour de la semaine[0] = _CONSTANT_)
      Et ((WedTrade = 1)
      Ou ((Jour de la semaine[0] = _CONSTANT_)
      Et ((ThuTrade = 1)
      Ou ((Jour de la semaine[0] = _CONSTANT_)
      Et ((FriTrade = 1)
      Ou ((Jour de la semaine[0] = _CONSTANT_)
      Et (SatTrade = 1)))))))))))))))
ALORS
   // Action #1
      Fermer l'ordre avec le nombre magique : 1000 ;

   // Action #2
   Achat de 0,1 lot au marché
      Nombre magique = 2000 ;
      Stop Loss = 25 pips ;
      Profit Cible = (Enveloppes( 8 , Exponentielle , 0 , Prix médian , 0.03 )[1] ? 1 : 0) pips ;

   // Action #3
      Tirer la flèche vers le haut ;

END IF ;
 

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 10 ans #123738

Bonjour,

 

Le problème que je constate est que les conditions ne sont pas correctement mises entre parenthèses. 

Vous devez ajouter des parenthèses pour regrouper correctement les conditions "et" et "ou", sinon elles seront évaluées une par une, ce qui donnera des résultats très inattendus.

 

Vous pouvez définir des parenthèses dans le panneau c IF, voir la capture d'écran.

 

 

 

Fichier : crochets.pngcrochets.png

Marque
StratégieArchitecte de Quantités

0

Affichage d'1 réponse (sur un total de 1)