Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 684
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Il y a l'indicateur MA. Et il existe un indicateur HMA similaire à celui-ci. Comment l'insérer dans un EA ? Copier complètement le code ? Ou existe-t-il une variante plus courte ?
étude iCustom
L'idée est très bonne, mais avez-vous vu de tels programmes ici qui transféreraient ou copieraient des transactions vers d'autres terminaux.serait-il possible de le faire bien sans les services d'un courtier ?
Un tel programme?
Il y a l'indicateur MA. Et il existe un indicateur HMA similaire à celui-ci. Comment l'insérer dans un EA ? Copier complètement le code ? Ou existe-t-il une variante plus courte ?
Bonjour à tous, j'ai un problème, j'ai "perdu" cet indicateur, c'est une sorte de CCI lissé, qui pouvait changer deux paramètres, la période et un multiplicateur. Dans la version originale, ces paramètres étaient respectivement 20 et 2. Et, si je me souviens bien, le nom de cet indicateur était composé de deux mots et le deuxième mot commençait par la lettre anglaise "C".
Mais en général, bien sûr, vous pouvez surcharger le constructeur et l'utiliser à la place de Init(), après tout, c'est la même fonction. La variante sur laquelle s'appuyer est une affaire personnelle de chacun, en matière de goût, comme nous le savons, il n'y a pas de conseillers).
Et si l'initialisation échoue, en cas d'utilisation de la méthode, par exemple, Init(), on peut la décrire comme renvoyant une valeur du type correspondant et renvoyant une valeur appropriée en cas d'erreur. Le code appelant saura donc que l'initialisation a échoué, et que l'objet ne peut donc pas être utilisé. Comment le code appelant est-il informé de l'échec de l'initialisation lorsque le constructeur est utilisé ?
Aidez les gars, comment faire pour que le hibou n'ouvre pas un ordre sur la même barre que la position a été ouverte par un signal, et d'attendre une nouvelle barre et de vérifier le signal à nouveau, je l'ai fait - barre par barre
ajouté ceci
и -Aidez les gars, comment faire pour que le hibou n'ouvre pas un ordre sur la même barre que la position a été ouverte par un signal, et d'attendre une nouvelle barre et de vérifier le signal à nouveau, je l'ai fait - barre par barre
ajouté ceci
и -Quelque chose comme ça :
Quelque chose comme ça :
Merci, serait-il facile de déchiffrer les lignes prescrites pour l'exemple ? L'ordre sélectionné est ouvert à la barre zéro (actuelle), il est donc trop tôt pour ouvrir la suivante.
//l' ordre sélectionné n'est pas ouvert sur la barre zéro (actuelle), ce qui signifie qu'il est OK pour ouvrir la suivante ...... ???
Merci, serait-il possible de déchiffrer les lignes prescrites pour l'exemple ?--//Selected order opened on zero (current) bar, so it is too early to open the next one
//l'ordre sélectionné n'est pas ouvert sur la barre zéro (actuelle), ce qui signifie qu'il est OK pour ouvrir la suivante ...... ???
C'est la fonction qui renvoie la barre d'ouverture de la dernière position ouverte :
Si la fonction renvoie -1, alors il n'y a pas de position ouverte dont les données ont été transmises à la fonction.
Exemple d'utilisation :
ou
Connaisseurs, veuillez demander votre aide...
algorithme test01
//+------------------------------------------------------------------+ //test //+------------------------------------------------------------------+ #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 clrGold #property indicator_color2 clrBlue #property indicator_level1 0 //--- indicator buffers double Buf0[]; double Buf1[]; double t1[]; double t2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { IndicatorBuffers(4); SetIndexBuffer(0,Buf0); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(1,Buf1); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(2,t1); SetIndexBuffer(3,t2); //--- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i,counted_bars; counted_bars=IndicatorCounted(); i=Bars-counted_bars-1; int sr=24,n; double sum,sum2; double m1,m2; while(i>=0) { sum=0; sum2=0; for(n=i; n<=i+sr-1; n++) { if(Open[i]>Open[i+1]) m1=sum=sum+Close[i]-Close[n]; if(Open[i]<Open[i+1]) m2=sum=sum+Close[i]-Close[n]; if(Open[i]>Open[i+1]) t1[i]=sum2=sum2+Close[i]-Close[n]; if(Open[i]<Open[i+1]) t2[i]=sum2=sum2+Close[i]-Close[n]; } Buf0[i]=(m1+m2)/sr; Buf1[i]=(t1[i]+t2[i])/sr; i--; } return(0); } //+------------------------------------------------------------------+
pourquoi dans Buf1 il y a des valeurs différentes de Buf0 ? logiquement elles devraient être les mêmes ?
pourquoi est-il possible d'utiliser une variable pour une valeur, mais un tampon (tableau de données)--> (un tableau est nécessaire pour les calculs ultérieurs) pour une autre valeur ? comment puis-je utiliser un tableau ainsi que des variables m1 et m2 ?