Comment coder ? - page 200

 

comment est-il possible, dans un simple calcul, d'arrondir à un résultat supérieur?

 
dr.house7:
Comment est-il possible, dans un calcul simple, d'arrondir le résultat à la valeur supérieure ?

Cela dépend de ce que vous voulez faire :

double MathRound( double valeur)

Renvoie la valeur arrondie à l'entier le plus proche de la valeur numérique spécifiée.

double MathFloor( double x)

La fonction MathFloor renvoie une valeur numérique représentant le plus grand nombre entier inférieur ou égal à x.

double MathCeil( double x)

La fonction MathCeil renvoie une valeur numérique représentant le plus petit nombre entier supérieur ou égal à x.

double NormalizeDouble( double valeur, int chiffres)

Arrondit la valeur en virgule flottante à la précision donnée. Renvoie la valeur normalisée du type double.

 

Bonjour,

J'aimerais avoir de l'aide pour programmer une entrée supplémentaire pour cette ea.

Il s'agit d'un système de base de grille/mart qui place des ordres en attente au-dessus et en dessous du prix de départ à des incréments égaux où le tp pour les ordres d'achat est la même valeur que le sl pour les ordres de vente et vice versa.

D'après ce que je peux comprendre, il calcule actuellement le tp/sl comme (4 * incrément de pip) à partir du prix auquel vous démarrez l'ea.

Je voudrais une entrée qui me permettrait d'ajuster le tp/sl par un nombre X de pips.

C'est-à-dire (4 x l'incrément de pip) + X,

Merci pour votre aide.

Dossiers :
mgrid_ea.mq4  10 kb
 

Aide recherchée attendre x-Bars

Bonjour à tous,

comment pouvez-vous programmer ce qui suit :

si on ferme le dernier ordre, attendre x-Bars pour ouvrir un nouvel ordre ?

Merci !

Salutations

derumuro

 

Compter les barres

J'essaie de faire en sorte que mon EA compte le nombre de barres dans une période donnée (c'est-à-dire les 20 dernières barres) qui ont clôturé à la hausse ou à la baisse. J'ai créé cette instruction while mais elle ne fonctionne pas, elle imprime toujours Bull Bars:0 Bear Bars:20. Avez-vous une idée de ce que je fais de mal ?

// Compter les barres haussières et baissières

double open, close ;

int bull_bars=0, bear_bars=0 ;

int bar_count=20 ; // Barres à compter

if(Volume[0] == 1){ // Vérifier uniquement l'ouverture d'une nouvelle barre

int bars=0 ;

while(bars < bar_count){

open=iOpen(NULL,0,bars) ;

close=iOpen(NULL,0,bars) ;

if(open<close){bull_bars++;} else {bear_bars++;}

barres++ ;

}

Print("Bull Bars : ", bull_bars, " Bear Bars : ", bear_bars) ;

}

 

Err, j'ai trouvé la solution. J'ai changé mon while en ceci et ça marche

while(bar_count > i){

open=iOpen(NULL,0,i) ;

close=iClose(NULL,0,i) ;

si (open<close){bull_bars++;}

if(open>close){bear_bars++;}

i++ ;

}

 

Besoin d'aide pour écrire un ea - Facteur de temps pour fermer l'ordre

si l'ordre a eu lieu, le take profit=100pips et le stop lost=100pips sont écrits dans l'ea,

Je voudrais écrire un facteur de temps supplémentaire (contrôle) pour clôturer l'ordre comme suit

dit que l'ordre est un ordre d'achat

-----------------------------

1) si dans la 1ère heure, une hausse soudaine du prix de 80 pips se produit en 10 minutes dans cette heure, fermez l'ordre ;

2) si en 2ème heure, une hausse soudaine du prix de 70 pips se produit en 10 minutes dans cette heure, fermez l'ordre ;

3) si en 3ème heure, une hausse soudaine de 60 pips se produit en 10 minutes dans cette heure, fermez l'ordre ;

4) si dans la 4ème heure, profit à 50 pips, ordre de fermeture ;

5) si dans la 1ère heure, une baisse soudaine du prix de 60 pips se produit en 10 minutes dans cette heure, ordre de fermeture ;

6) si dans la 2ème heure, une baisse soudaine du prix de 70 pips se produit dans 10 minutes dans cette heure, ordre de fermeture ;

7) si en 3ème heure, une baisse soudaine du prix de 80 pips se produit en 10 minutes dans cette heure, fermez l'ordre ;

8) si dans la 4ème heure, des pertes de 50 pips, ordre de fermeture ;

Quelqu'un peut-il m'aider à écrire ceci ? J'ai des difficultés à écrire le facteur temps dans l'ordre de clôture.

Merci

Rgds,

 

Salut les gars,

J'ai une question pour vous : savez-vous quel est le code à mettre dans un Expert Advisor pour fermer toutes les positions ouvertes à une heure donnée ? par exemple, j'ai 5 positions ouvertes et à 16 GMT, l'EA devrait fermer toutes les positions ouvertes et ne pas en ouvrir de nouvelles avant le lendemain.

Merci pour votre aide !

 

Salut mauro269,

if(Hour() = 16) fermer l'ordre ( GMT = 16 +/- Servertime, exemple 16 +1 = 17) ou voir https://www.mql5.com/en/code/8075

et

if(Hour() = 8) ouvrir un nouvel ordre

Voici plus d'informations : Documentation MQL4

Salutations

derumuro

 

Au toucher plutôt qu'à la fermeture

BBands_stop_v2 et ####Gann_HiLo_Activator_v2### - quelqu'un peut-il les améliorer ?

Il y a peu d'indicateurs qui changent leur tracé au toucher - mais plutôt la plupart attendent que le prix clôture au-delà de leur tracé actuel.

Les exceptions sont -

Le SAR parabolique en est une.

Bat ATR v2 en est une sur le bon réglage (en utilisant CloseBase=false).

Pour moi, cela signifie que la plupart des indicateurs sont moins fiables.

Plus le cadre temporel est grand, plus le risque est grand. Si vous attendez un signal clair, il se trouve souvent à l'autre extrémité d'un breakout. Si vous le prenez, c'est souvent la pire entrée.

Quelqu'un peut-il modifier BBands_stop_v2 et ###Gann_HiLo_Activator_v2### pour avoir un paramètre supplémentaire comme Bats_v2 (en utilisant CloseBase=false), afin qu'ils changent de tracé au toucher, s'il vous plaît ?

Les deux changements ci-dessus seraient un bon début - mais la liste des indicateurs qui, à mon avis, n'ont pas cette capacité est énorme

All_Bands_Stop

PriceChannel_Stop_v6.

Toutes les enveloppes de tendance.

TrendEnvelopes_v2.

MT4-LevelStop-Reverse-vB0-4.

#MT4-LevelStop-Reverse-vB0-4.

ATRStops_v1.1_MTF

ATRStops_v1.1

mtfatrstops

BrainTrend1stopline

BrainTrend2Stopline

ChandelierStops V1

VolitilityPivot

VoltyChannel_Stop_v2

delta-stop

hi-lo_mod

MTF_BrainTrend1

NRTRATRStops

VoltiChannels

etc

etc.....