Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1174

 

J'ai une question sur l'appel d'indicateurs via iCustom.

1. Il est possible d'exclure certains paramètres de l'indicateur de la liste des paramètres transmis à iCustom. Par exemple, je ne veux pas passer un paramètre de type chaîne de caractères ou autre. un paramètre externe de l'indicateur avec le modificateur sinput doit également être spécifié dans iCustom lors de l'appel depuis un Expert Advisor ?

2. Quelle est la meilleure solution, si l'indicateur a beaucoup de paramètres (environ des centaines) ? Existe-t-il une solution toute prête, comment appeler cet indicateur ?

Merci.

 

Je veux que l'EA ferme les positions ouvertes lorsque le prix traverse la MA.

Veuillez me conseiller sur la manière de mettre en œuvre cette mesure.

Merci.

 
RichLux:

Je veux que l'EA ferme les positions ouvertes lorsque le prix traverse la MA.

Veuillez me conseiller sur la manière de mettre en œuvre cette mesure.

Merci.

void CheckForClose_MA()
  {
   double MA=iMA(NULL,0,ma_period,ma_shift,MODE_SMMA,PRICE_MEDIAN,0);

   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;
        //---- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Low[1]>=MA) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
         break;
        }
     }
//----


doubleiMA(
symbole de chaîne de caractères,// nom du symbole
inttimeframe,// cadre temporel
intma_period,// période
intma_shift,// décalage de la moyenne
intma_method,// méthode de calcul de la moyenne
intapplied_price,//type de prix
intshift// shift
) ;

 

Comment savoir quels paramètres ont été envoyés à l'Expert Advisor via iCustom. Je reçois une valeur incorrecte du tampon spécifié dans iCustom, je veux vérifier si les données ont "atteint" l'indicateur après que iCustom ait été appelé.

Comment puis-je déboguer ?

 
Александр:

Il existe une fonction.


Chaque appel de fonction changera la variable ХХ, et j'ai besoin que ХХ soit externe (par la logique que je veux), mais chaque appel de fonction a commencé avec ХХ étant 0 et en conséquence return(ХХ) retournera sa valeur. Je ne comprends pas comment faire pour que la variable XX soit externe et que la fonction puisse être appelée de manière "autonome", isolée. Exactement par le biais de MQ4. Merci !


Je l'ai lu plusieurs fois, mais je ne comprends toujours pas ce que tu cherches.

Peut-être ça :

double XX = 0;


double x()
{
   double rez = XX;
   XX++;
   return rez;
}
 
Comment puis-je savoir si toutes les barres sont chargées sur le graphique ?
Il est nécessaire d'appeler le recalcul de l'indicateur uniquement lorsque tout est entièrement chargé.

La condition
if(time[0] > TimeCurrent() - 60 * ChartPeriod())
ne permet pas de résoudre le problème.
 

mémoriser et vérifier le nombre total de mesures, si la valeur ne "monte" pas en quelques secondes, alors "c'est parti".

puis recalculer à nouveau si

rates_total-prev_calculated > 1
 
Koldun Zloy:

Je l'ai lu plusieurs fois, mais je ne comprends toujours pas ce que tu cherches.

Peut-être que c'est le cas :

Il y a une fonction (c'est un indicateur dans mon EA, j'en ai besoin et ce n'est pas contesté, ceci un indicateur et il commence à fonctionner (compte à rebours) à partir d'un nouveau pic.). L'indicateur a plusieurs paramètres qui changent tout le temps. Comme je veux éviter les boucles, je rends ces paramètres externes (pour la fonction externe) afin de ne pas perdre leurs valeurs. Et dans tout nouvel appel de fonction, je ne vois que le changement de la valeur de l'indicateur. Mais je veux avoir une nouvelle "instance " de l'indicateur à partir d'un nouveau pic, tandis que l'ancienne "instance" continue de fonctionner et de changer les valeurs. Je veux y parvenir en utilisant les méthodes standard de MQ4, car je connais très peu les classes, les structures et autres héritages. Merci !
 
Александр:
J'ai une fonction (c'est un indicateur dans mon Expert Advisor, j'en ai besoin et elle n'est pas contestée, ceci la dinde et il commence à travailler (compte à rebours) à partir d'un nouveau sommet). J'ai un indicateur avec plusieurs paramètres qui changent tout le temps. Comme je veux éviter un cycle, je rends ces paramètres externes (pour la fonction externe) afin de ne pas perdre leurs valeurs. Et dans tout nouvel appel de fonction, je ne vois que le changement de la valeur de l'indicateur. Mais je veux avoir une nouvelle "instance " de l'indicateur à partir d'un nouveau pic, tandis que l'ancienne "instance" continue de fonctionner et de changer les valeurs. Je veux y parvenir en utilisant les méthodes standard de MQ4, car je connais très peu les classes, les structures et autres héritages. Merci !

Ça n'a pas aidé.

Vous devriez probablement apprendre la langue pour ne pas vous embrouiller avec les termes, au moins.

Je ne pense pas que tout le monde comprenne ce qu'on appelle une variable externe, ce que signifie "appeler une fonction de manière autonome".

Et quel est le rapport avec une boucle, que vous ne voulez pas utiliser, encore une fois, pour des raisons que vous seul comprenez.

Eh bien, je n'espère pas vous comprendre.


 
//+------------------------------------------------------------------+
//|           Проверка нажатия клавиш на клавиатуре                  |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(id==CHARTEVENT_KEYDOWN)
     {
     Alert(lparam);
     }
   }

Pouvez-vous me dire comment vérifier la combinaison, par exemple Shift+A !