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

 
Artyom Trishkin:

Il suffit d'ajouter un autre tableau CArrayObj au tableau CArrayObj : Add()

Cela ne fonctionne pas comme ça. La conversion des paramètres n'est pas autorisée.

Au fait, si ça compte. L'objet à ajouter au tableau est une classe héritée de CArrayObj.

class CCustomClass : public CArrayObj
{
}




CCustomClass obj1;
CCustomClass obj2;
...

CArrayObj objects_array;
objects_array.Add(obj1); 
Eh bien, il jure à la dernière ligne - conversion de paramètres non autorisée.
 
objects_array.Add(GetPointer(obj1)); 
Ça marche, je n'ai pas vu que je n'avais pas de pointeur.
 
TaywinLannister:

Chers membres du forum, aidez-moi s'il vous plaît !!!

Je veux affecter une étape de prix à une variable :

int V=SymbolInfoInteger(Symb,SYMBOL_POINT) ;

error : 'SymbolInfoInteger' - aucune des surcharges ne peut être appliquée à l'appel de fonction

Quelle est mon erreur, déjà ?


int V=(int)SymbolInfoInteger(Symb,SYMBOL_POINT) ;

Alors essayez.

 
foreXteller:

Chers membres du Forum !

Veuillez me conseiller ! !!

La fenêtre MetaTrader 5 affiche les valeurs Bid& Ask, qui (d'après ce que je comprends) déterminent le gain/la perte.

Cependant, lorsque j'essaie d'utiliser les cotations minute de l'historique pour tester ma stratégie, ces cotations ne contiennent pas les valeurs Bid et Ask, mais donnent les valeurs " OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL","VOL","SPREAD". Il n'est pas très clair comment prendre l'offre et la demande à partir de ces valeurs, ainsi que la façon de calculer le spread.

Tout est absolument clair. Décrivez plus en détail ce que signifie exactement "lorsque j'essaie d'utiliser les guillemets de l'historique des minutes" ? Que faites-vous ou voulez-vous faire exactement ?

 
TaywinLannister:

Chers membres du forum, aidez-moi s'il vous plaît !!!

Je veux affecter une étape de prix à une variable :

int V=SymbolInfoInteger(Symb,SYMBOL_POINT) ;

error : 'SymbolInfoInteger' - aucune des surcharges ne peut être appliquée à l'appel de fonction

Quelle est mon erreur, déjà ?


AideSymbolInfoInteger:

1. Renvoie directement la valeur de la propriété.

long  SymbolInfoInteger( 
   string                    name,      // символ 
   ENUM_SYMBOL_INFO_INTEGER  prop_id    // идентификатор свойства 
   );

2. Renvoie vrai ou faux selon le succès de la fonction. En cas de succès, la valeur de la propriété est placée dans la variable de destination passée par référence par le dernier paramètre.

bool  SymbolInfoInteger( 
   string                    name,      // символ 
   ENUM_SYMBOL_INFO_INTEGER  prop_id,   // идентификатор свойства 
   long&                     long_var   // сюда примем значение свойства 
   );


C'est-à-dire OR long OR bool.

 
TaywinLannister:

Chers membres du forum, aidez-moi s'il vous plaît !!!

Je veux affecter une étape de prix à une variable :

int V=SymbolInfoInteger(Symb,SYMBOL_POINT) ;

error : 'SymbolInfoInteger' - aucune des surcharges ne peut être appliquée à l'appel de fonction

Quelle est mon erreur, déjà ?


double V=SymbolInfoDouble(Symb,SYMBOL_POINT);

Point est une valeur de type double. Lorsqu'il est reçu en tant que int, il aura une valeur nulle.

 
Vladimir Karputov:

SymbolInfoInteger Aide :

1. Renvoie directement la valeur de la propriété.

2. Renvoie vrai ou faux en fonction du succès de la fonction. En cas de succès, la valeur de la propriété est placée dans la variable de destination passée par référence par le dernier paramètre.


C'est-à-dire OR long OR bool.

Compris, merci)

 
#property copyright "Copyright 2018, Sergey S Morozov"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

//#property indicator_separate_window    // Индик. рисуется в новом окне
#property indicator_chart_window    // Индик. рисуется в основном окне

#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Red     // Цвет первой линии

extern int History  =50;            // Колич.баров в расчётной истории
extern int Aver_Bars=5;             // Количество баров для расчёта

double ArrayBuff[];

//----------------------------------------------------------------------------------------------------

int OnInit()
{
   SetIndexBuffer(0,ArrayBuff);
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
   return(INIT_SUCCEEDED);
}

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,                           // Индекс бара
      n,                               // Формальный параметр
      Counted_bars;                    // Количество просчитанных баров 
      double
      Sum_H,                           // Сумма значений High за переиод
      Sum_L;                           // Сумма значений Low  за переиод
   //--------------------------------------------------------------------
      Counted_bars=IndicatorCounted(); // Количество просчитанных баров
      i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
      if (i>History-1)                 // Если много баров то ..
         i=History-1;                  // ..рассчитывать заданное колич.
      while(i>=0)                      // Цикл по непосчитанным барам
        {
         Sum_H=0;                      // Обнуление в начале цикла
         Sum_L=0;                      // Обнуление в начале цикла
         for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений
           {
            Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
            Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
           }
         ArrayBuff[i]=(Sum_H-Sum_L)/Aver_Bars;  // Знач. 0 буфера на i-ом баре
         i--;                                   // Расчёт индекса следующего бара
        }

   return(rates_total);

  }
//+------------------------------------------------------------------+

Je viens de commencer, je ne sais pas encore comment écrire dans cette langue. Mais le problème est le suivant : si dans une nouvelle fenêtre, le graphique apparaît. Mais je ne peux pas l'afficher dans l'actuel... Quelle est mon erreur ? Considérant que je n'ai pas pu moi-même l'écrire et que je ne trouve pas d'exemples ici. De plus, il est clair que ce n'est pas par le biais d'une fonction comme SetChartData(point1,point2) ; cela se produit tout seul...

Et la variable semble être définie(indicator_chart_window), mais cela ne fonctionne toujours pas.....

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Как прописать расписание торговли робота? Здравствуйте...
 
Vladimir Karputov:

Absolument tout est disponible. Décrivez plus en détail ce que signifie exactement "lorsque j'essaie d'utiliser les guillemets de l'historique des minutes" ? Que faites-vous ou voulez-vous faire exactement ?

Pour télécharger l'historique des cours, chargez MetaTrader 5, cliquez sur l'icône avec le symbole du dollar : "Symbol List Display" (ou vous pouvez appuyer sur Ctrl U). La fenêtre "Symboles" apparaît. Dans l'onglet "SPECIFICATION", trouvez la paire de devises souhaitée, par exemple GBPCHF. Dans l'onglet "BARs", définissez les cotations en minutes (M1) et les dates de début et de fin de la période requise. Après avoir cliqué sur le bouton "REQUEST", un fichier csv sera téléchargé, qui pourra être utilisé pour tester des stratégies avec le Metatrader ou avec vos propres programmes.

En utilisant EXCEL vous pouvez visualiser le contenu de ce fichier, où la première ligne révèle les informations du fichier, c'est-à-dire "date, heure" et ensuite" OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL", "VOL", "SPREAD".

Je sais exactement ce que ces données signifient, mais comment faire BIT et ASK à partir de ces données, que MetaTrader 5 utilise ?

 
Veuillez m'indiquer où dans mt5 vous pouvez vérifier les informations sur un symbole ? Je me souviens que dans mt 4 vous pouviez vérifier dans le testeur de stratégie, mais dans le testeur mt5 je n'ai pas trouvé cette fonction.