[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 198
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
Jetez un coup d'œil ici .
Merci beaucoup SK, Vinin !
Un excellent exemple pour le travail en commun.
Ça devait valoir la peine de se donner du mal pour être si sophistiqué. :-)
On dirait que MQL4 sait comment "rentabiliser" le temps du programmeur. :-)
Regardez ici .
Merci, article très utile.
Merci beaucoup SK, Vinin !
Merci, article très utile.
Si ce sujet vous intéresse, jetez un coup d'œil à cet article http://www.forextrade.ru/mqlabs/sozdaniie-indikatora-kaghi.
Il aborde de nombreux détails pour les lignes horizontales, et montre la solution technique (alternance).
Les lignes verticales sont également illustrées. Mais je n'ai toujours pas compris certaines des règles. Par exemple, il suffit de changer la parité des tampons ind., au fur et à mesure que l'image oscille (bloc 4-5, changer les numéros des tampons de 6 et 7 à 5 et 6, et rendre le 5e 7m).
Quel est l'ordre des indicateurs et des experts ?
J'ai 2 indicateurs sur un graphique.
Et dans l'ensemble, leur temps d'exécution est parfois beaucoup plus long que le temps entre les ticks.
Quel indicateur est exécuté en premier ?
Si elles ne sont pas exécutées en parallèle, il est peut-être raisonnable de les placer dans des graphiques différents, bien sûr, s'il n'y a pas d'ordre d'exécution dans des graphiques différents.
Quel indicateur ou conseiller expert est exécuté en premier s'ils sont sur le même graphique, et s'ils sont sur des graphiques différents ?
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i] ;
Ça ne marche pas.
S'il vous plaît, dites-moi ce qu'il faut faire. Je ne sais pas quoi faire.
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i] ;
Ça ne marche pas.
S'il vous plaît, dites-moi ce qu'il faut faire. Je n'arrive pas à comprendre.
>> Que faire ? >> Afficher tous les codes!
Que faire ? Montrez le code à tous!
//+------------------------------------------------------------------+
//| Momentum.mq4 |
//| Droits d'auteur © 2004, MetaQuotes Software Corp.
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp.
#lien de propriété "http://www.metaquotes.net/"
#propriété indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- paramètres d'entrée
extern int MomPeriod=14 ;
int ret ;
double x[] ;
//---- tampons
double MomBuffer[] ;
double ocfor[] ;
double octen[] ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
string short_name ;
//---- ligne d'indicateurs
SetIndexStyle(0,DRAW_LINE) ;
SetIndexBuffer(0,MomBuffer) ;
//---- nom pour le DataWindow et l'étiquette de la sous-fenêtre de l'indicateur
short_name="Maman("+MomPeriod+")" ;
IndicatorShortName(nom_court) ;
SetIndexLabel(0,short_name) ;
//----
SetIndexDrawBegin(0,MomPeriod) ;
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| Momentum |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted() ;
//----
si(Bars<=MomPeriod) return(0) ;
//----
i=Bars ;
while(i>=0)
{
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i] ;
i-- ;
}
retour(0) ;
}
//+------------------------------------------------------------------+
Si vous remplacez Double x[] ; par Double x ;, tout fonctionne, mais le but est d'assigner mombuffer[i]= x[i]
.
.
int start()
{
int i,counted_bars=IndicatorCounted() ;
//----
si(Bars<=MomPeriod) return(0) ;
//----
i=Bars ;
ArrayResize(x, i+1) ;
while(i>=0)
{
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i] ;
i-- ;
}
retour(0) ;
}
Si vous remplacez Double x[] ; par Double x ;, tout fonctionne, mais le but est d'assigner mombuffer[i]= x[i].
Vous avez déclaré un tableau mais n'avez pas alloué de mémoire pour celui-ci.
Vinin a donné une façon d'allouer la mémoire, vous pouvez utiliser la seconde, à travers la fonction ArrayResize()