Une question pour les connaisseurs de MQL - page 7

 

Si vous avez rencontré un problème similaire : Lors du test des EAs, dans le journal, quelques lignes comme "2010.08.18 22:23:37 TestGenerator : unmatched data error (volume limit 32 at 2010.08.18 21:15 exceeded)" et l'icône "Do not enter" (des règles de trafic) apparaissent. Et puis il y a des chaînes d'informations au fur et à mesure que le test progresse. S'agit-il d'un problème avec le serveur DC ou d'un problème avec l'Expert Advisor ?

 

Cela se produit généralement si les dates de début et de fin du test sont mal définies.

Ou, au début du test, des cotations incorrectes (ou leur absence), - des trous, des barres manquantes à différentes échéances, etc...

 
pathfinder1:

Si vous avez rencontré un problème similaire : Lors du test des EAs, dans le journal, quelques lignes comme "2010.08.18 22:23:37 TestGenerator : unmatched data error (volume limit 32 at 2010.08.18 21:15 exceeded)" et l'icône "Do not enter" (des règles de trafic) apparaissent. Et puis il y a des chaînes d'informations au fur et à mesure que le test progresse. S'agit-il d'un problème avec le serveur DC ou d'un problème avec l'Expert Advisor ?

Et pour le plaisir : faites une recherche sur le site avec la requête "TestGenerator : unmatched data error", puis dites-nous.
 

Debri... La limite de volume varie de 32 à 4826 . Mais il semble que l'histoire ne soit pas formée. J'ai défini une période différente et c'est bon.

 

1) rechargez l'historique, d'abord en utilisant le bouton "Page Ap", puis à travers l'historique des citations, recalculez tous les TF, allez dans le testeur/historique et effacez tous les fichiers - cela devrait être ok, ou vous avez un trou dans l'historique, alors effacez tout l'historique, et effectuez toutes les opérations.

 

Bonjour à tous !

Une autre question concernant le triangle dans la fenêtre de l'indicateur.

J'ai obtenu un dessin de triangle normal - avec la pointe vers la convergence.

Mais je ne comprends pas,

1. Comment puis-je définir la couleur du triangle dans la fonction

ObjectCreate("TRIANGLE", OBJ_TRIANGLE,WindowFind(WindowExpertName()), 
         level_1, delta_1,  level_2,delta_2,    level_3,delta_3); 

s'il n'y a pas d'option de couleur ?

2. Je ne change pas la direction du triangle lorsque je change la convergence/divergence des lignes.

J'ai configuré le code comme ceci :

 datetime  level_1, level_2, level_3;

if ( MathAbs(Symbol1[1]-SymbolS[1]) > MathAbs(Symbol1[0]-SymbolS[0]) ) {
//если имеет место  схождение линий SUM-RDX, задаем переменные для 
// вершины треугольника вправо-  
        level_1=Time[0]+3500;  delta_1= 0.1;
        level_2=Time[0]+3500;  delta_2=-0.1;
        level_3=Time[0]+10500;  delta_3   =0;  
 }       
if ( MathAbs(Symbol1[1]-SymbolS[1]) <= MathAbs(Symbol1[0]-SymbolS[0]) )
{//если имеет место  расхождение линий SUM-RDX, задаем переменные для
// вершины треугольника влево -      
       level_1=Time[0]+3500;  delta_1=0;
       level_2=Time[0]+10500;  delta_2=0.1;
       level_3=Time[0]+10500;  delta_3=-0.1;
  } 
  //==задаем отрисовку треугольника ===================                  
ObjectCreate("TRIANGLE", OBJ_TRIANGLE,WindowFind(WindowExpertName()), 
              level_1, delta_1 ,level_2,delta_2,level_3,delta_3); 

Mais je suis maintenant dans le testeur, je fais fonctionner l'inducteur et je peux voir que le triangle lui-même n'a pas changé de configuration lorsque je change la convergence en divergence. De plus, le triangle lui-même est "parti" vers la gauche en même temps que "son" lieu de mise en place initiale (fixation) ! Quelle est l'origine de l'erreur ?

Deinit est réglé.

int deinit()  {
ObjectDelete("TRIANGLE");
   return(0);  }
 

1. objectSet( name, OBJPROP_COLOR, col) ; // name - nom de l'objet, col - couleur de l'objet

2. pour modifier les valeurs des coordonnées, utilisez

ObjectSet(name, OBJPROP_PRICE1, price1) ;
ObjectSet(name, OBJPROP_PRICE2, price2) ;
ObjectSet(name, OBJPROP_PRICE3, price3) ;
ObjectSet(name, OBJPROP_TIME1, time1) ;
ObjectSet(name, OBJPROP_TIME2, time2) ;
ObjectSet(name, OBJPROP_TIME3, time3) ;

 

Merci, keekkenen!

J'ai fait ce que vous avez écrit. Tout fonctionne comme il se doit ! !!

 

Bonjour à tous.

Pourriez-vous me dire comment faire pour que la ligne de prix dans la fenêtre de l'indicateur (voir fig. ci-dessus) change de couleur lors d'un changement de direction ?

Je ne sais même pas comment résoudre ce problème.

Je l'ai fait comme ça :

 color Color_C ;
 double BufW[];

int init() {
    
  SetIndexStyle(4,DRAW_LINE,STYLE_DOT,2,Color_C);
  SetIndexBuffer(4,BufW);
  SetIndexLabel(4,"Channel width");
  return(0);
               }
int start() {
  
  //------------------------------------------------------------------ 
  // Отрисовка ценовых линий: рисуем и синхронизируем по наличию баров
  for(int i=0; i<limit; i++) { 
.... .... ... 
    BufW[i]=(iMA(Symbol3.Name,Period(),MA........ .... );
                             }  // Конец отрисовки ценовых линий

if( BufW[i-1] => BufW[i] )   Color_C = Green;
  else  Color_C = Red;


Mais ça ne marche pas.

 

SetIndexStyle(4,DRAW_LINE,STYLE_DOT,2,Color_C) ;
SetIndexBuffer(4,BufW) ;
SetIndexLabel(4,"Channel width") ;

SetIndexStyle( 5,DRAW_LINE,STYLE_DOT,2,Color_X) ;
SetIndexBuffer( 5,BufX) ;
SetIndexLabel( 5,"Channel width") ;

..............

......................

double ma=iMA(...................,................,i) ;

double ma1=iMA(......,...............,...........I+1) ;

si(ma>ma1)

BufW=ma ;

sinon

BufX=ma ;

Raison: