Questions pour les débutants en MQL5. Les professionnels ne passent pas leur chemin. - page 5

 

Comment faire pour que certains tampons de l'indicateur ne soient pas dessinés sur le graphique, mais affichent leurs valeurs dans la" fenêtre dedonnées" de l'indicateur ?

Je le fais :

#property indicator_label1  "Buff"
#property indicator_type1   DRAW_NONE

int OnInit ()
{
  PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE);
}


mais l'indicateur dessine toujours un tampon.

 
_o0O:

Comment faire pour que certains tampons de l'indicateur ne soient pas dessinés sur le graphique, mais affichent leurs valeurs dans la" fenêtre dedonnées" de l'indicateur ?

Je le fais :


mais l'indicateur dessine toujours un tampon.

Je l'ai, ça fait ça :

#property indicator_label1  "Buff"
#property indicator_type1   DRAW_NONE

n'ont pas besoin de le faire.

Et curieusement, ce tampon devrait être spécifié dans #property indicator_plots... Bien que logiquement il ne devrait pas, parce qu'il est spécifié dans #property indicator_buffers et il ne nécessite pas de dessin.


CEPENDANT, le nom du tampon dans la fenêtre de données ne s'affiche pas correctement maintenant....specifiant avec PlotIndexSetString(0, PLOT_LABEL, "Buff") n'aide pas... Bref, aidez-moi s'il vous plaît.

 

Bon après-midi.

Je fais mes premiers pas dans mql5. J'ai généré un EA basé sur les indicateurs RSI M5 et RSI M15. Pouvez-vous m'indiquer comment faire en sorte qu'une transaction soit exécutée par le déclenchement des deux signaux en même temps ? Le poids pour les deux est de 1. Si je mets 0,5, aucune transaction ne sera exécutée. Paramètre Valeur seuil du signal pour ouvrir = 90.

 
_o0O:

il s'avère que c'est tout :

n'ont pas besoin de le faire.

Curieusement, ce tampon devrait être spécifié dans #property indicator_plots... Mais logiquement il ne devrait pas, parce qu'il est spécifié dans #property indicator_buffers et le dessin n'est pas nécessaire.


CEPENDANT, le nom du tampon dans la fenêtre de données est affiché de manière incorrecte maintenant....specifiant avec PlotIndexSetString(0, PLOT_LABEL, "Buff") n'aide pas... Bref, aidez-moi s'il vous plaît.

De l'aide ? Quel genre d'aide... ?

Eh bien, il suffit de spécifier

#property indicator_label1  "Buff"

et c'est tout, le tampon sera nommé dans la fenêtre de données, il affichera les valeurs et vous permettra d'obtenir ces valeurs de l'EA, et ne dessinera pas les valeurs (très pratique pour stocker des informations supplémentaires et ne pas encombrer le graphique avec des lignes de tampon).

 
_o0O:

il s'avère que c'est tout :

n'ont pas besoin de le faire.

Curieusement, ce tampon devrait être spécifié dans #property indicator_plots... Bien que logiquement il ne devrait pas, parce qu'il est spécifié dans #property indicator_buffers et il n'est pas nécessaire de le dessiner.


SZY mais maintenant le nom du tampon dans la fenêtre de données est affiché de manière incorrecte, spécifier un nom avec PlotIndexSetString(0, PLOT_LABEL, "Buff") n'aide pas... Bref, aidez-moi s'il vous plaît.

La couleur clr_NONE doit être utilisée à la place du type DRAV_NONE.

Voici le code de test

#property indicator_separate_window

#property indicator_buffers 2
#property indicator_plots   2
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrRed
#property indicator_width1  2
#property indicator_label1  "clrRed"
#property indicator_type2   DRAW_HISTOGRAM
#property indicator_color2  clrNONE
#property indicator_width2  2
#property indicator_label2  "clrNONE"

/****************indicator buffers****************/
double buf1[], buf2[];
/**************Custom indicator initialization function**************/
int OnInit()
{
    SetIndexBuffer(0, buf1, INDICATOR_DATA);
    SetIndexBuffer(1, buf2, INDICATOR_DATA);
   return(INIT_SUCCEEDED);
}/*******************************************************************/

/****************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, limit = rates_total-prev_calculated; // Это тупо для примера. В нормальном индикаторе так делать нельзя!
 for(i = 0; i < limit; i++)
  {
   if(i%2 > 0)
    buf1[i] = 1;
   else
    buf2[i] = 1;
  }
 
   return(rates_total);
}/*******************************************************************/
 
Alexey Viktorov:

Vous n'avez pas besoin de mettre le type DRAV_NONE, mais la couleur clr_NONE.

Voici le code de test

tout ceci est inutile, il suffit de spécifier l'étiquette

#property indicator_label1  "Buff"
 
_o0O:

tout cela est superflu, il suffit de spécifier l'étiquette

Si vous êtes si intelligent, pourquoi avez-vous posé la question ?

 
Alexey Viktorov:

Si vous êtes si intelligent, pourquoi avez-vous posé la question ?

le plus intelligent n'est pas celui qui ne pose pas de questions....

Tout utilisateur du forum peut trouver les réponses à ses questions, mais à quoi sert ce forum si ce n'est à trouver des réponses le plus rapidement possible ?

Ma méthode est plus simple et plus concise, utilisez-la.

ZS Arrêtez de "piquer" les étrangers, vous êtes malin.

 
_o0O:

le plus intelligent n'est pas celui qui ne pose pas de questions....

Tout utilisateur du forum peut trouver les réponses à ses questions, mais à quoi sert ce forum si ce n'est à trouver des réponses le plus rapidement possible ?

Ma méthode est plus simple et plus succincte, utilisez-la.

Vous avez tort. Loin, très loin de là.

 
Alexey Viktorov:

Oh, tu te trompes complètement. Loin, très loin de là.

D'autant plus qu'il ne s'agit pas de n'importe qui. Il s'ensuit que toutes les questions sont les bienvenues.

Il n'y a pas de telle nuance dans l'aide. DRAW_NONE ne fonctionne pas non plus #property ou dans PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE), PlotIndexSetString(0, PLOT_LABEL, "Buff") ne fonctionne pas non plus, alors quelle est la logique derrière la spécification de clrNONE pour atteindre le but ?

Raison: