[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 308
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
Cela pourrait être utile. Cela fonctionne bien !
Dans le méta-éditeur, appuyez sur F5 pour compiler.
Important : L'éditeur de méta doit être exécuté à partir du même dossier que le terminal.
Alex, tu es là pour moi ? Je suis nouveau sur mql4 et j'essaie de comprendre ce code.
#property indicator_chart_window
#property indicator_buffers 2
extern int TimeFrame=0;//Si=0, alors l'actuelle.
extern int Distanse=0;//distance de la ligne de la fractale en points
extern string FrApNam="Ap";//nom de la ligne correspondant à la fractale vers le haut.
extern string FrDnNam="Dn";//nom de la ligne selon la fractale vers le bas.
extern color ClAp=Blue;//color line correspond à Fractal upwards.
extern color ClDn=Red;//couleur de la ligne selon Fractal Down.
extern bool comment=true;//permission de commenter
//-----------------------------------------------------------------------------+
double FrPrise,znach1,znach2 ;
double FrApPrise=0,FrDnPrise=0 ;
double ind_buffer1[] ;
double ind_buffer2[] ;
//+----------------------------------------------------------------------------+
void init()
{if(TimeFrame==0){TimeFrame=Period();}
SetIndexBuffer(0,ind_buffer1);//Buffer
SetIndexBuffer(1,ind_buffer2) ;
retour;}
void deinit(){
retour;}
//+----------------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted() ;
int limite ;
double tmp ;
int i, j, k ;
si(counted_bars<0) return(-1) ;
si(counted_bars>0) counted_bars-- ;
limit=Bars-counted_bars ;
//-----------------------------------------------------------------------------+
LineAp() ;
LineDn() ;
double FAP=NormalizeDouble((FrApPrise-Distanse*Point),5);//Normalize
double FDP=NormaliserDouble((FrDnPrise+Distanse*Point),5) ;
int diap=MathRound((FrApPrise-FrDnPrise)/Point) ;
ind_buffer1[0]=FAP ;
ind_buffer2[1]=FDP ;
Comment("TimeFrame="+TimeFrame+
"\nApPrise =",FAP,
"\nDnPrise =",FDP,
"Canal nFractal ="
,diap+"Point") ;
retour(0) ;
}
//-----------------------------------------------------------------------------+
// recherche une ligne horizontale par son nom, redessine si le prix change |
//-----------------------------------------------------------------------------+
void LineDn(){
FrPrise=NormaliserDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS)) ;
FrPrise=NormalizeDouble(FrPrise-Distance*Point,MarketInfo(Symbol(),MODE_DIGITS)) ;
//Commentaire(FrPrise) ;
if(ObjectFind(FrDnNam)==0){
if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrDnPrise=FrPrise ;
ObjectDelete(FrDnNam) ;
SetHLine(ClDn,FrDnNam,FrDnPrise,0,1) ;
WindowRedraw() ;
retour;}
//-----------------------------------------------------------------------------+
// recherche une ligne horizontale par nom, redessine si le prix a changé |
//-----------------------------------------------------------------------------+
void LineAp(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS)) ;
FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS)) ;
if(ObjectFind(FrApNam)==0){
if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrApPrise=FrPrise ;
ObjectDelete(FrApNam) ;
SetHLine(ClAp,FrApNam,FrApPrise,0,1) ;
WindowRedraw() ;
retour;}
//-----------------------------------------------------------------------------+
//| Description : Recherche de la fractale la plus proche. Renvoie un niveau de prix. |
//+----------------------------------------------------------------------------+
//| Paramètres : |
//| sy - nom de l'instrument ("" ou NULL - symbole courant) |
//| tf - timeframe ( 0 - TF actuel) |
//| mode - type de fractale (MODE_LOWER|MODE_UPPER) |
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
si (sy=="" || sy=="0") sy=Symbole() ;
double f=0 ;
int d=MarketInfo(sy, MODE_DIGITS), s ;
if (d==0) if (StringFind(sy, "JPY"<0) d=4 ; else d=2 ;
for (s=2 ; s<100 ; s++) {
f=iFractals(sy, tf, mode, s) ;
si (f!=0) return(NormalizeDouble(f, d))
}
Print("FindNearFractal() : Fractal non trouvé") ;
retour(0) ;
}
//+----------------------------------------------------------------------------+
//| Description : Définir l'objet OBJ_HLINE ligne horizontale.
//+----------------------------------------------------------------------------+
//| Paramètres : |
//| cl - couleur de la ligne
//| nm - nom ("" - heure d'ouverture de la barre actuelle) |
//| p1 - niveau des prix (0 - Bid) |
//| st - style de ligne (0 - ligne simple) | |
//| wd - largeur de ligne (0 - par défaut) | |
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
if (nm=="") nm=DoubleToStr(Time[0], 0) ;
si (p1<=0) p1=Bid ;
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0 ;)
ObjectSet(nm, OBJPROP_PRICE1, p1) ;
ObjectSet(nm, OBJPROP_COLOR , cl) ;
ObjectSet(nm, OBJPROP_STYLE , st) ;
ObjectSet(nm, OBJPROP_WIDTH , wd) ;
}
Il est nécessaire d'écrire un Expert Advisor pour cet indicateur qui passerait le prix supérieur et inférieur sur les délais М1 et М5.
Alex, tu es là pour moi ? Je suis nouveau sur mql4 et j'essaie de comprendre ce code.
Monsieur, est-ce que quelqu'un comprend comment passer des valeurs d'un indicateur à un EA ? J'ai besoin d'aide, je ne le comprends pas moi-même, juste un moment et puis c'est fini. https://forum.mql4.com/ru/52892/page308 palomnik 23.04.2013 09:56
1. Par le biais d'une variable globale.
2. Via le dossier.
3. via iCustom().
4. Via des variables graphiques globales.
5. Cartographie. Vous pouvez transférer des données d'un terminal à un autre. Ou dans un terminal pour transférer des données d'une fenêtre à une autre sans limitation des variables globales de MT4.