[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 624

 
Quelqu'un peut-il me conseiller sur la manière d'ouvrir MT4 (à partir d'un compte de démonstration, sur un ordinateur) plusieurs fois à la fois, afin de pouvoir tester le conseiller expert sur plusieurs paires simultanément. Pour ne pas avoir à attendre qu'une paire se termine et ensuite régler manuellement le test sur l'autre ?
 
paladin80:
Quelqu'un peut-il me conseiller sur la manière d'ouvrir MT4 (à partir d'un compte de démonstration, sur un ordinateur) plusieurs fois à la fois, afin de pouvoir tester le conseiller expert sur plusieurs paires simultanément. Pour ne pas avoir à attendre qu'une paire se termine et ensuite régler manuellement le test sur l'autre ?
Copiez le dossier plusieurs fois.
 
paladin80:
Quelqu'un peut-il me conseiller sur la manière d'ouvrir MT4 (à partir d'un compte de démonstration, sur un ordinateur) plusieurs fois en même temps, afin de pouvoir tester simultanément le conseiller expert sur plusieurs paires. Pour ne pas avoir à attendre qu'une paire se termine et ensuite régler manuellement le test sur l'autre ?

Le cantuper peut-il supporter ce genre de cruauté ? Deux testeurs chargent le CPU à 100% en parallèle, l'ordinateur n'est pas du tout de la catégorie "Internet et machine à écrire".
 

Bonjour !

Pourquoi l'heure d'iTime et l'heure du testeur (sur la photo) ne correspondent-elles pas ?

Voici une ébauche grossière du code :

int start()
  {
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
    
   int  limit = Bars - counted_bars;
     
     for (int i=limit; i>=0; i--)
     {
       
    tm1=iTime(NULL,PERIOD_D1,i);           //--- Определяю время (Выводит текущую дату. Не совпадает с временем в тестере.)
    int shift=iBarShift(NULL,PERIOD_H4,tm1,false);  //---По этому времени ищем бар
   
    hgh = iHigh(NULL,PERIOD_H4,shift);   //---High бара
    lwo = iLow(NULL,PERIOD_H4,shift);    //---Low бара
          
     flatline("Lev_Up",tm1,hgh,tm2,lwo,Green,1);
     flatline("Lev_Dn",tm1,hgh,tm2,lwo,Green,1);
     }
     
     SetText("Tm1","Tm2",TimeToStr(tm1),TimeToStr(tm1),Red,Blue,12);
     SetText2("Shift",shift,Red,12);
     SetText5("High","Low", hgh,lwo,Red,Blue,12);
           
     //----
   return(0);
  }

 

Bon après-midi.

Pouvez-vous me dire pourquoi ce code ne fonctionne pas ?

Et l'alerte ne fonctionne pas.

Le journal est complètement silencieux...

Dans la capture d'écran, vous pouvez voir que les conditions correspondent.

int start()
  {
  double ma= iMA(Symbol(), 0, PerMa, 0, 0, 0, 0);
//----
//GetLot(1, 0.1, 100, 0.1, 10, Symbol());
if (Filtre()=="S" && NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) OrderSend(Symbol(),OP_SELL,0.1,Bid,2,Ask+SL*pip*Digits,Ask-TP*pip*Digits,0,0,0,CLR_NONE);
if (Filtre()=="B" && NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) OrderSend(Symbol(),OP_BUY,0.1,Ask,2,Bid-SL*pip*Digits,Bid+TP*pip*Digits,0,0,0,CLR_NONE);
Comment (Filtre(),"  ",NormalizeDouble(ma, Digits*pip),"  ",NormalizeDouble(Bid, Digits*pip));
if (NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) Alert("!!!!!!!!!!!");


//----
   return(0);
  }
 
MarkTrade:

Bon après-midi.

Pouvez-vous me dire pourquoi ce code ne fonctionne pas ?

Et l'alerte ne fonctionne pas.

Le journal est complètement silencieux...

Dans la capture d'écran, vous pouvez voir que les conditions correspondent.

Vérifiez ce que pip égale. Le deuxième paramètre de la fonction NormalizeDouble doit être égal au nombre de décimales (qui est un nombre entier), généralement écrit simplement comme Digits si l'on compare des prix.
 
atztek:

Il y a un fichier dans le dossier "experts" qui doit être copié chaque fois que l'indicateur personnalisé est lancé.

- Est-il possible de copier des fichiers à partir du code et si oui, comment ?

Merci !


Si vous utilisez MQL, uniquement dans le dossier experts\files.
 
Fox_RM:

Bonjour !

Pourquoi l'heure d'iTime et l'heure du testeur (sur la photo) ne correspondent-elles pas ?

Voici une ébauche de code grossier :

Votre fonction iTime prend la i-ième barre à partir d'un fichier (pour chaque tamframe séparément) dans le dossier tester\history, peut-être que les fichiers historiques pour D1 et H1, où la dernière barre correspond au 13 janvier, sont là depuis une ancienne exécution.
 
alsu:
Vérifiez ce à quoi le pip est égal. Le deuxième paramètre de la fonction NormalizeDouble doit être égal au nombre de chiffres après la virgule (qui est un nombre entier). En général, nous écrivons simplement Digits si nous comparons des prix.

si (Chiffres == 3||Chiffres==5) pip=10 ; sinon pip=1 ;

il s'agit de normaliser à 4 ou 2 chiffres. (si les guillemets sont à 5 chiffres)

Les valeurs normalisées sont affichées en commentaire et dans la capture d'écran nous pouvons voir qu'elles sont égales. Donc, la condition a été remplie mais la commande ne s'ouvre toujours pas...

Oh ! Une alerte est apparue dans le journal mais l'ordre ne s'est pas ouvert.

 
MarkTrade:

si (Chiffres == 3||Chiffres==5) pip=10 ; sinon pip=1 ;

il s'agit de normaliser à 4 ou 2 chiffres. (si les guillemets sont à 5 chiffres)

Les valeurs normalisées sont affichées en commentaire et dans la capture d'écran nous pouvons voir qu'elles sont égales. Donc, la condition a été remplie mais la commande ne s'ouvre toujours pas...

Oh ! L'alerte est apparue dans le journal mais l'ordre ne s'est pas ouvert.


Puis-je demander pourquoi "normaliser à 4 ou 2 chiffres". (si les guillemets sont à 5 chiffres)"? 5 et 3 chiffres devraient également fonctionner, pour ainsi dire...