Benutzerdefinierte Symbole. Fehler, Bugs, Fragen, Vorschläge. - Seite 11

 
fxsaber:

2033:

2063:

 
fxsaber:

Fehler 07.

Tester erzeugt Balken durch Last für Aktien benutzerdefinierte Symbole mit Bid-Preis zu bauen Bars.

Dementsprechend ist der Balkenverlauf im Terminal und im Tester völlig unterschiedlich. Und wenn jemand Balken im TS verwendet (z.B. Indikatoren), ist das Ergebnis des Backtests für ihn/sie zufällig.

Wenn wir mit einem Austauschinstrument ein Werkzeug mit einer von Null abweichenden Tiefe der Schale meinen, wurde die Konstruktion der Stäbe in diesem Fall korrigiert.

Entweder Sie geben ein eigenes Beispiel.

 
fxsaber:

Fehler 01.

Die benutzerdefinierte Zeichentabelle ist geöffnet. Wenn Sie z. B. alle Balken- und Tick-Historien manuell löschen, bleibt das Diagrammfenster einfach hängen, ohne sich zu aktualisieren.

Erwartetes Verhalten wie bei einem leeren benutzerdefinierten Symbol.

Erläutern Sie genauer, was Sie meinen mit

Die gesamte Balkenhistorie wurde gelöscht, das benutzerdefinierte Symboldiagramm ist leer und trägt die Aufschrift "Waiting for update". Was ist los?

 

Fehler 13.

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

MetaTrader 5 Plattform Beta-Build 2055: Integration mit Python und massive Verbesserungen im Strategie-Tester

fxsaber, 2019.05.25 10:33

Wiedergabe eines visuellen Fehlers (Zucken des Charts) Anwendung 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);    
  }
}

Die Animation zeigt die Zuckungen des Diagramms. Wenn Sie ChartSetSymbolPeriod entfernen, hören die Zuckungen auf.

 
Slava:

Erläutern Sie genauer, was Sie damit meinen.

Die gesamte Balkenhistorie wurde gelöscht, das Diagramm des benutzerdefinierten Symbols ist leer und trägt die Aufschrift "Waiting for update". Was ist los?

Führen Sie diesen EA aus. Deaktivieren Sie ihn nach einigen Takten, ohne den Chart zu schließen. Verwenden Sie STRG+U, um alle Balken zu löschen.

 
fxsaber:

Fehler 13.

Derselbe Expert Advisor reproduziert auch den folgenden Fehler

Links - das Diagramm, rechts - das Eigenschaftsfenster (F8).

 

Fehler 15.

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

MetaTrader 5 Plattform Beta-Build 2055: Integration mit Python und massive Verbesserungen im Strategie-Tester

fxsaber, 2019.05.25 10:54

Nach jeder Anwendung von CustomRatesUpdate wird prev_calculated in den Indikatoren, die für das entsprechende benutzerdefinierte Symbol ausgeführt werden, auf Null gesetzt.

Dies ist ein Fehler. prev_calculated sollte auf den ersten in CustomRatesUpdate angewendeten Balken übersetzt werden.


ZY Gleicher Fehler bei CustomRatesReplace.

Auf dem Symbol dieses EA (mit entfernter ChartSetSymbolPeriod-Zeile) starten wir den folgenden Indikator

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

Gibt nur Nullen zurück.

 
Slava:

Wenn mit einem Stockinstrument ein Instrument mit einer von Null abweichenden Tiefe der Schale gemeint ist, wurde die Stabkonstruktion in diesem Fall korrigiert.

Entweder Sie nennen ein Beispiel.

Jetzt (2067) habe ich damit alles richtig gemacht, Danke.

 

2069: