Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 446

 
Artyom Trishkin:

Je ne comprends toujours pas : que voulez-vous trouver et afficher ? Simplement en mots - sans code.

Donc vous écrivez :

La question est : pourquoi le cherchez-vous sur la dixième barre ?


A la dixième mesure, je l'ai prise comme exemple.

J'ai besoin de fixer des points après 10 ou "N" barres après l'apparition de la flèche de l'indicateur appelé.

comme si je n'avais besoin de placer les points que sur la dixième barre, je le ferais de cette façon

 if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",1,i+10),Digits)!=EMPTY_VALUE
        {
         BufferDN[i+1]=high[i+1]+distance*MyPoint;

        }

Artyom Trishkin:

Et attachez l'indicateur entier, pas OnCalculate()

Il s'agit de la première option

#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
//--- plot UP
#property indicator_label1  "UP"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrLawnGreen
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot DN
#property indicator_label2  "DN"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrDeepPink
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1

//--- indicator buffers
double         BufferUP[];
double         BufferDN[];

int distance=5;
double MyPoint;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferUP);
   SetIndexBuffer(1,BufferDN);
//--- setting a code from the Wingdings charset as the property of PLOT_ARROW
   SetIndexArrow(0,233);
   SetIndexArrow(1,234);

//---
   if(Digits()==5 || Digits()==3){MyPoint=Point*10;} else{MyPoint=Point;}
  
   return(INIT_SUCCEEDED);
  }
   // int ila;
int    vspread,num_buy=0,num_sell=0;
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if(rates_total<2) return(0);
   int limit=rates_total-prev_calculated;
   if(limit>1) 
     {
      limit=rates_total-2;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--) 
     {
     for(int il=i+1;il<=i+300;il++)
        {
         if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE
            )
           {
            num_buy=il;
            //Print()
           // break;
           }
        }
//
      if(num_buy==60)
        {
         BufferUP[i+1]=low[i+1]-distance*MyPoint;
         
        }
    
     for(int ila=i+1;ila<=i+300;ila++)
        {
         if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",1,ila),Digits)!=EMPTY_VALUE
            )
           {
            num_sell=ila;
           // break;
           }
        }
      if(num_sell==10)
        {
         BufferDN[i+1]=high[i+1]+distance*MyPoint;

        }
     
      Comment(num_buy,"num_sell",num_sell);
     }
//--- return value of prev_calculated for next call

   return(rates_total);
  }
//
.
 

Globalement, je veux comparer le bas de la première barre avec la fractale supérieure"n" derrière la première flèche de l'indicateur appelé (premier tampon).

Et trouvez le prix maximal entre la première barre et la barre de la fractale trouvée.

La condition est la suivante : si le bas (+-10 points) de la première barre est égal au prix (que ce soit le premier) de la fractale derrière la flèche indicatrice et que le prix maximum entre la barre fractale et la première barre moins le prix de la fractale trouvée est supérieur à 50 points, alors mettez la flèche.

En fait, pour trouver la fractale, j'ai besoin du numéro de la barre où se trouve la flèche. Je veux examiner les fractales en partant de cette barre et en allant plus loin dans l'histoire.

Peut-être que je suis parti du mauvais endroit et que vous pouvez me donner une autre solution.

 
mila.com:

Globalement, je veux comparer le bas de la première barre avec la fractale supérieure"n" derrière la première flèche de l'indicateur appelé (premier tampon).

Et trouvez le prix maximal entre la première barre et la barre de la fractale trouvée.

La condition est la suivante : si le bas (+-10 points) de la première barre est égal au prix (que ce soit le premier) de la fractale derrière la flèche indicatrice et que le prix maximum entre la barre fractale et la première barre moins le prix de la fractale trouvée est supérieur à 50 points, alors mettez la flèche.

En fait, pour trouver la fractale, j'ai besoin du numéro de la barre où se trouve la flèche. Je veux regarder les fractales à partir de cette barre, puis revenir à l'historique.

Peut-être que je suis parti du mauvais endroit et que vous pouvez suggérer une autre façon de résoudre le problème.

Celui-ci devrait simplement mettre des points dans l'historique sur la distance en barres que vous avez définie dans les paramètres.

