Comment coder ? - page 15

 

Coder Needed !

Pour tous les programmeurs d'autres là, j'ai besoin de vous aider à coder ou faire pour moi EA pour mon commerce. Je n'ai pas d'expérience en matière d'EA donc j'ai besoin de vous.

L'EA :

LWMA - 5 (fermeture)

SMA - 8 (clôture)

Acheter - quand les deux lignes se croisent, attendre la prochaine barre et déclencher automatiquement. Même chose pour la vente à découvert.

Stoploss - 30

Takeprofit - 30

Trailstop - 15

J'ai besoin d'aide.

Merci.

 
Sinar FX:
Pour tous les programmeurs d'autres là, j'ai besoin de vous aider à coder ou faire pour moi EA pour mon commerce. Je n'ai pas d'expérience en matière d'EA, j'ai donc besoin de vous.

L'EA :

LWMA - 5 (clôture)

SMA - 8 (clôture)

Acheter - lorsque les deux lignes se croisent, attendre la prochaine barre et déclencher automatiquement. Même chose pour la vente à découvert.

Stoploss - 30

Takeprofit - 30

Trailstop - 15

J'ai besoin d'aide.

Merci.

Quel cadre temporel ?

 

S'il vous plaît, aidez-moi à comprendre le code de l'indicateur personnalisé

Bonjour, je suis un nouveau venu dans MQL4. J'ai remarqué que de nombreux indicateurs personnalisés contiennent les lignes suivantes pour préparer la boucle de comptage des barres :

int counted_bars = IndicatorCounted() ;

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

si( counted_bars > 0 ) counted_bars-- ;

int limit = Bars - counted_bars ;

for(int i=0 ; i<limit ; i++)

Selon le tutoriel de metatrader.info, counted_bars = IndicatorCounted() calculera counted_bars comme 0 au premier lancement de l'indicateur. "Après cela, ce sera le nombre total de barres sur le graphique moins un". Après quoi ? Après le premier lancement ? Dois-je lancer l'indicateur deux fois pour qu'il fonctionne ? Le manuel de référence de MQL4 n'est pas beaucoup plus clair non plus : "IndicatorCounted() renvoie le nombre de barres qui n'a pas changé après le dernier lancement de l'indicateur. Dans la plupart des cas, il n'est pas nécessaire de recalculer le même nombre de valeurs d'indice. Utilisé pour optimiser les calculs".

Ensuite, il y a Bars, qui est "le nombre de barres sur le graphique". Pourquoi ne pas utiliser simplement la boucle suivante pour compter les barres :

for(int i=1;i<=Bars;i++)

Je comprendrais si quelqu'un pouvait expliquer en clair ce qui se passe exactement dans

int counted_bars = IndicatorCounted() ;

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

si( counted_bars > 0 ) counted_bars-- ;

int limit = Bars - counted_bars ;

for(int i=0 ; i<limit ; i++)

et dans quel sens les barres sont comptées : en avant (de la barre la plus ancienne à la plus récente) ou en arrière ? Merci en avdance !

 

Voyez si cet article peut vous aider.

https://www.mql5.com/en/articles/1497

bonne chance.

 

Merci, Maji. Ca m'a aidé. Corrigez-moi si je me trompe :

1. IndicatorCounted est utile dans les graphiques dont les barres sont mises à jour en temps réel. Ainsi, au lieu de recalculer les valeurs des indicateurs pour toutes les barres lorsqu'une nouvelle barre apparaît, seule la valeur de l'indicateur pour cette nouvelle barre est calculée.

2. La "limite" est simplement le nombre de nouvelles barres pour lesquelles l'indicateur doit être calculé.

3. L'indice de l'indicateur compte les barres à rebours, avec i=0 indiquant la nouvelle barre (actuelle).

Je suppose que ma confusion était basée sur mon expérience antérieure avec Wealth-Lab, où le code d'un indicateur est écrit de telle sorte que les valeurs de l'indicateur sont calculées pour toutes les barres, même si seules les nouvelles barres doivent être calculées. Cependant, Wealth-Lab est doté d'une certaine intelligence intégrée et il est possible que les indicateurs soient automatiquement recalculés pour les nouvelles barres uniquement. J'ai l'impression que MQL4 ne veut pas prendre de telles décisions à votre place et vous les laisse en vous obligeant à effectuer des étapes de programmation supplémentaires. En fait, j'aime cela car je déteste toujours qu'un logiciel prenne des décisions à votre place et que ces décisions ne soient pas les mêmes que les vôtres. Mon seul problème avec MQL4 est que j'aurais aimé qu'il ait une meilleure documentation.

 

fiqe,

Je pense que vos hypothèses sont justes. Je pense que MT4 a raison de ne calculer les indicateurs qu'une seule fois et que les ressources de WL hogs le font dans l'autre sens.

Je me trompe peut-être, et j'espère que d'autres personnes plus compétentes pourront nous corriger tous les deux.

 
 

Nick,

Vérifiez votre courrier électronique. Je vous y ai envoyé un exemple.

Tenez-moi au courant.

Maji

 

OK, je pense que vous pouvez le faire comme ça :

Tout d'abord, vous devez indiquer l'heure à laquelle vous cherchez - si votre courtier est à l'heure GMT+3, alors pour compter les Pivots à l'heure GMT, vous devez décrémenter l'heure du courtier par 3. Donc, si vous cherchez l'heure 00.00, vous chercherez 21.00 à l'heure de votre courtier.

Maintenant, un jour correspond à 24 heures et nous commençons à chercher dans la partie droite de l'écran. L'heure de votre courtier est +3, nous allons donc ajouter ce chiffre à la valeur du décalage.

for(int i = 3 ; i <= 27 ; i++)

{

if(TimeHour(Time)==21)

{

//This should be your GMT midnight so u can take OHLC values from here

double open = iOpen(Symbol(),60,i);

double high = iHigh(Symbol(),60,i);

double low = iLow(Symbol(),60,i);

double close = iClose(Symbol(),60,i);

}

}

Je ne sais pas si c'est une méthode simple, mais elle fonctionne.

 

Bonjour,

Dans la dernière version de SimpleDailyRangeBreakoutExpert vous pouvez trouver le code pour faire des bougies (OHLC) pour n'importe quel fuseau horaire.