Questions des débutants MQL5 MT5 MetaTrader 5 - page 236

 
barabashkakvn:
Tous les calculs sont effectués dans OnCalculate (c'est-à-dire qu'un nouvel événement de barre est défini ici).
Merci, je vais jeter un coup d'œil. Peut-être que je ne comprends pas quelque chose, mais il semble que dans Five il n'est pas possible de spécifier l'index du tampon pour obtenir la valeur de l'indicateur personnalisé.
 
forexman77:
Merci, je vais jeter un coup d'oeil. Peut-être que je ne comprends pas quelque chose, mais il semble qu'il n'y ait pas de possibilité de spécifier l'index du tampon pour obtenir la valeur de l'indicateur personnalisé.
iCustom donne le handle de l'indicateur personnalisé. Puis CopyBuffer, dans lequel le deuxième paramètre est le numéro du tampon.
 
Pouvez-vous me dire s'il existe une fonction qui arrête complètement l'optimisation d'un EA, plutôt qu'un cycle d'optimisation séparé ?
 
barabashkakvn :
iCustom donne le handle de l'indicateur personnalisé. Puis CopyBuffer, dans lequel le deuxième paramètre est le numéro du tampon.

Dites-moi, est-il possible d'obtenir la valeur de l'indicateur dans le script ?

J'ai essayé de cette façon :

input int MA_Period=21;
input int MA_Shift=0;
input ENUM_MA_METHOD MA_Method=MODE_SMA;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
double MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE // считаем по ценам закрытия
                     );  
Alert("MA_handle=",MA_handle);
  }

J'obtiens la valeur sur n'importe quel indicateur 10.

J'ai également essayé de cette manière (l'erreur 4807 apparaît) :

input int MA_Period=21;
input int MA_Shift=0;
input ENUM_MA_METHOD MA_Method=MODE_SMA;
int MA_handle;
double ma1Val[]; 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

//--- массив значений индикатора MA
   ArraySetAsSeries(ma1Val,true);
//--- копируем значения индикаторов из индикаторных буферов
   if(CopyBuffer(MA_handle,0,0,3,ma1Val)<0)
     {
      Alert("Ошибка копирования буферов индикатора Moving Average - номер ошибки:",GetLastError(),"!!");
      return;
     }
MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE // считаем по ценам закрытия
                     );  
Alert("ma1Val[0]=",ma1Val[0]);
  }
 
forexman77:
La procédure suivante sera utilisée :
iCustom vous donne la poignée de l'indicateur personnalisé. Ensuite, on utilise CopyBuffer, dans lequel le deuxième paramètre est le numéro du tampon.

Dites-moi, est-il possible d'obtenir la valeur de l'indicateur dans le script ?

J'ai essayé de cette façon :

J'obtiens la valeur sur n'importe quel indicateur 10.

J'ai essayé une autre méthode (l'erreur 4807 est apparue) :

1. lisez l'aide d'iCustom.
2. Pour obtenir la valeur de la mémoire tampon de l'indicateur : obtenez la poignée de l'indicateur, puis copiez la mémoire tampon de l'indicateur requise à l'aide de CopyBuffer.
 
barabashkakvn:
1. lisez l'aide d'iCustom.
2. Ordre d'obtention de la valeur du tampon de l'indicateur : obtenir le handle de l'indicateur, puis utiliser CopyBuffer pour copier le tampon de l'indicateur requis par ce handle.
Je comprends, je vais l'étudier. J'ai posé une question sur le script parce qu'il n'a pas de "OnInit" et qu'il obtient le handle. Donc le script demande le handle avant "OnStart" ?
 
forexman77:
Je vois, je vais m'en occuper. J'ai posé une question sur le script parce qu'il n'a pas de "OnInit" et qu'il obtient le handle. Cela signifie-t-il que le script demande le handle avant "OnStart" ?
OnInit est présent dans les Expert Advisors et les indicateurs.
 
barabashkakvn:
OnInit est dans les experts et les indicateurs.
Tout a marché ! !! Merci ! !!
 
forexman77:
Tout s'est arrangé ! Merci ! !!
Vous êtes les bienvenus.
 
Fleder:
Les produits du marché ont entre 5 et 20 activations (à la discrétion du détaillant). Si vous n'avez pas épuisé vos tentatives d'activation, ne vous inquiétez pas, ils ne vous factureront pas de frais supplémentaires.
Merci pour la réponse, je vais appuyer sur le bouton pour acheter. Il n'y en a pas d'autre :-)
Raison: