[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 597

 
Merci !
 

Bonjour à tous,

veuillez me conseiller comment trouver le prix maximum qui était après la formation d'une fractale

 

Voici la fonction de trading qui ouvre les positions :

//+-------------------------------------------------------------------------------------+
//| Открытие позиций                                                                    |
//+-------------------------------------------------------------------------------------+
bool Trade (int signal)
{
  double sl = 0, tp = 0;

  if(signal == SIGNAL_BUY && FindOrders() == 0)                                     // Если сигнал на покупку и открытых ордеров нет...
  {
    g_ticket = OpenBuy();                                                           // открываем лимитный ордер на покупку
  
    if(g_ticket > 0 && OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES) == true)  // Если ордер есть и он выбран..
    {
      if(i_sl != 0)                                                                 // Если входной параметр стоп-лосса не равен 0, то..
        sl = NormalizeDouble(OrderOpenPrice() - i_sl*Point,Digits);                 // Получаем значение стоп-лосса для выбранного ордера
      if(i_tp != 0)                                                                 // Если входной параметр тейкпрофита не равен 0, то..
        tp = NormalizeDouble(OrderOpenPrice() + i_tp*Point,Digits);                 // Получаем значение тейкпрофита для выбранного ордера
    }  
  }  
  else if(signal == SIGNAL_SELL && FindOrders() == 0)                               // Если сигнал на продажу и открытых ордеров нет..
  {
    g_ticket = OpenSell();                                                          // Открываем лимитный ордер на продажу
  
    if(g_ticket > 0 && OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES) == true)  // Если ордер есть и он выбран..
    {
      if(i_sl != 0)                                                                 // Если входной параметр стоп-лосса не равен 0, то..
         sl = NormalizeDouble(OrderOpenPrice() + i_sl*Point,Digits);                // Получаем значение стоп-лосса для выбранного ордера
      if(i_tp != 0)                                                                 // Если входной параметр тейкпрофита не равен 0, то..
         tp = NormalizeDouble(OrderOpenPrice() - i_tp*Point,Digits);                // Получаем значение тейкпрофита для выбранного ордера
    }
  }
  if(sl != 0 || tp != 0)                                                            // Если полученные значения sl и tp не равныы 0, то..
  {
    OrderModify(g_ticket,OrderOpenPrice(),sl,tp,OrderOpenTime() + 86400,Lime);      // Модифицируем ордер
    return(true);
  }
  return(true);
}

Tout est clair et concis. L'erreur 130 continue de s'afficher dans le testeur, bien que le conseiller expert fonctionne, mais l'erreur 130 continue de s'afficher. Quelle en est la raison ?

Cette fonction utilise des fonctions d 'ouverture de position, les voici :

//+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
int OpenBuy()
{
  g_ticket = -1;
  string myNote = "сов баянул";
         
  g_ticket = OrderSend(Symbol(),OP_BUYLIMIT,0.1,GetPriceToInput(),3,0,0,myNote,myMagic,0,Blue);
  if(g_ticket > 0 && OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES) == true)
  
  return(g_ticket);
}
//+-------------------------------------------------------------------------------------+
//| Открытие короткой позиции                                                           |
//+-------------------------------------------------------------------------------------+
int OpenSell()
{
  g_ticket = -1;
  string myNote = "сов шортанул";

  g_ticket = OrderSend(Symbol(),OP_SELLLIMIT,0.1,GetPriceToInput(),3,0,0,myNote,myMagic,0,Red);
  if(g_ticket > 0 && OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES) == true)
  
  return(g_ticket);
}

Je pensais que ça avait quelque chose à voir avec le niveau d'arrêt, j'ai ajouté la vérification, mais ce n'est pas la même chose. Je l'ai supprimé pour le moment car sur Alpari ce niveau est 0. Veuillez indiquer ce qui doit être corrigé pour éviter cette erreur.

 


 double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)];

comment enregistrer au format 1.30320 pour l'EURUSD par exemple ?
 
if(OrderTakeProfit()!=0&&OrderTakeProfit()!=OrderOpenPrice()+2*kio*Point&&Bid>OrderOpenPrice()+50*kio*Point)
               OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()+2*kio*Point,0);
Bonjour à tous. Pouvez-vous me dire ce qui ne va pas avec l'erreur n°1 et comment la réparer ? Merci !
 
rigonich:

Déclarer une variable de type datetime et lui attribuer la valeurTime[0]. Après l'ouverture de l'ordre, si elle n'est pas égale àTime[0], vous pouvez ouvrir l'ordre suivant, si elle lui est égale, vous quittez le départ. En ce qui concerne les critères, je n'ai pas regardé le code, mais il semble que si c'est une stochastique, elle devrait se déclencher au croisement des niveaux de surachat/survente (généralement >80 et <20%). Pour plus de clarté, fixez les niveaux à 20 et 80 % dans les paramètres des stochastiques.
Rigonich:

Déclarer une variable de type datetime, lui attribuer la valeurTime[0], après avoir ouvert un ordre, si elle n'est pas égale àTime[0, vous pouvez ouvrir l'ordre suivant, si elle est égale à -- sortir du début. En ce qui concerne les critères, je n'ai pas regardé le code, mais il semble que si c'est une stochastique, elle devrait se déclencher au croisement des niveaux de surachat/survente (généralement >80 et <20%). Pour plus de clarté, définissez les niveaux de 20 et 80 % dans les paramètres stochastiques.
Merci)
 
Bonjour, aidez-moi s'il vous plaît, je ne comprends pas pourquoi des ordres inutiles s'ouvrent ((, entourés en rouge dans la capture d'écran, voici les critères
// Торговые критерии
   M_1=iStochastic(NULL,0,Kperiod,Dperiod,Slowing,MODE_SMMA,Price_field,MODE_MAIN,  0);
   M_2=iStochastic(NULL,0,Kperiod,Dperiod,Slowing,MODE_SMMA,Price_field,MODE_MAIN,  1);
   S_1=iStochastic(NULL,0,Kperiod,Dperiod,Slowing,MODE_SMMA,Price_field,MODE_SIGNAL,0);
   S_2=iStochastic(NULL,0,Kperiod,Dperiod,Slowing,MODE_SMMA,Price_field,MODE_SIGNAL,1);
 
   if (M_2 < S_2 && M_1>=S_1 ) 
      { 
       if (Total==1)
         {
          if (Vremya== Time [0]) 
          return; 
          T=Close_Order (Lts,Tip);
          Vremya= Time [0];
          if (T==true)
           { 
           Total=0;
           }
         } 
       if (Total==0)         
         { 
         if (Vremya== Time [0])  
         return;                                     
   
          Open_Order_B (Lts); 
          Vremya= Time [0];
            
         }                                      
      }
   if (M_2 > S_2 && M_1<=S_1 ) 
      { 
       if (Total==1)
          {
           if (Vremya== Time [0]) 
           return; 
           T=Close_Order (Lts,Tip); 
           Vremya= Time [0];
           if (T==true)
             {
             Total=0;
             }
          }
       if (Total==0)         
          {                                          
          if (Vremya== Time [0]) 
          return;                                     
          
          Open_Order_S (Lts); 
          Vremya= Time [0];                                              
          }
       }   
 
Equilibrium:
Bonjour, aidez-moi s'il vous plaît, je n'arrive pas à comprendre pourquoi des ordres indésirables s'ouvrent ((, dans la capture d'écran ils sont entourés en rouge, voici les critères.

Essayez de prendre les valeurs de l'indicateur à partir de 1 et 2 barres. Quelque chose comme ça.
 
i999i:

Bonjour à tous,

veuillez me conseiller comment trouver le prix maximum qui était après la formation d'une fractale


Le prochain top fractal.
 

double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)];

Bonjour, veuillez me conseiller

Comment enregistrer 1.30320 pour EURUSD par exemple ?