Comment coder ? - page 53

 

Essayez ceci...

Mettez

double ma_cross;[/CODE] as a global variable.

In the start function :

[CODE]

double ma1=NormalizeDouble(first_ma,Digits);

double ma2=NormalizeDouble(second_ma,Digits);

if(ma1=ma2)

{

ma_cross=ma1;

}

int spread=MarketInfo(Symbol(), MODE_SPREAD);

SLbuy=ma1+spread-SL*Point;

SLsell=ma1+SL*Point;

J'espère que cela vous aidera

 

Fermer/Ouvrir des trades à un signal inversé

J'ai un petit problème :

Dans mon EA, j'ai une condition d'achat, une condition de vente et un ordre de fermeture pour les signaux inversés. Pour éviter d'ouvrir et de fermer des positions dans la même barre, j'ai le code suivant :

if(OneEntryPerBar==true)

{

if(CheckEntryTime==iTime(NULL,PERIOD_H1,0)) return(0) ; else CheckEntryTime = iTime(NULL,PERIOD_H1,0) ;

}

Tout va bien. Mais maintenant, s'il trouve une condition de vente pendant une transaction d'achat ouverte, il ferme l'achat, ce qui est OK. Mais il n'ouvre pas la vente car le code ci-dessus l'en empêche.

Une idée sur la façon de lui faire fermer et ouvrir dans une barre... mais seulement une fois par barre ?

J'espère que je me suis bien fait comprendre.

Merci

 

Fermer et annuler à une certaine heure ?

Quelqu'un peut-il m'aider à configurer un EA qui ferme tous les ordres ouverts et annule tous les ordres en attente à une certaine heure, c'est-à-dire à 5h15 UTC+1 ?

Est-il également possible de spécifier non seulement l'heure mais aussi la date ?

 
dxtrade:
J'ai un petit problème ici :

Dans mon EA, j'ai une condition d'achat, une condition de vente et un ordre de fermeture pour les signaux inversés. Pour empêcher l'ouverture et la fermeture de transactions dans la même barre, j'ai le code suivant :

if(OneEntryPerBar==true)

{

if(CheckEntryTime==iTime(NULL,PERIOD_H1,0)) return(0) ; else CheckEntryTime = iTime(NULL,PERIOD_H1,0) ;

}

Tout va bien. Mais maintenant, s'il trouve une condition de vente pendant une transaction d'achat ouverte, il ferme l'achat, ce qui est OK. Mais il n'ouvre pas la vente car le code ci-dessus l'en empêche.

Avez-vous une idée sur la façon de lui faire fermer et ouvrir dans une seule barre... mais seulement une fois par barre ?

J'espère que je me suis bien fait comprendre.

Merci

il ne s'ouvrira pas à cause du code que vous utilisez ci-dessus... jusqu'à l'heure suivante...

vous pouvez essayer ceci...

si (OrderOpenTime() >= iTime(NULL, PERIOD_H1, 0)) order++ ;

si (ordre < 1)

{

conditions de l'ordre

}

j'espère que cela vous aidera... je ne suis pas un expert... mais ce code n'empêchera pas de le faire plus d'une fois...

 

Aidez-moi Ea

Je ne parle pas anglais, je veux ajouter Maxtrade et Risk Pouvez-vous m'aider ?

Merci

Dossiers :
zero.mq4  10 kb
 
wasanmyza:
Je ne parle pas anglais, je veux ajouter Maxtrade et Risk Pouvez-vous m'aider Merci

Bonjour,

Vous avez d'autres problèmes avec cet EA. Vous dites que vous souhaitez effectuer un achat ou une vente lorsque VAR1, VAR2 ou VAR3 a atteint ou dépassé certaines valeurs.

Vous devez d'abord définir ce qu'est VAR1, 2 et 3 ? Un indicateur avec des paramètres spécifiques ?

Merci,

StrangeGuy

 

Prendre le profit, annuler tous les autres ordres

Quelqu'un sait-il comment coder une fois que l'ordre ouvert a atteint l'objectif de profit, le reste des ordres en attente sera supprimé ? C'est différent d'oco. J'ai vérifié dans la section elite, mais rien n'y figure.

 

question

Je ne comprends pas la différence de deux programmes, mais l'enseignerait-on ?

int limit = Bars-IndicatorCounted() ;

int i ;

for( i=limit-1 ; i>=0 ; i--)

int counted_bars=IndicatorCounted() ;

//---- vérifier les erreurs éventuelles

if(counted_bars<0) return(-1) ;

//---- dernière barre comptée sera recomptée

if(counted_bars>0) counted_bars-- ;

limit=Bars-counted_bars ;

for(i = 0 ; i <= limite ; i++)

 
nakata79087:
Je ne comprends pas la différence entre les deux programmes, mais l'enseignerait-on ?

int limit = Bars-IndicatorCounted() ;

int i ;

for( i=limit-1 ; i>=0 ; i--)

int counted_bars=IndicatorCounted() ;

//---- vérifier les erreurs éventuelles

if(counted_bars<0) return(-1) ;

//---- dernière barre comptée sera recomptée

if(counted_bars>0) counted_bars-- ;

limit=Bars-counted_bars ;

for(i = 0 ; i <= limite ; i++)

La différence la plus importante est le sens de la boucle "for" :

La première analyse les barres en suivant le temps naturel, c'est-à-dire de la barre la plus ancienne à la plus récente.

La seconde balaye les barres dans le sens inverse : cela peut fonctionner si le calcul d'une barre n'implique pas le résultat de la barre précédente ;

En général, il est préférable d'utiliser la même direction que le temps : cela fonctionne toujours et il n'y a pas de possibilités d'erreur.

 

Merci.

Merci pour votre gentillesse, Michel !

J'ai été troublé pendant longtemps, pourquoi il commence une signature différente bien que deux d'entre eux sont de légères différences.