Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1893

 

Puoi darmi un suggerimento?

In mql4 c'era un indicatore basato sulla MA sul prezzo di apertura, che permetteva di evitare il ridisegno sulla barra corrente. tramite int start() funzionava bene. Mostrava tutto chiaramente.

In mql5, lo stesso indicatore non funziona tramite int start, ma tramite int OnCalculate. Continua a ricalcolare e ridisegnare, per un secondo l'immagine scompare e può avere valori diversi a causa della situazione di confine con l'intersezione di due MA, anche se la distanza tra due MA è impostata, non aiuta. Ho pensato di prendere non il valore 0 ma il 1° dal buffer MA, ma non ha funzionato e ho anche pensato di saltare questa funzione prima dell'arrivo di una nuova barra e non ha funzionato neanche questo (ho anche provato a smettere di visualizzare qualcosa). Come superare questa situazione?

Quando si capovolge il grafico da destra a sinistra, sfarfalla anche l'indicatore con un ricalcolo costante

 
Sergey Dymov #:

Puoi darmi un suggerimento?

In mql4 c'era un indicatore basato su MA per il prezzo di apertura, che permetteva di evitare il re-rendering sulla barra corrente. attraverso int start() funzionava bene. Mostrava tutto chiaramente.

In mql5, lo stesso indicatore non funziona tramite int start, ma tramite int OnCalculate. Continua a ricalcolare e ridisegnare, per un secondo l'immagine scompare e può avere valori diversi a causa del confine con due MA che attraversano la situazione, anche se ho impostato la distanza tra due MA, non funziona. Ho pensato di prendere non il valore 0 ma il 1° dal buffer MA, ma non ha funzionato e ho anche pensato di saltare questa funzione prima dell'arrivo di una nuova barra e non ha funzionato neanche questo (ho anche provato a smettere di visualizzare qualcosa). Come superare questa situazione?

Quando si capovolge il grafico da destra a sinistra, sfarfalla anche l'indicatore con ricalcolo costante

Fai la domanda qui - ti aiuteranno sicuramente.

 
Sergey Dymov #:

Puoi darmi un suggerimento?

In mql4 c'era un indicatore basato sulla MA sul prezzo di apertura, che permetteva di evitare il ridisegno sulla barra corrente. tramite int start() funzionava bene. Mostrava tutto chiaramente.

In mql5, lo stesso indicatore non funziona tramite int start, ma tramite int OnCalculate. Continua a ricalcolare e ridisegnare, per un secondo l'immagine scompare e può avere valori diversi a causa della situazione di confine con l'intersezione di due MA, anche se la distanza tra due MA è impostata, non aiuta. Ho pensato di prendere non il valore 0 ma il 1° dal buffer MA, ma non ha funzionato e ho anche pensato di saltare questa funzione prima dell'arrivo di una nuova barra e non ha funzionato neanche questo (ho anche provato a smettere di visualizzare qualcosa). Come superare questa situazione?

Quando si capovolge il grafico da destra a sinistra, sfarfalla anche l'indicatore con un ricalcolo costante

Pubblica il codice
 

C'è una cosa del genere sul grafico

L'ho visto fare in qualsiasi colore, se non mi sbaglio.

Come?

 
Vitaly Muzichenko #:

C'è una cosa del genere sul grafico

L'ho visto fare in qualsiasi colore, se non mi sbaglio.

Come?

F8 e.


Ma questo è anche il colore della griglia, quindi deseleziona


 
Artyom Trishkin #:

F8 e

Ma questo è anche il colore della griglia, quindi deseleziona

Capito, grazie!

La rete è necessaria, peccato che non sia separata.

P.S. Come si fa a spostare programmaticamente 15 barre dal bordo destro?
 
Vitaly Muzichenko #:

Capito, grazie!

La rete è necessaria, peccato che non sia divisa.

P.S. Come si fa a spostare programmaticamente 15 barre dal bordo destro?

Che ne dite di questo?

//+------------------------------------------------------------------+
//| Функция включает/выключает режим отображения ценового графика с  |
//| отступом от правого края.                                        |
//+------------------------------------------------------------------+
bool ChartShiftSet(const bool value,const long chart_ID=0)
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- установим значение свойства
   if(!ChartSetInteger(chart_ID,CHART_SHIFT,0,value))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты"
      Print(__FUNCTION__+", Error Code = ",GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
Примеры работы с графиком - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov #:

Che ne dite di questo?

Sì, ma questo è spingere via il pulsante

Quando si trascina il marcatore con le mani, si appoggia un po' prima di raggiungere il bordo destro - questa è una limitazione fondamentalmente sbagliata del terminale!

Quando si preme il pulsante, la barra più esterna quasi si attacca al bordo destro, quindi il valore informativo del grafico si perde.

Si dovrebbe premere il pulsante senza raggiungere 15-20 barre e non eseguire questa operazione ogni volta che appare una nuova barra. Comprimere solo una volta.

P.S. Perché una tale restrizione e così tanto spazio vuoto?


 
Vitaly Muzichenko #:

Sì, ma sta spingendo via il pulsante.

Quando si trascina il marcatore a mano, si appoggia prima di raggiungere il bordo destro abbastanza spesso - questa è una limitazione fondamentalmente sbagliata del terminale!

Quando si preme il pulsante, la barra più esterna quasi si attacca al bordo destro, quindi il valore informativo del grafico si perde.

Si dovrebbe premere il pulsante senza raggiungere 15-20 barre e non eseguire questa operazione ogni volta che appare una nuova barra. Comprimere solo una volta.

Percentuale

//+------------------------------------------------------------------+ 
//| Функция устанавливает размер отступа нулевого бара от правого    | 
//| края графика в процентах (от 10% до 50%). Для включения режима   | 
//| отступа, нужно установить значение свойства CHART_SHIFT равным   | 
//| true.                                                            | 
//+------------------------------------------------------------------+ 
bool ChartShiftSizeSet(const double value,const long chart_ID=0) 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- установим значение свойства 
   if(!ChartSetDouble(chart_ID,CHART_SHIFT_SIZE,value)) 
     { 
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError()); 
      return(false); 
     } 
//--- успешное выполнение 
   return(true); 
  }
 
Alekseu Fedotov #:

Percentuale

Funziona, ma il minimo è un rientro che può essere impostato a mano e almeno

Visivamente, è circa un minimo del 10%. Perché il 5% non funziona