Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 457

 
un peu faux dans la description au début ... il devrait dessiner si elle se ferme dans 1/3
 
Les gars, la mise à jour est déjà sortie ?
 
J'ai une question sur les indicateurs avec stochastique aux niveaux 20 et 80. Ou MACD avec le niveau 0.
donc la question est de savoir comment prendre la valeur de l'indicateur quand il est en dessous de 20 ou au-dessus de 80, la ligne principale et la ligne de signal.ou croisé derrière ces niveaux.valeurs de l'indicateur, je pense que j'ai, mais alors que faire avec eux ne savent pas.

Stoh=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_MAIN,0) ;
StohSignal=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_SIGNAL,0)

Macd=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_MAIN,0) ;
MacdSignal=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_SIGNAL,0) ;
 
denis77515:
Messieurs les programmeurs, expliquez que les indicateurs stochastiques pliz ont des niveaux de 20, 80. Ou MACD avec le niveau 0.
Je pense avoir obtenu la valeur de l'indicateur, mais je ne sais pas quoi en faire.

Stoh=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_MAIN,0) ;
StohSignal=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_SIGNAL,0) ;

Macd=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_MAIN,0) ;
MacdSignal=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_SIGNAL,0);


Guide d'étude

bien qu'il soit probablement trop tard, nous faisons une mise à jour aujourd'hui.

exemple tiré du tutoriel

//--------------------------------------------------------------------
// grafobjects.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start()                            // Спец. функция start
  {
//--------------------------------------------------------------- 1 --
   int Sit;
   double MACD_M_0,MACD_M_1,           // Главная линия, 0 и 1 бар
   MACD_S_0,MACD_S_1;                  // Сигнальная линия, 0 и 1 бар
   string Text[4];                     // Объявление строков. массива
   color  Color[4];                    // Объявление массива цветов

   Text[0]= "Открытие Buy";            // Текст для различных ситуаций
   Text[1]= "Открытие Sell";
   Text[2]= "Удерживаем Buy";
   Text[3]= "Удерживаем Sell";

   Color[0]= DeepSkyBlue;              // Цвет объекта ..
   Color[1]= LightPink;                // .. для различных ситуаций
   Color[2]= Yellow;
   Color[3]= Yellow;
//--------------------------------------------------------------- 2 --
   ObjectCreate("Label_Obj_MACD", OBJ_LABEL, 0, 0, 0);// Создание объ.
   ObjectSet("Label_Obj_MACD", OBJPROP_CORNER, 1);    // Привязка угол
   ObjectSet("Label_Obj_MACD", OBJPROP_XDISTANCE, 10);// Координата Х
   ObjectSet("Label_Obj_MACD", OBJPROP_YDISTANCE, 15);// Координата Y
//--------------------------------------------------------------- 3 --
   MACD_M_0 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);  // 0 бар
   MACD_S_0 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);// 0 бар
   MACD_M_1 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);  // 1 бар
   MACD_S_1 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);// 1 бар
//--------------------------------------------------------------- 4 --
   // Анализ ситуации 
   if(MACD_M_1<MACD_S_1 && MACD_M_0>=MACD_S_0)// Персеч. снизу вверх
      Sit=0;
   if(MACD_M_1>MACD_S_1 && MACD_M_0<=MACD_S_0)// Персеч. сверху вниз
      Sit=1;
   if(MACD_M_1>MACD_S_1 && MACD_M_0>MACD_S_0) // Главная выше сигн.
      Sit=2;
   if(MACD_M_1<MACD_S_1 && MACD_M_0<MACD_S_0) // Главная ниже сигн.
      Sit=3;
//--------------------------------------------------------------- 5 --
   // Изменение свойств объекта
   ObjectSetText("Label_Obj_MACD",Text[Sit],10,"Arial",Color[Sit]);
//--------------------------------------------------------------- 6 --
   return;                             // Выход из start()
  }
//--------------------------------------------------------------- 7 --
int deinit()                           // Спец. функция deinit
   {
   ObjectDelete("Label_Obj_MACD");     // Удаление объекта
   return;                             // Выход из deinit()
   }
//--------------------------------------------------------------- 8 --
 
double close_price(int nomer_bara)
{
if(nomer_bara<1)
{
Alert("нельзя анализировать текущий бар");
}
else
{
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3)//возвращает 1/3 если цена текущего бара закрылась ниже 1/3 его спреда 
{
return(1/3);
}
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3&&(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)*2)/3)//возвращает 2/3 если цена текущего бара закрылась ниже 2/3 и выше 1/3 его спреда 
{
return(2/3);
}

if((iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>(iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))*2)/3&&iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))//возвращает 1 если цена текущего бара закрылась выше 2/3 его спреда
{
return(1);
}
}

}

 if(close_price(1)==1/3)// в случае если цена закрылась внизу то нарисовать линию на этом баре
   {
 SetVLine(Red, "", Time[1], STYLE_SOLID, 2);
   }
и так вся проблема заключается в том что линия рисуется на каждом баре не пойму какого черта... помогите пожалуйста
la ligne doit être tracée sur la barre où le prix a clôturé en bas, c'est-à-dire la barre 1/3
 

Je vais réinstaller Windows, mais lorsque je déplace le dossier EAs sur le disque dur, les EAs écrits récemment ont disparu ! Des conseils sur ce qu'il faut faire ?

*Je ne peux pas enregistrer le code dans un document et les recréer ensuite, car il y en a beaucoup, et je ne veux pas perdre de données à cause d'un éventuel facteur humain :)

 
Bonjour, aidez-moi s'il vous plaît ! Le programmeur qui a écrit l'Expert Advisor a disparu... J'ai dû le terminer moi-même... J'ai dû le réécrire moi-même, et il me reste une fonction à implémenter. Mon Expert Advisor travaille sur les ruptures des niveaux de support et de résistance + les niveaux Fibo comme deuxième signal, respectivement, en Fibo. En conséquence, j'obtiens un signal, mais il n'a pas fonctionné en raison de certaines restrictions ou d'un nombre insuffisant de points pour définir le Take Profit minimum. Veuillez nous aider, nous conseiller ou nous envoyer un lien vers le site ..... Pour acheter, le prix doit casser le niveau de bas en haut seulement, et pour vendre, de haut en bas. Merci beaucoup d'avance !!!!!
 

Les gars, s'il vous plaît aidez, il y a une fonction qui retourne le lot du dernier ordre ouvert (qui n'est pas encore fermé). Pouvez-vous le modifier pour qu'il renvoie le lot de l'avant-dernier ordre ouvert (qui n'est pas encore clôturé) ? Faites-le sans utiliser de tableaux...

double FindLastLots (int otype)
{
  double oldopenprice,oldlots;
  int oldticket;
  
  ticket = 0;
  
  for (int i = OrdersTotal()-1; i>=0; i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) 
    {
      if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
      {
         oldticket = OrderTicket();
         if (oldticket>ticket)
         {
            oldlots = OrderLots();
            ticket = oldticket; 
         } 
      }  
    }
  }
  return (oldlots);
}
 
Trader7777:

Les gars, s'il vous plaît aidez, il y a une fonction qui retourne le lot du dernier ordre ouvert (qui n'est pas encore fermé). Pouvez-vous le modifier pour qu'il renvoie le lot de l'avant-dernier ordre ouvert (qui n'est pas encore clôturé) ? Faites-le seulement sans utiliser de tableaux...

Vous n'avez pas de tableaux ici non plus. Le code n'est pas très fiable. Vous cherchez le dernier dans la liste des ordres ouverts. À mon avis, il n'est pas très fiable de se lier à cela. Le moyen le plus fiable de trouver le dernier ordre ouvert est l'heure d'ouverture (c'est la plus basse de toutes).
 
Existe-t-il un moyen astucieux d'appeler la ligne de tendance avec un raccourci clavier ?