Oiseau de feu EA - page 58

 
 

Bonjour rbchapin,

Vous avez peut-être raison. Mais le "jour de folie" n'est pas seulement le vendredi. Il peut s'agir de n'importe quel autre jour.

J'ai regardé dans les paramètres du fichier de configuration et il est écrit les paramètres suivants :

extern int MAtype=0;//0=close, 1=HL

extern int TradeOnFriday =0; // >0 trades on friday[/CODE]

But inside the code I found the following:

if(MAtype==0)

{

double myMA =iMA(NULL,MA_timeframe,MA_length,0,MODE_SMA,PRICE_OPEN,0);[/CODE]

So, according to my limited programming knowledge, if MAtype=0 so EA is using MA indicator on open price for current open bar.

And some other codes:

[CODE]KeepStopLoss=OrderStopLoss();

And more:

[CODE]if(KeepStopLoss!=0)

{

spread=MathAbs(KeepAverage-KeepStopLoss)/2;

dummy=(Bid+Ask)/2;

if (KeepStopLoss(dummy-spread))

{

// a stoploss was hit

if(Direction==1) Direction=11;// no more longs

if(Direction==2) Direction=22;// no more shorts

}

KeepStopLoss=0;

}

Direction==1 est longue ; Direction==11 n'est plus longue.

Direction==2 est courte ; Direction==22 n'est plus courte.

 

Et regardez ce code

if((myMA*(1+Percent/100))<Bid && Direction!=22 && (Bid>=(LastPrice+(CurrentPipStep*Point)) || myTotal==0) )[/CODE]

So, it is not surprise when EA is openning too many orders sometimes. It is open price and when market is moving very quickly so we may have condition for open the order 100 times on open bar.

May be it should be && instead of or (||) here?

[CODE]....|| myTotal==0) )
 

C'est donc une très bonne chose que nous connaissions au moins le jour où l'EA volera : ce sera peut-être le 5 de chaque mois.

 

Mais vous avez peut-être raison.

Parce que nous pouvons "traduire" ce code

if (Day()!=5 || TradeOnFriday >0)[/CODE]

as the following:

"if it is not 5th of the month, or if we are trading on Friday."

And int Day( ) is the following:

Returns the current day of the month, i.e., the day of month of the last known server time.

So, EA will trade is it is not 5th of the month (5th of October for example) or TradeOnFriday>0 (we are having TradeOnFriday=0).

I think it should be DayOfWeek( ) instead of Day( ):

[CODE]int DayOfWeek( )

Returns the current zero-based day of the week (0-Sunday,1,2,3,4,5,6) of the last known server time.
 

Couverture

Bonjour à tous,

J'ai une question à propos de Firebird v3.2.

J'ai observé son fonctionnement et j'ai vu qu'il se couvre contre une position qu'il a prise si elle va dans le mauvais sens. Mais lorsque la couverture se ferme avec un profit, elle laisse les autres transactions sur la table.

Ne devrait-il pas fermer toutes les positions lorsqu'une de ses positions est fermée ?

Que se passe-t-il si le prix ne revient pas à la position ouverte pendant une très longue période ?

rbc

 
newdigital:
Mais vous avez peut-être raison.

Parce que nous pouvons "traduire" ce code

if (Day()!=5 || TradeOnFriday >0)[/CODE]

as the following:

"if it is not 5th of the month, or if we are trading on Friday."

And int Day( ) is the following:

Returns the current day of the month, i.e., the day of month of the last known server time.

So, EA will trade is it is not 5th of the month (5th of October for example) or TradeOnFriday>0 (we are having TradeOnFriday=0).

I think it should be DayOfWeek( ) instead of Day( ):

[CODE]int DayOfWeek( )

Returns the current zero-based day of the week (0-Sunday,1,2,3,4,5,6) of the last known server time.

Bonjour newdigital,

En fait, c'est un peu plus grave, car l'EA continue à trader mais il a un LastPrice et un Myorders gelés, qui sont tous deux utilisés plus tard pour gérer votre risque. S'ils sont gelés, les résultats suivants seront obtenus. 1. Aucune limite sur le nombre d'ordres pris et 2. si le prix dérive dans la zone d'exercice, il continuera à frapper là parce que Lastprice ne suivra pas le dernier ordre.

J'ai vérifié et le Lastprice n'est pas mis à jour au fur et à mesure des transactions, il doit donc entrer dans la boucle sous l'instruction if pour être mis à jour.

Je pense que l'instruction If (Day()) devrait être supprimée et que toute la logique du bloc Vendredi devrait être placée là où la logique du filtre temporel a été placée. (je ne suis pas sûr qu'elle en dispose mais la V3.2 le fait). Si cela ne semble pas rentable, vous pourriez alors augmenter le risque puisque le money management fonctionnerait toujours.

rbc

 

Salut rbchapin,

Merci beaucoup.

Je voulais arrêter de tester cet EA l'année dernière déjà mais je reçois beaucoup de messages PM et il semble que beaucoup de gens aiment ces "jours de folie". Je pense que les membres ne comprennent pas que c'est un cas impossible pour un compte réel d'ouvrir 100 ordres juste pendant 1 minute ...

Je vais continuer à tester cet EA et mettre à jour le fil de discussion des fichiers https://www.mql5.com/en/forum/176044/page2 avec le message "bug found".

 

Firebird a volé une fois de plus hier.

Dossiers :
firebird065.zip  546 kb