Par exemple, si vous définissez 10 barres, si l'indicateur personnalisé envoie un signal à gauche de l'indice du cycle pendant 10 barres, il fixera un point sur la barre actuelle (indice i) du cycle.

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
//--- plot UP
#property indicator_label1  "UP"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrLawnGreen
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot DN
#property indicator_label2  "DN"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrDeepPink
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- input parameters
input uint     InpNumberOfBars   =  10;   // Количество баров отступа
input int      InpDistance       =  5;    // Отступ в пунктах
//--- indicator buffers
double         BufferUP[];
double         BufferDN[];
//---
int            num_bars;
double         distance;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferUP);
   SetIndexBuffer(1,BufferDN);
//--- setting a code from the Wingdings charset as the property of PLOT_ARROW
   SetIndexArrow(0,233);
   SetIndexArrow(1,234);
//--- setting variables
   num_bars=(int)InpNumberOfBars+1;
   distance=InpDistance*Point();
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if(rates_total<num_bars) return(0);
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-num_bars-1;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--)   // 1000 - 11 - 1 = 999-11 = 988
     {
      double val_0=iCustom(NULL,0,"Arrow v.3",0,i+num_bars);   // rates_total=1000, i=988, val from 988+11=999
      double val_1=iCustom(NULL,0,"Arrow v.3",1,i+num_bars);   // rates_total=1000, i=988, val from 988+11=999
      if(val_0>0 && val_0<EMPTY_VALUE)
         BufferDN[i]=low[i]-distance;  // BufferDN[988]=val
      if(val_1>0 && val_1<EMPTY_VALUE)
         BufferUP[i]=high[i]+distance;
     }
//--- return value of prev_calculated for next call

   return(rates_total);
  }
//+------------------------------------------------------------------+
Cependant, "devoir" ne signifie pas que je doive le faire. Je l'ai bêtement dessiné sur mes genoux pendant que je dormais. Je ne peux pas le vérifier, je n'en ai pas un personnalisé. Tu sais...
 
Salutations. J'ai vraiment besoin d'aide. Quelqu'un connaît-il un script ou une méthode permettant de mettre en évidence les transactions dans l'historique des transactions, puis d'enregistrer ces sélections dans l'historique, par exemple : https://yadi.sk/d/7aHIs_vh3RxLvW ou ici :
https://yadi.sk/i/Ft8yNn1e3RxMEH - merci d'avance
Dossiers :
2.jpg  481 kb
3.jpg  708 kb
 
civic111:
Salutations. J'ai vraiment besoin d'aide. Quelqu'un connaît-il un script ou une méthode permettant de mettre en évidence les transactions dans l'historique des transactions et d'enregistrer ces sélections dans l'historique, comme https://yadi.sk/d/7aHIs_vh3RxLvW ou ici :
https://yadi.sk/i/Ft8yNn1e3RxMEH - merci d'avance

Est-ce que c'est la façon


pour mettre les photos ?

 
civic111:
Salutations. J'ai vraiment besoin d'aide. Peut-être quelqu'un connaît-il un script ou une méthode permettant de sélectionner certaines transactions dans l'historique des transactions et de sauvegarder ces sélections dans l'historique, par exemple : https://yadi.sk/d/7aHIs_vh3RxLvW ou ici :
https://yadi.sk/i/Ft8yNn1e3RxMEH - merci d'avance

Dans le panneau standard - pas question.

Mais CodeBase ou (peut-être) Market devraient avoir des outils pour travailler avec l'historique des commandes. Ou, comme alternative, vous pouvez le faire vous-même ou demander un freelance "panneau d'historique des commandes alternatives avec blackjack et devs" :-)

Ou tout simplement, exporter en CSV et utiliser ensuite Excel pour analyser l'historique qu'il contient.

 

veuillez fermer le poste

J'ai besoin d'une machine à sous gratuite

 
Le développeur Hooshang Nosratpanah a confirmé l'étape "Acceptation du travail".
 
اه مو مشكلة
يعني ممكن صفقة شرا لم تحق هدفها فلذلك مكن تعزيزها بصفقة اخرى شراء اذا اعطى الاكسبيرت اشارة بذلك
 
انا اعتقد ان كل مسافه معينه افضل
لان ممكن نفتح شرا و السعر ينزل ويجيب اشاره بيع
ويفضل علي البيع كتير وينزلجامد واتحين كل دا صفق واحده بس شرا ومنتظرين اشاره شرا تانيه عشان بل وت اكبر
Raison: