Questions des débutants MQL4 MT4 MetaTrader 4 - page 25

 
Viachaslau Baiko:

perte éventuelle de données due à la conversion de type

Essayez-le.

Dossiers :
 
Renat Akhtyamov:
Montrez-moi la ligne du code sur laquelle le compilateur pointe

Il y a beaucoup de lignes comme ça, c'est pourquoi j'ai demandé un module adapté pour les nouveaux terminaux. Mais merci pour votre volonté d'aider)

 
Alekseu Fedotov:
Merci, je vais essayer !
 
Viachaslau Baiko:

Il y a beaucoup de lignes comme ça, c'est pourquoi j'ai demandé un module adapté pour les nouveaux terminaux. Mais merci pour votre volonté d'aider)

Sur cette ligne :

" perte éventuelle de données due à la conversion de type"

doit être le numéro de ligne et la position dans la ligne de code avec l'erreur.

C'est aussi simple que cela, vous pouvez corriger toutes les erreurs, en connaissant l'emplacement exact dans le code.

 
Renat Akhtyamov:

droite dans cette ligne :

" perte éventuelle de données due à la conversion de type"

il devrait y avoir un numéro de ligne et une position dans la ligne de code avec l'erreur.

C'est un moyen facile de corriger toutes les erreurs, en connaissant l'emplacement exact dans le code.

J'ai pris l'Expert Advisor proposépar Alekseu Fedotov et j'ai essayé de le modifier pour l'adapter à mes besoins.

Mes besoins sont les suivants : Au croisement des baguettes, on ouvre une position, et on la ferme au croisement opposé. Si possible, nous transférons la position vers le seuil de rentabilité.

Mais en fin de compte, rien n'est ouvert. Je me creuse les méninges. Quel peut être le problème ?

Dossiers :
4Tester.mq4  20 kb
 
Viachaslau Baiko:

J'ai pris l'EA proposépar Alekseu Fedotov et j'ai essayé de le modifier pour l'adapter à mes besoins.

Mes besoins sont les suivants : S'ils sont franchis, nous ouvrons une position. S'ils sont à nouveau franchis, nous la fermons. Si possible, nous transférons la position vers le seuil de rentabilité.

Mais en fin de compte, rien n'est ouvert. Je me creuse les méninges. Quel peut être le problème ?

Je ne sais pas quel est le problème, mais j'essaie de vous aider.
 
Renat Akhtyamov:
Montrez la ligne du code avec l'erreur de CMM, pour la dernière fois je vous offre mon aide.
Il y a eu une erreur de ma part. J'ai fait une erreur dans la logique du programme. Et c'était plus facile pour moi de le refaire. Il n'y a pas d'erreur dans le code de CMM.
 
Veuillez me dire s'il est possible de faire ce qui suit avec mql4 ou mql5 :

après que le prix a franchi un niveau vertical, de colorer une partie du fond d'une autre couleur, comme indiqué sur l'image.

Merci.
Dossiers :
Immagine1.JPG  100 kb
 
Renat Akhtyamov:
Montrez un extrait de code sur la façon dont vous lisez le signal de l'indicateur dans votre EA.
extern int     stoploss             = 200,
               takeprofit           = 400,
               slippage             = 10,
               Magic                = 777;          

extern double  Lot                  = 0.5,
               buy_level            = 15;      
            

void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)                        
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
  
   double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
   double SL=0,TP=0;
  
   if (STO > buy_level)
  
  
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);    
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
      PlaySound("timeout.wav");
      Print("Ордер успешно размещен");
}
}
 
TimBerg:
extern int     stoploss             = 200,
               takeprofit           = 400,
               slippage             = 10,
               Magic                = 777;          

extern double  Lot                  = 0.5,
               buy_level            = 15;      
            

void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)                        
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
  
   double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
   double SL=0,TP=0;
  
   if (STO > buy_level)
  
  
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);    
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
      PlaySound("timeout.wav");
      Print("Ордер успешно размещен");
}
}

Juste ici :

iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0) ;

changer la période (timeframe) en 1,5,15,30,60,240,1440,10080,43200 //M1.M5.M30 ... etc.

ou entrez Period() au lieu de 15, alors lorsque vous changez de TF manuellement, le TF actuel sera automatiquement défini

Raison: