Una domanda per i conoscitori di MQL - pagina 7

 

Se hai riscontrato un problema simile: quando si testano gli EA nel log appaiono le prime righe come "2010.08.18 22:23:37 TestGenerator: unmatched data error (volume limit 32 at 2010.08.18 21:15 exceeded)" e l'icona "Do not enter" (dalle regole del traffico). E poi ci sono stringhe di informazioni man mano che il test procede. È un problema con il server DC o è qualcosa di sbagliato con l'Expert Advisor?

 

Questo di solito accade se le date di inizio e fine del test sono impostate in modo errato.

Oppure, all'inizio del test, quotazioni errate (o mancanza di esse), - buchi, barre mancanti in diversi timeframes, ecc.

 
pathfinder1:

Se hai riscontrato un problema simile: quando si testano gli EA nel log appaiono le prime righe come "2010.08.18 22:23:37 TestGenerator: unmatched data error (volume limit 32 at 2010.08.18 21:15 exceeded)" e l'icona "Do not enter" (dalle regole del traffico). E poi ci sono stringhe di informazioni man mano che il test procede. È un problema con il server DC o è qualcosa di sbagliato con l'Expert Advisor?

E per divertimento: fate una ricerca sul sito con la query "TestGenerator: unmatched data error", e poi diteci.
 

Debri... Il limite di volume varia da 32 a 4826 . Ma sembra che la storia non sia formata. Ho impostato un periodo di tempo diverso e va bene.

 

1) ricaricare la cronologia, prima usando il pulsante "Page Ap", poi attraverso la cronologia delle citazioni, ricalcolare tutti i TF, andare nel tester/history e cancellare tutti i file - dovrebbe essere ok, o hai un buco nella cronologia, poi cancellare tutta la cronologia, ed eseguire tutte le operazioni.

 

Buon pomeriggio a tutti!

Un'altra domanda sul triangolo nella finestra dell'indicatore.

Ho ottenuto un normale disegno a triangolo - con la punta verso la convergenza.

Ma non capisco,

1. Come si imposta il colore del triangolo nella funzione

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

se non c'è un'opzione di colore?

2. Non cambio la direzione del triangolo quando cambio la convergenza/divergenza delle linee.

Ho impostato il codice in questo modo:

 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); 

Ma qui sono nel tester ora, facendo funzionare l'induttore e posso vedere che il triangolo stesso non ha cambiato la configurazione quando cambio la convergenza in divergenza. Inoltre, il triangolo stesso è "andato" a sinistra insieme al "suo" luogo di impostazione iniziale (legame)! Per favore consigliatemi quale potrebbe essere l'errore?

Deinit è impostato.

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

1. objectSet( name, OBJPROP_COLOR, col); // name - nome dell'oggetto, col - colore dell'oggetto

2. per cambiare i valori delle coordinate, usare

ObjectSet(nome, OBJPROP_PRICE1, prezzo1);
ObjectSet(nome, OBJPROP_PRICE2, prezzo2);
ObjectSet(nome, OBJPROP_PRICE3, prezzo3);
ObjectSet(nome, OBJPROP_TIME1, time1);
ObjectSet(nome, OBJPROP_TIME2, time2);
ObjectSet(nome, OBJPROP_TIME3, time3);

 

Grazie, keekkenen!

Ha fatto come hai scritto. Tutto funziona come dovrebbe!!!

 

Buon pomeriggio a tutti.

Potresti dirmi come fare in modo che la linea del prezzo nella finestra dell'indicatore (vedi fig. sopra) cambi colore su un cambio di direzione?

Non so nemmeno come risolvere questo problema.

Ho fatto così:

 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;


Ma non funziona.

 

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");

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

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

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

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

se(ma>ma1)

BufW=ma;

else

BufX=ma;