Erreurs, bugs, questions - page 525

 

Bonjour, est-il possible de modifier l'outil graphique standard de quelque manière que ce soit ? Plus précisément : ajoutez une ligne verticale à la grille Fibo, tracée à un facteur de 1,3.

 

une question sur l'utilisation des indicateurs. J'ai écrit un code de test.

int Fractals;
double bar_val[];
bool start;
int OnInit()
{
   Fractals = iFractals(_Symbol, _Period);
   if (Fractals == INVALID_HANDLE) return (1);
   if (!ArrayResize(bar_val, 2)) return (1);
   if (!ArraySetAsSeries(bar_val, true)) return (1);
   start = false;
   return(0);
}

void OnTick()
{
   if (start) return; else start = true;
   for (int i = 0; i < 10; i++)
   {
      CopyBuffer(Fractals, UPPER_LINE, i, 2, bar_val);
      if (EMPTY_VALUE != bar_val[0])
         Print("1. i = " + string(i) + ", bar_val = " + string(bar_val[0]));
      CopyBuffer(Fractals, LOWER_LINE, i, 2, bar_val);
      if (EMPTY_VALUE != bar_val[0])
         Print("2. i = " + string(i) + ", bar_val = " + string(bar_val[0]));
   }
}

Il affiche périodiquement la fractale avec i = 2, mais elle n'est pas présente à l'écran (à partir de l'indicateur standard Fractals).

Veuillez indiquer quelle est l'erreur

 
Pour une raison quelconque, entre 2001 et 2006, aucun expert n'est testé. J'ai regardé l'euro et la livre. J'ai fermé le terminal et supprimé l'historique. Je l'ai téléchargé à nouveau. C'est pareil. Il est possible d'ouvrir des marchés jusqu'en 2001. Et de 2001 à 2006, il saute quand il y a des signaux. Pourquoi ?
 

Les boutons de délai de la barre terminale sont bloqués. Parfois plusieurs d'entre eux à la fois lorsque l'on passe fréquemment d'une TF à une autre. Peut-être est-ce dû à un grand nombre de fenêtres, d'indicateurs, de modèles... Cependant, j'avais l'habitude d'avoir autant de fenêtres mais cet effet n'a pas été observé. La capture d'écran est un exemple d'incohérence entre le bouton "timeframe" activé et la valeur réelle affichée dans le coin supérieur gauche du graphique. Il s'agit plutôt d'un effet à long terme, même s'il disparaît tôt ou tard.

Parfois, aucune pression n'est exercée.

 

Puis-je contrôler la taille de la fenêtre en utilisant mql5 ?

 
ilunga:

une question sur l'utilisation des indicateurs. J'ai écrit un code de test.

Il affiche périodiquement la fractale avec i = 2, mais elle n'est pas présente à l'écran (à partir de l'indicateur standard Fractals).

Veuillez indiquer quelle est l'erreur

Je ne devrais pas savoir en un coup d'œil comment traiter le code du Conseiller Expert
 
tol64:
D'une manière ou d'une autre, entre 2001 et 2006, les experts ne sont pas testés. J'ai regardé l'euro et la livre. J'ai fermé le terminal et supprimé l'historique. Je l'ai téléchargé à nouveau. C'est pareil. Il est possible d'ouvrir des marchés jusqu'en 2001. Et de 2001 à 2006, il saute quand il y a des signaux. Pourquoi ?
Informations complémentaires. Cela ne se produit que si vous avez sélectionné la période D1 dans les paramètres du testeur. Si je sélectionne l'unité de temps D1 dans les paramètres du conseiller expert et un TF plus petit dans les paramètres du testeur, il n'y aura pas de saut. Est-ce un bug ou y a-t-il une explication ?
 

J'ai créé un indicateur simple, mais je ne comprends pas pourquoi il ne veut pas fonctionner ;(

//+------------------------------------------------------------------+
//|                                                      testind.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot Vol
#property indicator_label1  "UniPrice"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrLightSlateGray
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
#include <MovingAverages.mqh>
//--- input parameters
input int      Smooth=50;
//--- indicator buffers
double         SmoothSpreadBuffer[];
double         SpreadBuffer[];
double         UniPriceBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,UniPriceBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,SpreadBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(2,SmoothSpreadBuffer,INDICATOR_CALCULATIONS);
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   int i;
   for(i=1;i<rates_total;i++)
     {
      SpreadBuffer[i]=(high[i]-low[i]);
     }  
     
   SmoothedMAOnBuffer(rates_total,prev_calculated,
                         1,  // с какого индекса есть значения в массиве для сглаживания 
                         Smooth,  // период экспроненциальной средней
                         SpreadBuffer,       // буфер для взятия средней
                         SmoothSpreadBuffer);  // в этот буфер помещаем значения средней      
   for(i=1;i<rates_total;i++)
     {
      UniPriceBuffer[i]=close[i]/SmoothSpreadBuffer[i];//не показывает
      //UniPriceBuffer[i]=close[i]/SmoothSpreadBuffer[rates_total-1];//показывает
      //UniPriceBuffer[i]=close[i];//показывает
      //UniPriceBuffer[i]=SmoothSpreadBuffer[i];//показывает
     }  
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Pourquoi ne veut-il pas diviser l'un par l'autre et montrer le résultat ?

Parfois il donne un résultat, mais il ne correspond pas à la réalité, par exemple EURUSD devrait avoir une valeur entre 300-400 sur l'horloge...

 
Olegts:

J'ai créé un indicateur simple, mais je ne comprends pas pourquoi il ne veut pas fonctionner ;(

close[i] quand je le remplace, SmoothSpreadBuffer[i] quand je le remplace, pourquoi ne veut-il pas diviser l'un par l'autre et afficher le résultat ?

C'est vrai, parfois il donne un résultat, mais il ne correspond pas à la réalité, par exemple, l'horloge EURUSD devrait avoir une valeur dans la gamme de 300-400...

UniPriceBuffer[i]=close[i]/SmoothSpreadBuffer[i];

Il suffit de substituer les valeurs EURUSD ici pour l'heure actuelle et vous l'obtiendrez :

Ma par exemple avec une moyenne de 16 aux prix de clôture

UniPriceBuffer[i] = 1,33846 / 1.33932 = 0,99935

ou mieux d'utiliser

handle=iMA(name,period,ma_period,ma_shift,ma_method,applied_price);
и т.д
 

Après le dernier build, le terminal se bloque au chargement. Il n'y a pas d'accès au menu ou au menu contextuel. Aucun accès au menu ou au menu contextuel. WIn7. La fenêtre d'aperçu des symboles est vide. L'icône de connexion est rouge. Pas de charge CPU. Que faire et quand la stabilité sera-t-elle disponible ?

Описание:
  Ошибка привела к остановке взаимодействия программы с Windows.

Сигнатура проблемы:
  Имя события проблемы:    AppHangB1
  Имя приложения:    terminal.exe
  Версия приложения:    5.0.0.514
  Отметка времени приложения:    00343800
  Сигнатура зависания:    86b5
  Тип зависания:    1
  Версия ОС:    6.1.7601.2.1.0.256.1
  Код языка:    1049
  Доп. сигнатура зависания 1:    86b56845a796dcc49c1ed94bca152915
  Доп. сигнатура зависания 2:    4dea
  Доп. сигнатура зависания 3:    4dea45bbcdd37e9fd7bef8af1f8c0d94
  Доп. сигнатура зависания 4:    1df5
  Доп. сигнатура зависания 5:    1df5990b738955081f33bb6a466caece
  Доп. сигнатура зависания 6:    b4e6
  Доп. сигнатура зависания 7:    b4e6e85bfba9e3852328760498392cb4