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

 
Dimka-novitsek:
Attendez, excusez-moi, je vais mettre les feuillets partout !
Dimitri, gardez vos pensées pour vous et posez vos questions ici.
 
buxs:

Bon jour ou nuit ! Une question pour les développeurs de mt4 et pour tous les autres.

Quelle est la configuration minimale requise pour le client MT ?

Je veux le faire fonctionner sur mon ancien matériel : Athlon 800mg, 512mb, XP SP3. Quand je lance MT 4 ou 5, il s'arrête au bout de 2 secondes. Le problème n'est clairement pas dans le windup ou le matériel, ce matériel fait tourner Visual Studio avec débogueur (je suis moi-même programmeur), et l'exception ne survient pas dans le système (puisque mon débogueur ne fonctionne pas). Je suppose que le client lui-même n'aime pas quelque chose et qu'il ferme en conséquence. La question est donc de savoir quelle est la raison et ce que mt n'aime pas, vraiment la fréquence du CPU ? ))

MT4 n'aime pas le débogueur à partir du build 226, MT5 depuis le début.
 
buxs:

Bon jour ou nuit ! Une question pour les développeurs de mt4 et pour tous les autres.

Quelle est la configuration minimale requise pour le client MT ?

Je veux le faire fonctionner sur mon ancien matériel : Athlon 800mg, 512mb, XP SP3. Quand je lance MT 4 ou 5, il s'arrête au bout de 2 secondes. Le problème n'est clairement pas dans le windup ou le matériel, ce matériel fait tourner Visual Studio avec débogueur (je suis moi-même programmeur), et l'exception ne survient pas dans le système (puisque mon débogueur ne fonctionne pas). Je suppose que le client lui-même n'aime pas quelque chose et qu'il ferme en conséquence. La question est donc de savoir quelle est la raison et ce que mt n'aime pas, vraiment la fréquence du CPU ? ))

Processeurs répondant aux exigences minimales pour exécuter MetaTrader 4
 


Merci pour le lien. Maintenant il est clair que MT utilise SSE3, mais ce gizmo n'a pas ce jeu d'instructions, et maintenant je comprends ces crashs sans logs :)

C'est dommage, je voulais faire fonctionner ce vieux garçon pour l'autotrading aussi...

 

Bonjour.

J'ai une question sur la fonction iCustom : j'ai un indicateur de flèche ordinaire qui contient deux tampons - une flèche vers le bas et une flèche vers le haut. J'ai créé un Expert Advisor en utilisant cet indicateur et au lieu d'ouvrir des ordres, j'ai prescrit l'alerte "flèche vers le bas" et"flèche vers le haut" pour le test, comme résultat les deux messages apparaissent sur chaque tick et cela se produit pendant toute la période de test. J'ai vérifié les valeurs dans les deux tampons avec Alert et j'ai obtenu le même chiffre pour les deux tampons à chaque tick - 214783647.

Je ne sais pas ce qui ne va pas et quelles conditions doivent être appliquées dans l'Expert Advisor pour que mes trades s'ouvrent lorsque la flèche arrive et non à chaque tick.

P.S. J'ai essayé un autre indicateur (qui dessine l'histogramme dans une fenêtre séparée) qui, dans certains ticks, donne la valeur du prix actuel mélangée avec le nombre214783647, c'est-à-dire qu'ils sont l'un après l'autre dans chaque tick, et ensuite seulement214783647.

Code indicateur :

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red

double CrossUp[];
double CrossDown[];
extern int FasterEMA = 5;
extern int SlowerEMA = 8;
extern bool SoundON=true;
double alertTag;
 double control=2147483647;
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0, DRAW_ARROW, EMPTY,1);
   SetIndexArrow(0, 233);
   SetIndexBuffer(0, CrossUp);
   SetIndexStyle(1, DRAW_ARROW, EMPTY,1);
   SetIndexArrow(1, 234);
   SetIndexBuffer(1, CrossDown);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
   int limit, i, counter;
   double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter;
   double Range, AvgRange;
   int counted_bars=IndicatorCounted();
//---- check for possible errors
   if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;

   limit=Bars-counted_bars;
   
   for(i = 0; i <= limit; i++) {
   
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
      {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
      }
      Range=AvgRange/10;
       
      fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);

      slowerEMAnow = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);
      
      if ((fasterEMAnow > slowerEMAnow) && (fasterEMAprevious < slowerEMAprevious) && (fasterEMAafter > slowerEMAafter)) {
         CrossUp[i] = Low[i] - Range*0.5;
      }
      else if ((fasterEMAnow < slowerEMAnow) && (fasterEMAprevious > slowerEMAprevious) && (fasterEMAafter < slowerEMAafter)) {
          CrossDown[i] = High[i] + Range*0.5;
      }
        
  }
   return(0);
}
В советнике сделал следующее:
double ind1up0 = iCustom(NULL,0,"FXind-1",5,8,0,0);    //Стрелка вверх, на покупку на текущем баре
double ind1down0=iCustom(NULL,0,"FXind-1",5,8,1,0);    //Стрелка вниз, на продажу на текущем баре

if(ind1up0>0)Buy=true;
if(ind1down0>0)Sell=true;
 
if(ind1up0!=EMPTY)Buy=true;
if(ind1down0!=EMPTY)Sell=true;
 
midorum:
Merci ! Cela s'est avéré être facile.
 
midorum:

Nous devrions également ajouter une vérification pour EMPTY_VALUE
 
midorum:

Ah, non ! Les deux tampons sont remplis de214783647 à chaque tick, qu'il y ait une flèche ou non.

Est-ce normal ?

 
Vinin:

Nous devrions également ajouter une vérification pour EMPTY_VALUE
Je suis désolé,EMPTY_VALUE, pasEMPTY.