Erreurs, bugs, questions - page 2015

 
Vitaly Muzichenko:

Deux lignes ne seraient pas tout à fait aussi bien, mais un défilement d'une largeur serait génial, cliquez une fois et il défile à la largeur suivante au lieu d'un caractère à la fois comme c'est le cas maintenant.

Le défilement en pleine largeur rendrait impossible le déplacement pour le tri.


FireFox dispose d'un module complémentaire Tab Mix Plus. Il y a beaucoup d'options pour travailler avec les onglets - très pratique.

Vous pouvez faire des réglages d'affichage au moins comme ceci (si vous prenez un minimum et aucune couleur).

CheckBox - afficher les onglets sur plusieurs lignes

TextEdit - nombre maximal de lignes

Le défilement permet respectivement de se déplacer de haut en bas sur la ligne.

Ici, j'ai ouvert un tas d'onglets et fait une capture d'écran.


 
Kirill Belousov:

Le défilement sur toute la largeur rendra impossible l'utilisation du glisser-déposer pour le tri.


FireFox dispose d'un module complémentaire Tab Mix Plus. Il y a de nombreuses options d'onglets - très pratique.

Pour l'affichage des options, vous pouvez faire au moins les choses suivantes (si elles sont minimales et sans couleur)

CheckBox - afficher les onglets sur plusieurs lignes

TextEdit - nombre maximal de lignes

Le défilement permet respectivement de se déplacer de haut en bas sur la ligne.

Voici une série d'onglets et de captures d'écran http://prntscr.com/grmh13

Ici, vous demandez de la commodité, et de permettre aux autres de visualiser facilement leurs propres images, vous n'en avez aucune envie. Il existe une option standard pour insérer une image dans votre message. Il suffit de lever les yeux sur le nouveau menu des postes et de le rendre pratique pour les gens, sans passer par un service tiers.

 
Artyom Trishkin:

Ici, vous demandez la commodité, mais vous ne souhaitez pas que les autres puissent voir leurs propres photos. Il existe une option standard pour insérer une image dans votre message. Il suffit de lever les yeux sur le nouveau menu des postes et de le rendre pratique pour les gens, sans passer par un service tiers.

Je suis au courant de la fonction standard - le message précédent en faisait état.

Il y avait des doutes quant à l'apparence d'une telle image. C'est pourquoi j'ai temporairement inséré une capture d'écran. Dans peu de temps, j'ai reçu un avis sur la conception :(.

Maintenant, refaites sur l'image insérée.

 
Kirill Belousov:

Je suis au courant de la fonction standard - le message précédent en faisait état.

Il y avait des doutes quant à l'apparence d'une telle image. C'est pourquoi j'ai temporairement inséré une capture d'écran. Dans peu de temps, j'ai reçu un avis sur la conception :(.

Maintenant, refaites sur l'image insérée.

Merci. C'est beaucoup mieux comme ça ;)

 

Les poignées deCopyBuffer ou d'indicateur ne fonctionnent pas correctement.

// Вычисляем Машку от Машки через хэндл самого себя
#property indicator_separate_window 
#property indicator_buffers 1 
#property indicator_plots   1 

#property  indicator_type1   DRAW_LINE 
#property  indicator_color1  clrRed 
#property  indicator_style1  STYLE_SOLID 
#property  indicator_width1  1 

input bool CustomData = false; // true - кастомный режим для iCustom
input int MAPeriod = 1 e3;      // Период МАшки

string GetMyName( void )
{
  const int Length = StringLen(TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Indicators\\");
  const string Path = MQLInfoString(MQL_PROGRAM_PATH);
  
  return(StringSubstr(Path, Length, StringLen(Path) - Length - 4));
}

double Buffer[];
const bool Init = SetIndexBuffer(0, Buffer, INDICATOR_DATA);

const int handleMA = CustomData ? iMA(NULL, PERIOD_CURRENT, 100, 0, MODE_SMA, PRICE_OPEN) // от этой МАшки будет брать другую Машку, но не напрямую, а кастомно
                                : iMA(NULL, PERIOD_CURRENT, MAPeriod, 0, MODE_SMA, iCustom(_Symbol, PERIOD_CURRENT, GetMyName(), true));

int OnCalculate( const int rates_total,      // размер входных таймсерий 
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time 
                 const double& open[],       // Open 
                 const double& high[],       // High 
                 const double& low[],        // Low 
                 const double& close[],      // Close 
                 const long& tick_volume[],  // Tick Volume 
                 const long& volume[],       // Real Volume 
                 const int& spread[] )       // Spread 
{
  return(prev_calculated + CopyBuffer(handleMA, 0, prev_calculated, rates_total - prev_calculated, Buffer));
}

Cet indicateur produit des infovaleurs. Bug.

 
fxsaber:

Les poignées de CopyBuffer ou d'indicateur ne fonctionnent pas correctement.

Cet indicateur produit des infovaleurs. Bug.

Ne devrions-nous pas déplacer l'initialisation vers OnInit, pour ainsi dire, selon les classiques ? Et il n'y a pas besoin de vérifier le CopyBuffer? Eh bien, rien ne sera copié jusqu'à ce que l'indicateur (par poignée) soit construit.

 
Stanislav Korotky:

L'initialisation ne devrait-elle pas être déplacée vers OnInit, pour ainsi dire, selon les classiques ?

Non.

Et il n'y a pas besoin de vérifier le CopyBuffer, aussi ? Parce que rien ne sera copié jusqu'à ce que l'indicateur (par handle) soit construit.

Je l'ai vérifié, il est mauvais à 99%.
 
fxsaber:

Les poignées de CopyBuffer ou d'indicateur ne fonctionnent pas correctement.

Cet indicateur produit des infovaleurs. Bug.

INF - parce que cet indicateur particulier a EMPTY_VALUE = DBL_MAX. Pas de valeurs vides dans le tampon de l'indicateur - pas d'INF

 
A100:

INF - parce que cet indicateur particulier a EMPTY_VALUE = DBL_MAX. Aucune valeur vide dans le tampon de l'indicateur - pas d'INF

L'ensemble du CopyBuffer INF est là.

 
fxsaber:

L'intégralité du CopyBuffer y est INF.

Avec un algorithme de comptage glissant, deux prix DBL_MAX suffisent au début pour que le tampon entier devienne INF.

DBL_MAX + DBL_MAX = INF

et alors l'INF ne quittera pas le calcul

Vous devez modifier le code de tous les indicateurs pour ignorer EMPTY_VALUE.