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

 

Quelqu'un peut-il me dire pourquoi mon indicateur est affiché dans les tests et reste dans la fenêtre de l'indicateur après la fin des tests, mais que si je l'appelle via iCustom dans un Expert Advisor, l'indicateur n'est pas affiché ?

//+------------------------------------------------------------------+
//|                                             Tiscks_Window_49.mq4 |
#property version   "1.00"
#property strict

#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1 clrLawnGreen

double ExtMapBuffer1[];
int Draw_Bars;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   IndicatorShortName("Ask");
   IndicatorDigits(5);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexLabel(0,"Ask");
//---
   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[])
  {
//---
   ExtMapBuffer1[0]=MarketInfo(Symbol(),MODE_ASK);
   for(int i=Bars-2; i>=0; i --)
     {
      ExtMapBuffer1[i+1]=ExtMapBuffer1[i];
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+


Peut-être que je ne l'appelle pas correctement dans iCustom ?

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double sep_window=iCustom(Symbol(),PERIOD_CURRENT,"Tiscks_Window_49",0,0);
   Print(" sep_window= ",sep_window);
  }
//+------------------------------------------------------------------+
 
Nauris Zukas:

Quelqu'un peut-il me dire pourquoi mon indicateur est affiché dans les tests et reste dans la fenêtre de l'indicateur après la fin des tests, mais que si je l'appelle via iCustom dans un Expert Advisor, l'indicateur n'est pas affiché ?
Peut-être que je ne l'appelle pas correctement dans iCustom ?

Tu as raison. Essayez-le avec d'autres indicateurs - ce sera la même chose.

 
Nauris Zukas:

Quelqu'un peut-il me dire pourquoi mon indicateur est affiché dans les tests et reste dans la fenêtre des indicateurs après la fin des tests, mais que si je l'appelle via iCustom dans le Conseiller Expert, l'indicateur n'est pas affiché ?


Peut-être que je ne l'appelle pas correctement dans iCustom ?

ExtMapBuffer1[0]=MarketInfo(Symbol(),MODE_ASK);

essayez de le dire simplement =Demandez ;
ou, pour vérifier close[0]

et ici, pourquoi avoir besoin de déplacer l'historique entier ? les 100-300 premières barres sont suffisantes

for(int i=Bars-2; i>=0; i --)
 
LRA:

C'est bon. Essayez avec d'autres indicateurs - ce sera la même chose...

J'ai essayé le RSI, tout fonctionne. Il y a une nuance quelque part, je ne sais pas encore où.


 
Taras Slobodyanik:

essayez simplement =Demander ;
ou pour vérifier close[0]

et ici, pourquoi voudriez-vous déplacer toute l'histoire ? Les 100 à 300 premières barres sont suffisantes.

Je l'ai changé mais ça n'aide pas non plus.

 
Nauris Zukas:

Quelqu'un peut-il me dire pourquoi mon indicateur est affiché dans les tests et reste dans la fenêtre de l'indicateur après la fin des tests, mais que si je l'appelle via iCustom dans un Expert Advisor, l'indicateur n'est pas affiché ?


Peut-être que je ne l'appelle pas correctement dans iCustom ?

C'est peut-être parce que l'indicateur est rédigé de cette façon. Quelle est la probabilité qu'il n'ait simplement pas assez de temps pour recalculer toutes les barres lorsqu'il est appelé par le conseiller expert ?

Essayez de recalculer toutes les barres une seule fois, et ensuite seulement un nouvel appel du conseiller expert.
 
Alexey Viktorov:

Quelle est la probabilité qu'il n'ait tout simplement pas le temps de recalculer toutes les barres lorsque je l'appelle depuis le conseiller expert ?

J'imprime l'impression dans Expert Advisor et il montre que les prix sont là, ce qui signifie que les barres ont été recalculées.

Alexey Viktorov:
Essayez de recalculer toutes les barres une seule fois et ensuite seulement un nouvel appel de l'EA.

Je n'ai pas encore testé cette variante, je réfléchis encore à la manière de le faire.

 

Bonjour, je fais mes premiers pas, j'ai lu le tutoriel etc, je me suis peut-être trompé dans ma question, mais quand même......

Si je veux obtenir une archive de ticks pour les deux dernières années, je peux en avoir besoin pour une période plus longue afin de l'analyser dans une application tierce. Si je ne me trompe pas, les barres ne contiennent que les données actuelles du graphique, merci.

 
ijonhson:

Bonjour, je fais mes premiers pas, j'ai lu le tutoriel etc, je me suis peut-être trompé dans ma question, mais quand même......

Si je veux obtenir une archive de ticks pour les deux dernières années, je peux en avoir besoin pour une période plus longue afin de l'analyser dans une application tierce. Si je ne me trompe pas, les barres ne contiennent que les données actuelles du graphique, merci.

Si vous ne savez pas comment utiliser ces journaux, n'essayez pas de les écraser avec d'autres journaux. Google vous aidera.

 

Bonjour Artiom, pourriez-vous me dire comment écrire un EA de façon à ce qu'il n'ouvre pas d'ordres tant que le prix n'a pas dépassé un certain niveau et qu'il continue à ouvrir des ordres même après que le prix soit repassé au-dessus de ce niveau ? Salutations Andrei.

Raison: