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

 
Bon après-midi. J'ai besoin d'aide, car je ne sais pas comment coder, écrire ou modifier des indicateurs moi-même. Je serai bref.
Pouvez-vous ajouter une notification sonore (alerte) lorsque
CrossUppasse de 0,00000 à -1,00000
CrossDown de -1,00000 à 0,00000.
S'il vous plaît, aidez-moi, je vous en serai éternellement reconnaissant. Merci.

Dossiers :
 
S.P.I:
Bonjour. J'ai besoin d'aide, car je ne suis pas familier avec le codage, l'écriture ou la modification des indicateurs. Je serai bref.
Pouvez-vous ajouter une notification audible (Alerte) lorsque la
CrossUppasse de 0,00000 à -1,00000
CrossDown passe de -1,00000 à 0,00000.
Aidez-moi, s'il vous plaît, je vous en serai éternellement reconnaissant. Merci.

Mauvais format, vous avez besoin de mq4

 
Alekseu Fedotov:

Mauvais format, vous avez besoin de mq4

Vous pouvez le faire avec ex4 également - dans ses ressources et lire les tampons.

 
Artyom Trishkin:

Il est possible d'effectuer cette tâche avec ex4 également - pour les ressources et les tampons de lecture.

Pourquoi ? l'appel d' un indicateur standard à partir d'un indicateur via iCustom(), je pense que cela prendra 15-20 minutes, qu'il y ait 2 fichiers d'indicateurs

 
Igor Makanu:

Pourquoi ? l'appel de l'indicateur standard depuis l'indicateur via iCustom(), je pense que cela prendra 15-20 minutes, qu'il y ait 2 fichiers d'indicateur

Il y a aussi iCustom() dans les ressources, mais il y a un seul fichier.

J'ai deux dossiers - que ce soit deux, que ce soit un. Et il y a la même quantité de travail.

 
Alekseu Fedotov:

C'est vrai, faites le calcul.

Oui, mais c'est déjà un pourcentage du profit, il faudrait faire une construction pour que la variable drawdown soit affectée d'une valeur à drawdown, et si la position est en profit, la valeur drawdown = 0.
 
nalyk:
Oui, mais il s'agit déjà d'un pourcentage du profit, il faut inventer une sorte de construction, pour que la variable drawdown se voit attribuer une valeur au moment du drawdown, et si la position est en profit, alors la valeur drawdown = 0 .
   double drawdown=(AccountProfit()<0 ? AccountProfit()*100/AccountBalance() : 0);
   Comment("текущая просадка  = ",drawdown);
 

Bonjour, pouvez-vous me dire comment écrire correctement l'ouverture des ordres de la dernière fractale. J'ai essayé de le faire de cette façon, mais ça ne s'ouvre pas dans le testeur.

void CheckForOpen()
{
  
   double hai_candle = iHigh(NULL,TimeCandleTrade,0);
   double low_candle = iLow(NULL,TimeCandleTrade,0); 
   fr_down = iFractals (Symbol(), 0, MODE_LOWER,3);
   fr_up = iFractals(Symbol(),0,MODE_UPPER,3);
   double SL, TP;
  
 if (BuyCount()==0 )
   {
  
    if (fr_down>0 && low_candle<Low[fr_down])
   {
     
      SL = NormalizeDouble(Ask - StopLoss*Point,Digits);
      TP = NormalizeDouble(Ask + TakeProfit*Point,Digits);
      ticket = OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,SL,TP,NULL,magik,0,CLR_NONE);
      if (ticket <0)
       Print ("Не удалось открыть ордер на покупку",GetLastError());
   }
   
   }

int BuyCount()
  {
  int count = 0;
  for (int i=OrdersTotal()-1;i>=0;i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES) == true && 
        OrderMagicNumber()== magik &&                        
        OrderType() == OP_BUY )                       
        {
        count ++;
        }
    }
}

 
Artyom Trishkin:
Merci.
 
nelenaby:

Bonjour, pouvez-vous me dire comment écrire correctement l'ouverture des ordres de la dernière fractale. J'ai essayé de le faire de cette façon, mais ça ne s'ouvre pas dans le testeur.

Vous cherchez la fractale sur la troisième barre, elle n'est peut-être pas là. Cherchez la première fractale dans la boucle.

 
 for (int s=2; s<100; s++) 
     {
    fr_down=iFractals(Symbol(), 0, MODE_LOWER, s);
    if (f!=0) break;
     }