Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1162

 
Aliaksandr Kryvanos:

Ciao a tutti, ho una domanda, è possibile cambiare i parametri dell'indicatore al volo, senza aprire la finestra delle impostazioni?

https://www.mql5.com/ru/forum/213718#comment_5624828

Можно ли поменять входные параметры автоматически?
Можно ли поменять входные параметры автоматически?
  • 2017.08.17
  • www.mql5.com
Хочу сделать универсального солдата, который позволил бы, менять входные параметры на ходу, + чтобы советник переинициализовался Информации, по пов...
 
Сергей:

è così che l'ho scritto... Non capisco perché le coppie jpy sono visualizzate in modo errato... provate a collegarvi a qualsiasi coppia senza jpy nel terminale e poi a una coppia con jpy, i risultati sono diversi...

Trovato il problema - le coppie con jpy hanno un valore Point diverso. Ho preso MarketInfo("SYMBOL",MODE_POINT)). ho cambiato il carattere, la sua dimensione e il colore. Corretto un altro errore


File:
 
STARIJ:
Trovato cosa c'è di sbagliato - coppie con jpy il valore del punto è diverso. Ho preso MarketInfo("SYMBOL",MODE_POINT)). ho cambiato il carattere, la sua dimensione e il colore. Corretto un altro errore



Dovresti aggiungere la tempistica, perché non è sempre il caso che un tick arrivi su tutti i grafici nello stesso momento e quando cambierai barra otterrai i dati sbagliati...

Ho circa lo stesso sistema e nella vita reale ho visto delle discrepanze nei risultati.

Ho risolto in questo modo -

    BarShift_AUDUSD = iBarShift("AUDUSD",0,Time[1],true); if(BarShift_AUDUSD <= 0) return;
    BarShift_NZDUSD = iBarShift("NZDUSD",0,Time[1],true); if(BarShift_NZDUSD <= 0) return;
    BarShift_USDCAD = iBarShift("USDCAD",0,Time[1],true); if(BarShift_USDCAD <= 0) return;
    BarShift_USDJPY = iBarShift("USDJPY",0,Time[1],true); if(BarShift_USDJPY <= 0) return;

    vol = iMA("AUDUSD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_AUDUSD);
    vo2 = iMA("NZDUSD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_NZDUSD);
    vo3 = iMA("USDCAD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_USDCAD);
    vo4 = iMA("USDJPY",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_USDJPY);

sincronizza tutte le letture degli altri grafici sul grafico aperto - cioè, fino a quando una nuova barra inizia su tutti i grafici...

 
elmucon:
Potrei aggiungere la tempistica, perché non è sempre il caso che un tick arrivi su tutti i grafici nello stesso momento e se cambiate barra avrete i dati sbagliati...
Ho circa lo stesso sistema e nella vita reale ho visto delle discrepanze nei risultati.
Ho risolto in questo modo -
Sincronizza tutte le letture di altri grafici sul grafico aperto - cioè, fino a quando una nuova barra inizia su tutti i grafici...

Guardate attentamente il codice pubblicato. In generale, il compito era semplicemente quello di eliminare gli errori, per aiutare Sergei a raggiungere un grande profitto

 


Potete dirmi perché il valore dell'indicatore iCustom è sempre 0. Anche sulle cime. Questo è se si ottengono i valori nell'indicatore. Poi come nell'EA senza problemi. Il secondo buffer nell'indicatore senza problemi.


//--------------------------------------------------------------------
#property indicator_separate_window    // Индик. рисуется в основном окне
#property indicator_buffers 2       // Количество буферов
#property  indicator_color1 Blue     // Цвет первой линии
#property  indicator_color2 Red      // Цвет второй линии
double zz; 
double Buf_0[],Buf_1[];             // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   SetIndexBuffer(1,Buf_1);         // Назначение массива буферу
   SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
  
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      zz=iCustom(NULL,0,"Zig_Zag",15,5,5,0,i);
      Buf_0[i]= zz;                 // Значение 0 буфера на i-ом баре
      Buf_1[i]=Low[i];              // Значение 1 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 
Александр:

Per favore, ditemi perché il valore dell'indicatore iCustom è sempre uguale a 0. Anche sulle cime. È se ricevo valori nell'indicatore. Allora non c'è nessun problema con esso nell'Expert Advisor. Il secondo buffer nell'indicatore senza problemi.

Vedi se lo script allegato può aiutarti. Lo ZigZag è zero ovunque tranne che ai vertici. iCustom - funzione per il calcolo dell'indicatore personalizzato

File:
 
STARIJ:

Vedi se lo script allegato può aiutarti. Lo ZigZag è zero ovunque tranne che ai vertici. iCustom - funzione per il calcolo dell'indicatore personalizzato

Ho detto specificamente: - "Anche sui vertici". Cioè iCustom dovrebbe mostrare i valori in alto. Fa esattamente questo nell'Expert Advisor. Ma non lo fa in un indicatore. Perché?

 
Александр:

Ho detto specificamente: - "Anche sulle cime". Cioè iCustom dovrebbe mostrare i valori in alto. Questo è ciò che fa nell'Expert Advisor. Ma non lo fa nell'indicatore. Perché?

Guarda lo script allegato - forse troverai una risposta alla tua domanda. In generale, con l'aiuto di script è possibile controllare, scoprire, chiarire ...
 
STARIJ:
Guarda lo script postato qui - forse troverai la risposta alla tua domanda. In generale, è possibile utilizzare gli script per controllare, scoprire, chiarire ...
OK
 
Александр OK

imparare gli script, scrivere script è un buon modo per imparare una lingua e cercare gli errori