Qu'est-ce qu'il y a de mal à ça ? - page 3

 

Veuillez me dire pourquoi ce script n'ouvre pas les transactions et affiche l'erreur 0, c'est-à-dire qu'il n'y a pas d'erreur, mais il n'ouvre pas les transactions.

extern int MagicNumber = 10001;
extern double Lots = 0.1;
extern double StopLoss = 50;
extern double TakeProfit = 50;
extern int TrailingStop = 25;
extern int Slippage = 3;
//+------------------------------------------------------------------+
//    expert start function
//+------------------------------------------------------------------+
int start()
{
  double MyPoint=Point;
  if(Digits==3 || Digits==5) MyPoint=Point*10;
  
  double StochMain = iStochastic(NULL,0,7,10,4,MODE_LWMA,1,MODE_MAIN,0);
  double StochSignal = iStochastic(NULL,0,7,10,4,MODE_LWMA,1,MODE_SIGNAL,0);
  double MaSi = iMA(NULL,0,100,0,MODE_EMA,PRICE_CLOSE,0);
  
  if( TotalOrdersCount()==0 ) 
  {
     if((StochMain > StochSignal)&&(Close[1] > MaSi)) // Here is your open buy rule
     {
     OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask+StopLoss*MyPoint,Ask+TakeProfit*MyPoint,"Открыта сделка на покупку!!",MagicNumber,0,Yellow);
     }
     else
     {
        if(GetLastError() != 0)
        Alert("Ошибка ",GetLastError());
     }
  }
  
 
Je pense que votre stoploss est plus grand que le prix d'ouverture.
 
Exact, et il n'y a pas d'erreur.
 

Dites-moi comment déchiffrer ça, je ne comprends pas comment cette pièce fonctionne.

    for(int cnt=0;cnt<OrdersTotal();cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

Donc d'abord nous mettons la variable cnt à 0

Ensuite, si le nombre de commandes est supérieur à 0, OrderSelect est déclenché.

Mais à quoi sert cette même variable cnt avec la valeur 0?

 OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
 
Essayez de lire simplement la fonction et tout deviendra clair en un rien de temps.
 

Non rien n'est devenu clair, pourquoi exactement 0 ? Les commandes sont numérotées à partir de zéro ou quoi ?

Et ce n'est pas tout.

OrderType()<=OP_SELL

Comment puis-je savoir si c'est inférieur ou égal à un ordre de vente? Lequel est le plus petit et lequel est le plus grand ?

 
sss2019:

Non rien n'est devenu clair, pourquoi exactement 0 ? Les commandes sont numérotées à partir de zéro ou quoi ?

Oui, à partir de rien. Comme tout le reste.

Et ce n'est pas tout.

Comment puis-je savoir si c'est inférieur ou égal à un ordre de vente ? Comment savons-nous lequel est le plus petit et lequel est le plus grand ?


parce que OP_SELL est constant=1
 

Alors

OP_BUY - 0
OP_SELL - 1
OP_BUYLIMIT - 2
OP_BUYSTOP - 3
OP_SELLLIMIT - 4
OP_SELLSTOP - 5

c'est comme ça que ça marche ?

 
sss2019:

Alors

OP_BUY - 0
OP_SELL - 1
OP_BUYLIMIT - 2
OP_BUYSTOP - 3
OP_SELLLIMIT - 4
OP_SELLSTOP - 5

c'est comme ça que ça marche ?


Bien. Vrai, il y a une autre valeur qui est égale à 6.
 
Qu'est-ce que ça va être d'autre ?