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

 
Artyom Trishkin:
Vérifiez donc le nombre de positions ouvertes sur la bougie zéro M15. Si vous avez déjà une position et qu'elle est ouverte sur une bougie nulle M15, alors n'en ouvrez pas d'autres.
Je ne m'y connais pas beaucoup en programmation, mais ce module traite de ce sujet
b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }
Mais le problème est que lorsque l'ordre est fermé par le SL ou le TP, le prochain signal à M15 l'ouvrira à nouveau.
 
customer03:
Je ne suis pas très bon en programmation, mais ce module le fait
b=0;
       }
Mais le problème est que lorsque l'ordre est fermé par le SL ou le TP, le prochain signal sur M15 l'ouvrira à nouveau.

Essayer de faire un contrôle pour une nouvelle barre sur H1

b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }

      
if(  stM1 <= 20 && stM0 > 20  && stH0 > 70  && b==0   && opp != iTime(_Symbol,PERIOD_H1,0)) // покупка
      {
       opp = iTime(_Symbol,PERIOD_H1,0);

    RefreshRates();
    op = Ask;
 
Vitaly Muzichenko:

Essayez un nouveau contrôle de barre sur H1

b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }

      
if(  stM1 <= 20 && stM0 > 20  && stH0 > 70  && b==0   && opp != iTime(_Symbol,PERIOD_H1,0)) // покупка
      {
       opp = iTime(_Symbol,PERIOD_H1,0);

    RefreshRates();
    op = Ask;
Je l'ai essayé, mais aucun changement.
 
customer03:
Je ne suis pas très doué en programmation, mais ce module fait cela
b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }
Mais lorsque l'ordre est fermé par le SL ou le TP, le prochain signal sur M15 l'ouvrira à nouveau.

Non, ce n'est pas du tout ce que fait ce bout de code.

Vous devez vérifier que la barre d'ouverture de position sur la période M15 n'est pas égale à zéro - alors vous pouvez ouvrir une position :

if(iBarShift(Symbol(),PERIOD_M15,OrderOpenTime())!=0)
  {
   // код открытия позиции
  }
 

Bonjour ! Aidez-moi avec les cours, qu'est-ce que je fais mal ?

classe ASD
{
privé :
// Les variables et les fonctions disponibles uniquement à l'intérieur de la classe se trouvent ici.
int c (int m_a,int m_b)
{ int m_d = m_a+m_b;}

public :
void d (int a,int b )
{
m_a=a+b ;
}
// Les variables et les fonctions disponibles en dehors de la classe se trouvent ici.
} ;
 
Vikon:

Bonjour ! Aidez-moi avec les cours, qu'est-ce que je fais mal ?

classe ASD
{
privé :
// Les variables et les fonctions disponibles uniquement à l'intérieur de la classe se trouvent ici.
int c (int m_a,int m_b)
{ int m_d = m_a+m_b;}

public :
void d (int a,int b )
{
m_a=a+b ;
}
// Les variables et les fonctions disponibles en dehors de la classe se trouvent ici.
} ;
Commencez par lire l'article.
 
Artyom Trishkin:
Commencez par lire l'article.

Je le lis, mais je n'y arrive pas.

Voilà ce que j'obtiens :

classe :

class ASD

  {

private:

   // Здесь располагаются переменные и функции, доступные только внутри класса

   int c(int m_a,int m_b)

     {
      m_a=a+b; m_b=a-b;

      int m_d=m_a+m_b;

      d=m_d;

      return(c(m_a,m_b));
     }

public:

   int               a;

   int               b;

   int               d;

  };

script :

#include <ASD.mqh>


ASD ar;
//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

void OnStart()

  {

   ar.a=1;

   ar.b=3;

   Alert(ar.d);

  }
//+------------------------------------------------------------------+

Alert donne zéro. Qu'est-ce qu'il y a ?

 
Vikon:

Je le lis, mais je n'y arrive pas.

Voilà ce que j'obtiens :

classe :


Alert donne zéro. Qu'est-ce qu'il y a ?

Est-il difficile d'insérer le code via le bouton SRC ?

J'ai inséré le code correct pour vous.

 
Vikon:

Je le lis, mais je n'y arrive pas.

Voilà ce que j'obtiens :

classe :

class ASD

  {

private:

   // Здесь располагаются переменные и функции, доступные только внутри класса

   int c(int m_a,int m_b)

     {
      m_a=a+b; m_b=a-b;

      int m_d=m_a+m_b;

      d=m_d;

      return(c(m_a,m_b));
     }

public:

   int               a;

   int               b;

   int               d;

  };

script :

#include <ASD.mqh>


ASD ar;
//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

void OnStart()

  {

   ar.a=1;

   ar.b=3;

   Alert(ar.d);

  }
//+------------------------------------------------------------------+

Alert donne zéro. Qu'est-ce qu'il y a ?

À l'intérieur de la classe, faites des impressions sur les valeurs. Et regardez ensuite dans le journal ce qui sera imprimé lorsque vous exécuterez le script ;)
 
Artyom Trishkin:
À l'intérieur de la classe, effectuez des impressions sur les valeurs. Et regardez ensuite dans le journal ce qui sera imprimé lorsque le script s'exécutera ;)
Les impressions ne peuvent être insérées que dans une fonction, mais je ne comprends pas comment appeler cette fonction pour que l'impression ou l'alerte fonctionne. Pouvez-vous m'aider à corriger mon code avec trois simples variables ??? Je fais tout comme décrit dans l'article, mais l'éditeur ne l'accepte pas ou il manque quelque chose, en tout cas un mur, c'est pourquoi je demande de l'aide. Merci pour SKC.
Raison: