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

 
forexnew:

Peut écrire zéro divide, autant que je m'en souvienne. Mais cela est dû au fait que certains paramètres ne sont pas recalculés. En d'autres termes, l'EE ne démarre tout simplement pas correctement parce qu'elle a été lancée avant le début de la session de travail.

Bien entendu, ces cases à cocher ont été supprimées.

Si cette erreur se produit(division par zéro), le conseiller expert cesse de fonctionner. Recherchez un endroit dans le code où la division par zéro se produit - très probablement, le zéro est obtenu à la suite du calcul d'un paramètre quelconque.
 
Ay, merci.
 

Bonjour chers mql. Voici mon premier problème de code.

Il s'agit d'un indicateur de tendance. La tâche est un indicateur de tendance avec des coordonnées 1-th line = max du dernier jour et du jour précédent et 2-th line = min du dernier jour et du jour précédent.

Ce serait OK, mais lorsque vous passez à une échelle de temps inférieure, la coordonnée s'accroche au début de la journée, bien qu'au niveau de prix correspondant..... et le sens de la ligne est complètement perdu.

Lors de la création d'un objet ligne de tendance, le paramètre datetime est à blâmer. Je ne sais pas comment l'atteindre. Il est nécessaire de calculer le temps de formation des extrema de prix. Il semble que cette information

Il semble que cette information soit intégrée dans l'intervalle de temps d'une minute. Comment déterminer la date à laquelle l'horizon temporel change pour qu'une tendance soit redessinée et que des coordonnées soient attachées aux barres correspondant aux extrema.

Malheureusement, la recherche n'a rien donné sur le sujet. Je serais heureux de recevoir des conseils.

 

J'ai besoin de visualiser le comportement des prix sur l'ensemble de l'historique de l'instrument par MA, mais l'indicateur n'est pas dessiné lorsqu'il est inséré dans le graphique.

Quel est le problème ?

Lorsque compilé = 0 et 0.

Au fait, le terminal MT4 se bloque !

//--------------------------------------------------------------------
// separatewindow.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_color2 Red      // Цвет второй линии

extern int History  =1000000;            // Колич.баров в расчётной истории
extern int Aver_Bars=1000000;             // Количество баров для расчёта

double Buf_0[];                     // Открытие индикаторного массива
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
   n,                               // Формальный параметр
   Counted_bars;                    // Количество просчитанных баров 
   double
   Sum_H,                           // Сумма значений High за переиод
   Sum_L;                           // Сумма значений Low  за переиод
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   if (i>History-1)                 // Если много баров то ..
      i=History-1;                  // ..рассчитывать заданное колич.
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Sum_H=0;                      // Обнуление в начале цикла
      Sum_L=0;                      // Обнуление в начале цикла
      for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений 
        {
         Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
         Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
        }
      Buf_0[i]=(Sum_H-Sum_L)/Aver_Bars;// Знач. 0 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 

Je suis en train d'écrire un EA avec d'autres transferts de stops vers le Breakeven et l'augmentation du Breakeven. Tout semble fonctionner, mais il y a un seul problème. Le stop a sauté lorsque le prix s'est déplacé vers le seuil de rentabilité ou le point mort. Je ne peux pas résoudre ce problème.

Qui sait ? Aidez-nous, s'il vous plaît.

Voici le code :

int poz=OrdersTotal();
for (n=0;n<poz;n++){
            if (OrderSelect(n,SELECT_BY_POS,MODE_TRADES)==true){
            if (OrderType()==OP_BUY){
            Prise2=Bid-OrderOpenPrice();
            if(Prise2>(25*Point)){
            OrderModify(OrderTicket(),0,OrderOpenPrice(),OrderTakeProfit(),0,Blue);}
            if(Prise>Prise3){
            Prise3=(OrderOpenPrice()+(35*Point));
            SL2=OrderOpenPrice()+(10*Point);
            OrderModify(OrderTicket(),0,SL2,OrderTakeProfit(),0,Blue);}}
 
Vodya:

Je suis en train d'écrire un EA avec d'autres transferts de stops vers le Breakeven et l'augmentation du Breakeven. Tout semble fonctionner, mais il y a un seul problème. Le stop a sauté lorsque le prix s'est déplacé vers le seuil de rentabilité ou le point mort. Je ne peux pas résoudre ce problème.

Qui sait ? Aidez-nous, s'il vous plaît.

Voici le code :

Peut-être que c'est les supports ?
 
alex12:
Peut-être que c'est les supports ?

Lesquelles ? Si c'est après pour alors ce n'est pas toute la partie. Je viens de montrer le code pour l'achat, mais il existe aussi un code pour la vente.
 

Aidez-nous s'il vous plaît, l'ordre doit être clôturé à 4 fois la distance entre le haut et le prix d'ouverture de l'ordre.

Où est-ce que je me suis trompé ?

tous les ordres sont clôturés dans les 3 pips de l'ouverture

OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
if ((High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid&&OrderType()==OP_BUY&&OrdersTotal()>0)
 {
 OrderClose(OrderTicket(),OrderLots(),Bid,3);
 }
 
LazarevDenis:

Aidez-nous s'il vous plaît, l'ordre doit être clôturé à 4 fois la distance entre le haut et le prix d'ouverture de l'ordre.

Où est-ce que je me suis trompé ?

ici
(High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid
 
sergeev:
ici


Capitaine Evidence... et quelqu'un peut-il me donner un indice ?
Raison: