Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 991

 
LuckyTrader:
L'erreur a disparu, avec le même libellé, maintenant elle est passée à une autre partie. Juste au-dessus, j'ai écrit à Igor

Insérez les impressions où l'erreur se produit, peut-être pourrez-vous résoudre votre problème de cette façon.

Il n'y a pas d'autre moyen, j'ai déjà expliqué la raison de votre erreur.

 

Bonjour, j'ai décidé de réécrire l'indicateur de MQL4 à MQL5 et je suis resté bloqué dans les tampons de l'indicateur... Je pense avoir saisi tout ce dont j'avais besoin mais la ligne de l'indicateur ne s'affiche toujours pas !

Voici un exemple, je veux afficher le prix de clôture pour les 30 dernières barres, j'ai même mis un commentaire sur le tampon, pour voir s'il est rempli avec quelque chose ...

La mémoire tampon se remplit mais le graphique est vide et je ne vois aucune image ((()

Quel peut être le problème ? Peut-être que les barres sont à l'envers dans MQL5).


//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                                                                . |
//|                                                                . |
//+------------------------------------------------------------------+
#property copyright "."
#property link      "."
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 8         // Количество буферов индикатора
#property indicator_plots   8         // Количество графических серий

#property indicator_label1 "TestLine" 
#property indicator_type1 DRAW_LINE  
#property indicator_style1 STYLE_SOLID 
#property indicator_width1 1  
#property indicator_color1 Red  
//+------------------------------------------------------------------+
//|                        БУФЕРЫ                                    |
//+------------------------------------------------------------------+
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
//+------------------------------------------------------------------+
//|                     ПАРАМЕТРЫ БУфЕРА                             |
//+------------------------------------------------------------------+
int OnInit(){                   

SetIndexBuffer(0,Buffer1,INDICATOR_DATA);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);  
PlotIndexSetInteger(0,PLOT_LINE_WIDTH,1);         
PlotIndexSetInteger(0,PLOT_LINE_COLOR,Blue);   

return(INIT_SUCCEEDED);}
//+------------------------------------------------------------------+
//| Деинициализация                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){
Comment("");}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| 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[]){
                
                
for(int Z = 30; Z>=0; Z--) {
Buffer1[Z] = iClose(NULL,0,Z);} 
Comment(Buffer1[0]);               

return(rates_total);}
//+------------------------------------------------------------------+

 
Nikita Zubarov:

Bonjour, j'ai décidé de réécrire l'indicateur de MQL4 à MQL5 et je suis resté bloqué dans les tampons de l'indicateur... Je pense avoir saisi tout ce dont j'avais besoin mais la ligne de l'indicateur n'est toujours pas affichée !

Voici un exemple, je veux afficher le prix de clôture pour les 30 dernières barres, j'ai même mis un commentaire sur le tampon, pour voir s'il est rempli avec quelque chose ...

La mémoire tampon se remplit mais le graphique est vide et je ne vois aucune image ((()

Quel peut être le problème ? Peut-être que les barres sont à l'envers dans MQL5).


La numérotation des barres dans MQL5 est inversée.

for(int Z = rates_total-50; Z<rates_total; Z++)


l'indexation peut être modifiée avechttps://www.mql5.com/ru/docs/array/arraysetasseries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Igor Makanu:

La numérotation des barres dans MQL6 est inversée.


vous pouvez modifier l'indexation en utilisanthttps://www.mql5.com/ru/docs/array/arraysetasseries

Merci !, j'ai ajouté une ligne et il a commencé à s'afficher normalement !

ArraySetAsSeries(Buffer1,true); 
mais je pense que la numérotation des barres est la même de droite à gauche, seuls les tampons vont en arrière.....
 
Nikita Zubarov:

Merci, j'ai ajouté une ligne et ça commence à s'afficher correctement !

mais il me semble que la numérotation des barres est la même de droite à gauche, seuls les tampons vont en arrière.....

En 4, la mesure 0 est la mesure la plus à droite.

Dans 5, la barre n°0 est la barre la plus à gauche.

par défaut, l'indexation des tampons indicateurs est la même que pour les séries temporelles

si vous utilisez ArraySetAsSeries(), il ne sera appliqué qu'à un seul tableau - dans votre exemple, au tableau de l'indicateur Buffer1, pour un calcul correct, vous devez également l'appliquer à la clôture.

ArraySetAsSeries(Buffer1,true); 
ArraySetAsSeries(close,true); 
for(int Z = 30; Z>=0; Z--) 
{
Buffer1[Z] = сlose[i];
} 

ou modifier la boucle comme décrit ci-dessus

 
Bonjour, Pouvez-vous me conseiller si je veux que mon EA ouvre une position sur un symbole autre que le graphique actuel.
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, Lots, Ask, Slip, 0, 0, "", Magic, 0, Blue)
Ai-je raison ? Corrigez-moi si non
 
Averman:
Bonjour, Pouvez-vous me conseiller si je veux que mon EA ouvre une position sur un symbole autre que le graphique actuel.
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, Lots, Ask, Slip, 0, 0, "", Magic, 0, Blue)
Ai-je raison ? Corrigez-moi si non

Bien sûr, ce n'est pas bien.

OrderSend("EURUSD", OP_BUY, Lots, MarketInfo("EURUSD",MODE_ASK), Slip, 0, 0, "", Magic, 0, Blue) 
Si je n'ai pas fait d'erreur quelque part, vous en avez fait. Mais dans tous les cas, le sens doit être compréhensible.
 
MQL6 est déjà apparu, quelqu'un a-t-il testé ce shell ?
 
Seric29:
MQL6 est déjà apparu, quelqu'un a-t-il testé ce shell ?

C'est aujourd'hui le 1er avril ?

 
Alexey Viktorov:

Ce n'est pas le 1er avril ?

Et j'ai commencé à googler)).

... j'ai trouvé un site mql6 d'une page et un lien vers un forum à mql5.com