Symboles personnalisés. Erreurs, bogues, questions, suggestions. - page 11

 
fxsaber:

2033 :

2063 :

 
fxsaber:

Bug 07.

Tester génère des barres en recherchant en dernier lieu des symboles personnalisés en stock avec le prix de l'offre pour construire des barres.

Par conséquent, l'historique des barres dans le Terminal et le Testeur est complètement différent. Et si quelqu'un utilise des barres dans le TS (indicateurs, par exemple), le résultat du backtest est aléatoire pour lui.

Si par instrument d'échange on entend un outil dont la profondeur de la coupe n'est pas nulle, la construction des barres dans ce cas a été corrigée.

Ou bien donnez votre propre exemple.

 
fxsaber:

Bug 01.

Le tableau des caractères personnalisés est ouvert. Si, par exemple, vous supprimez manuellement l'historique des barres et des tics, la fenêtre du graphique se bloque, sans être rafraîchie.

Comportement attendu comme avec un symbole personnalisé vide.

Expliquez plus en détail ce que vous entendez par

J'ai supprimé tout l'historique des barres, le graphique des symboles personnalisés est vide avec "Waiting for update" écrit dessus. Qu'est-ce qu'il y a ?

 

Bug 13.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Plate-forme MetaTrader 5 beta build 2055 : Intégration avec Python et améliorations massives dans le testeur de stratégie

fxsaber, 2019.05.25 10:33

Lecture de l'application ChartSetSymbolPeriod qui présente un bogue visuel (oscillation du graphique).

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

#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'animation montre l'oscillation du graphique. Si vous supprimez ChartSetSymbolPeriod, le tremblement s'arrête.

 
Slava:

Expliquez plus en détail ce que vous entendez par là.

Supprimé tout l'historique des barres, le graphique du symbole personnalisé est vide avec "Waiting for update" écrit dessus. Qu'est-ce qu'il y a ?

Exécutez cette EA. Après quelques barres, désactivez-la sans fermer le graphique. Utilisez CTRL+U pour supprimer toutes les barres.

 
fxsaber:

Bug 13.

Le même conseiller expert reproduit également le bogue suivant

A gauche - le graphique, à droite - sa fenêtre de propriétés (F8).

 

Bug 15.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Plate-forme MetaTrader 5 beta build 2055 : Intégration avec Python et améliorations massives dans le testeur de stratégie

fxsaber, 2019.05.25 10:54

Après chaque application de CustomRatesUpdate, il y a une mise à zéro de prev_calculated dans les indicateurs qui fonctionnent sur le symbole personnalisé correspondant.

Ceci est une erreur. prev_calculated devrait correspondre à la première barre qui a été appliquée dans CustomRatesUpdate.


ZY Même erreur avec CustomRatesReplace.

Sur le symbole de cet EA (avec ChartSetSymbolPeriod-row enlevé) nous lançons l'indicateur suivant

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

Ne renvoie que des zéros.

 
Slava:

Si par instrument de stock on entend un instrument dont la profondeur de la coupe n'est pas nulle, la construction de la barre a été corrigée dans ce cas.

Ou bien donnez votre exemple.

Maintenant (2067) j'ai tout correct avec ceci, merci.

 
fxsaber:

2063 :

2069 :

Raison: