Simboli personalizzati. Errori, bug, domande, suggerimenti. - pagina 11

 
fxsaber:

2033:

2063:

 
fxsaber:

Bug 07.

Tester genera barre per Ultimo per i simboli di stock personalizzati con prezzo Bid per costruire barre.

Corrispondentemente, la storia della barra nel Terminale e nel Tester è completamente diversa. E se qualcuno usa le barre nel TS (indicatori, per esempio), il risultato del backtest è casuale per lui/lei.

Se per strumento di scambio intendiamo uno strumento con una profondità della tazza non nulla, la costruzione delle barre in questo caso è stata corretta.

O date il vostro esempio personale.

 
fxsaber:

Bug 01.

La tabella dei caratteri personalizzati è aperta. Se, per esempio, cancellate manualmente tutta la storia delle barre e dei tick, la finestra del grafico si blocca - senza rinfrescarsi.

Comportamento atteso come con un simbolo personalizzato vuoto.

Spiega più dettagliatamente cosa intendi per

Cancellata tutta la storia delle barre, il grafico del simbolo personalizzato è vuoto con la scritta "Waiting for update". Cosa c'è che non va?

 

Bug 13.

Forum sul trading, sistemi di trading automatico e test di strategia

Piattaforma MetaTrader 5 beta build 2055: Integrazione con Python e massicci miglioramenti nello strategy tester

fxsaber, 2019.05.25 10:33

Riproduzione del bug visivo (ticchettio del grafico) dell'applicazione ChartSetSymbolPeriod

// Пример создания "живого" символа.

#include <Symbol.mqh> // https://www.mql5.com/ru/code/18855

const bool Init = EventSetMillisecondTimer(20); // С такой частотой будем пробрасывать тики

void OnInit()
{
  MathSrand((int)TimeLocal());
}

long Chart2 = 0;

void OnTimer()
{
  static bool FirstRun = true;

  static const SYMBOL Symb("CUSTOM_" + _Symbol + (string)MathRand()); // Создали символ
  
  static MqlTick Ticks[];
  static int Pos = 0;
    
  if (FirstRun)
  {
    Symb.DeleteHistory();       // Мало ли что-то было в истории - грохнули
    Symb.Delete(true);          // Символ тоже прибьем, чтобы исключить наличие тика в Обзоре рынка
    Symb.Create(NULL, _Symbol); // Воскресили девственно чистым.
    
    if (Symb.IsExist() && Symb.On())   // Если все отлично
    {     
      Chart2 = ChartOpen(Symb.Name, PERIOD_M1); // Открыли чарт
      CopyTicksRange(_Symbol, Ticks, COPY_TICKS_INFO, (ulong)D'2019.05.20' * 1000); // Взяли тики для проброса
    }
      
    FirstRun = false;
  }
  else if (Pos < ArraySize(Ticks))
  {
    Symb += Ticks[Pos++]; // Пробрасываем по тику
    
    // Для обновления чарта.
    ChartSetSymbolPeriod(Chart2, Symb.Name, PERIOD_M1); // Без этой строки дерганья графика прекращаются
    ChartRedraw(Chart2);    
  }
}

L'animazione mostra il grafico che si contrae. Se rimuovete ChartSetSymbolPeriod, il tic si ferma.

 
Slava:

Spiega più dettagliatamente cosa intendi con questo.

Cancellata tutta la storia delle barre, il grafico del simbolo personalizzato è vuoto con la scritta "Waiting for update". Cosa c'è che non va?

Esegui questo EA. Dopo alcune barre, disattivatelo senza chiudere il grafico. Usa CTRL+U per cancellare tutte le barre.

 
fxsaber:

Bug 13.

Lo stesso Expert Advisor riproduce anche il seguente bug

A sinistra - il grafico, a destra - la sua finestra delle proprietà (F8).

 

Bug 15.

Forum sul trading, sistemi di trading automatico e test di strategia

MetaTrader 5 piattaforma beta build 2055: integrazione con Python e miglioramenti massicci nello strategy tester

fxsaber, 2019.05.25 10:54

Dopo ogni applicazione di CustomRatesUpdate c'è un azzeramento di prev_calculated negli indicatori che sono in esecuzione sul simbolo personalizzato corrispondente.

Questo è un errore. prev_calculated dovrebbe tradursi nella prima barra che è stata applicata in CustomRatesUpdate.


ZY Stesso errore con CustomRatesReplace.

Sul simbolo di questo EA (con ChartSetSymbolPeriod-row rimosso) lanciamo il seguente indicatore

#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots indicator_buffers

int OnCalculate( const int rates_total, const int prev_calculated, const int, const double &[] )
{
  Print(prev_calculated);
  
  return(rates_total);
}

Restituisce solo zeri.

 
Slava:

Se per strumento stock si intende uno strumento con una profondità della coppa non nulla, la costruzione della barra in questo caso è stata corretta.

O date il vostro esempio.

Ora (2067) ho tutto corretto con questo, grazie.

 
fxsaber:

2063:

2069:

Motivazione: