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

 
Artyom Trishkin:

Avant OrderModify(), imprimez les valeurs du prix d'ouverture et du nouveau prix stop.

Et gardez votre "non ?" irrespectueux pour vous si vous voulez de l'aide. Cependant, j'ai posté un modèle entièrement fonctionnel pour tout chalut dans ce fil - vous pouvez le consulter.

un "n'a pas" irrespectueux ? - Désolé, je n'ai rien mis dedans.

 
        if((fMarketOrderss(OP_SELL)>=1)) { 
       if( ((Bid-Opens)/ma+Times/1440) > SELL ) {
if(OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0,NULL,321,0,1)>0){} }}

Veuillez me conseiller ! Quelle fonction faut-il ajouter pour remplacer VENDRE par des numéros qui vont dans l'ordre. S'il y a un accord ouvert, mettez 1. Dès que ce marché sera ouvert, il en donnera 2 et ainsi de suite. S'il n'y a pas de transactions, ce nombre sera remis à zéro.

 
Artyom Trishkin:

Avant OrderModify(), imprimez les valeurs du prix d'ouverture et du nouveau prix stop.

Il imprime les mêmes valeurs. Pourquoi vérifie-t-on != alors, pouvez-vous me le dire ?

 
Andrey Sokolov:

Ecrit les mêmes valeurs. Pourquoi vérifie-t-on != alors, pouvez-vous me le dire ?

Lisez sur la comparaison de nombres réels.

 
Artyom Trishkin:

Lisez sur la comparaison de nombres réels.

Je vais lire. Merci
 
Andrey Sokolov:
Je vais lire. Merci

Ne vous contentez pas de comparer, mais vérifiez "n'est-il pas temps de bouger ?", c'est-à-dire n'est-il pas moins que nécessaire "n>=p".

 
Vitaly Muzichenko:

Ne vous contentez pas de comparer, mais vérifiez si "il n'est pas temps de bouger", c'est-à-dire si "n>=p" n'est pas inférieur à ce qui est nécessaire.

Merci
 
Bonjour, j'ai un indicateur de niveaux de couleur, j'ai un problème lorsque j'essaie d'appliquer 2 parties de cet indicateur sur un graphique, à savoir la fenêtre du 1er indicateur disparaît et seule la fenêtre du 2ème indicateur est affichée, et lorsque je clique pour créer un objet - un rectangle, 2 objets sont créés, un à partir d'un indicateur et l'autre à partir d'un autre. Veuillez me conseiller sur la manière de le corriger, afin que plusieurs parties de cet indicateur puissent être utilisées dans le graphique, et que les objets puissent être créés correctement ? Puis-je changer quelque chose dans le code ou vice versa ?Exemple
Dossiers :
 

J'ai assemblé l'indicateur du mieux que j'ai pu
Besoin d'aide pour mettre en évidence les barres, par exemple un rectangle, lorsque les indices sont dans une zone de +/- 0,4%.
Ou au moins le code lui-même
Mon code indicateur

//+------------------------------------------------------------------+
//|                           Copyright © 2018, forex-time@mail.ru   |
//|                        Copyright © 2018, mr.aliaksei@yandex.ru   |
//|                                         % Алексея Королькова.mq4 |
//+------------------------------------------------------------------+
#property copyright   "Copyright © 2018, forex-time@mail.ru"
#property copyright   "Copyright © 2018, mr.aliaksei@yandex.ru"
#property link        "http://axe44.opentraders.ru/bio/"
#property version     "1.10"
#property strict 
//+------------------------------------------------------------------+
//--- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  LimeGreen
#property  indicator_color2  Red
#property  indicator_color3  Blue
#property  indicator_width1  2
#property  indicator_width2  2
#property  indicator_width3  2
#property  indicator_level1  0.0
#property  indicator_levelcolor DarkGray
//--- indicator parameters
input int InpFastEMA=14;   // Fast EMA Period
input int Metod     =1;   // Metod EMA Period 0-3
input string Pereferics="";// Переферикс после названия основной пары. Например EURUSD.m где переферикс .m
//--- indicator buffers
double Buffer1[];
double Buffer2[];
double Buffer3[];
//--- right input parameters flag
bool   ExtParameters=false;
string IndName= "% A.K ("+IntegerToString(InpFastEMA)+")";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
   IndicatorDigits(Digits+1);
//--- drawing settings
   SetIndexBuffer(0,Buffer1);SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(1,Buffer2);SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(2,Buffer3);SetIndexStyle(2,DRAW_LINE);

//--- name for DataWindow and indicator subwindow label
   IndicatorShortName(IndName);
//--- check for input parameters
   if(InpFastEMA<=1  )
     {
      Print("Wrong input parameters");
      ExtParameters=false;
      return(INIT_FAILED);
     }
   else
      ExtParameters=true;
//--- initialization done
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
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[])
  {
    int i = rates_total-prev_calculated-1;

    while(i >= 0)  
      {
      double eurusd=(((iMA("EURUSD"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("EURUSD"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double eurjpy=(((iMA("EURJPY"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("EURJPY"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double usdjpy=(((iMA("USDJPY"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("USDJPY"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double eur=(eurusd+eurjpy)/2;
      double usd=(-eurusd+usdjpy)/2;
      double jpy=-(usdjpy+eurjpy)/2;
      Buffer1[i]=ND(eur,1);
      Buffer2[i]=ND(usd,1);
      Buffer3[i]=ND(jpy,1);

      Pair(IndName+"EUR","EUR",54,indicator_color1);
      Pair(IndName+"USD","USD",28,indicator_color2);
      Pair(IndName+"JPY","JPY",5,Blue);
                  
      i--;}
return(rates_total);}
//+------------------------------------------------------------------+
//|ND - нормализация числа                                           |
//-------------------------------------------------------------------+
double ND(double value, int digits) {  
      return(NormalizeDouble(value, digits));}  
//+------------------------------------------------------------------+
void Pair(string name,string txt, int shift, color col){
      int window=WindowFind(IndName);
      //если окно не найдено - "текстовые метки" будут созданы в окне графика
      if(window<0) window=0;
       ObjectCreate(name,OBJ_LABEL,window,0,0,0,0,0,0);
          ObjectSet(name,OBJPROP_CORNER,0);
          ObjectSet(name,OBJPROP_XDISTANCE,shift);
          ObjectSet(name,OBJPROP_YDISTANCE,2);
          ObjectSet(name,OBJPROP_CORNER,CORNER_RIGHT_UPPER);
      ObjectSetText(name,txt,8,"Arial",col);}
//+------------------------------------------------------------------+

Le code m'a été recommandé, mais je ne sais pas comment le joindre :

ObjectCreate(VLINE, OBJ_VLINE, 0, 0, 0);
ObjectSet(VLINE, OBJPROP_COLOR, VLINE_COLOR);
ObjectSet(VLINE, OBJPROP_STYLE, VLINE_STYLE);

ObjectDelete(VLINE);

if(Bf<0.4 && Bf>(-0.4))
ObjectSet(VLINE, VLINE, VLINE);

Merci d'avance.

 
Est-il possible, au lieu de
High/Low>1.02 do
Haut>Bas*1.02
Quelle option est la meilleure pour l'indicateur
Raison: