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

 
pako:

interroger le tampon, par exemple comme ceci

Cela ne fonctionne pas. Quel que soit le nombre de tampons que vous définissez, seul le dernier extremum calculé est écrit de toute façon(
 
mavar:

Comment puis-je voir la bollinger sur le graphique exactement dans les paramètres qui sont dans le code ? Où sont configurés les paramètres de l'indicateur requis.


La bollinger fonctionne, mais elle lit des valeurs erronées.

Je veux dire que je peux construire un graphique en partant du haut ou du bas, le long de l'exposant, etc. Comment le réguler dans le code et le voir sur un graphique pour contrôler visuellement l'EA ?

Lorsque je lance Metatrader5, les indicateurs qui sont utilisés dans le testeur de stratégie sont dessinés automatiquement.
 
LBatters:
Dans metatrader5, lorsque je lance mon EA, dans le testeur de stratégie, les indicateurs que vous utilisez sont dessinés.

Je ne les ai pas dessinés ! Qu'est-ce que je fais de mal ?

Voici mon code :


//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                                                           Andrey |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Andrey"
#property link      "http://www.mql5.com"
#property version   "1.00"

int BolBandsHandle;                // хэндл индикатора Bolinger Bands
double BBUp[],BBLow[],BBMidle[];   // динамические массивы для хранения численных значений Bollinger Bands
//--- входные параметры
input int bands_period= 20;        // Период Bollinger Bands
input int dema_period= 20;         // Период DEMA
input int bands_shift = 0;         // Смещение относительно графика
input double deviation= 2;         // Стандартное отклонение
int demaHandle;                    // хэндл индикатора DEMA

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   printf("test string");
   
     //---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   printf("test string3");
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

//Переменная типа MqlTick позволяет за один вызов функции SymbolInfoTick() получить значения time, Ask, Bid, Last и Volume.
      MqlTick last_tick;
      //---
      if(SymbolInfoTick(Symbol(),last_tick))
        {
         Print(last_tick.time,": Bid = ",last_tick.bid,
               " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume, "  LastPrice = ",last_tick.last );
        }
      else Print("SymbolInfoTick() failed, error = ",GetLastError());
      //---
      
        //---Читаем свечку
   MqlRates rates[];
   ArraySetAsSeries(rates,true);
   int copied=CopyRates(Symbol(),0,0,1,rates);
   if(copied>0)
     {
      //Print("Скопировано баров: "+copied);
      string format="open = %G, high = %G, low = %G, close = %G, volume = %d";
      string out;
      int size=fmin(copied,10);
      for(int i=0;i<size;i++)
        {
         //out=i+":"+TimeToString(rates[i].time);
         out=out+" "+StringFormat(format,
                                  rates[i].open,
                                  rates[i].high,
                                  rates[i].low,
                                  rates[i].close,
                                  rates[i].tick_volume);
         Print(out);
         Print(rates[i].open - rates[i].close );
        }
     }
   else Print("Не удалось получить исторические данные по символу ",Symbol());

//---=======-----\_____BOLLINGER____/--------========--//
//--- получить хэндл индикатора Bollinger Bands и DEMA
   BolBandsHandle=iBands(NULL,PERIOD_M30,bands_period,bands_shift,deviation,PRICE_CLOSE);
   demaHandle=iDEMA(NULL,PERIOD_D1,dema_period,0,PRICE_CLOSE);
   
//--- копируем новые значения индикаторов используя хэндлы
   if(CopyBuffer(BolBandsHandle,0,0,3,BBMidle)<0 || CopyBuffer(BolBandsHandle,1,0,3,BBUp)<0
      || CopyBuffer(BolBandsHandle,2,0,3,BBLow)<0)
     {
      Alert("Ошибка копирования буферов индикатора Bollinger Bands - номер ошибки:",GetLastError(),"!!");
      return;
     }
//********** это цикл надо добавить в код советника, выводит значения при наступлении нового бара
   for(int nbar=0; nbar < 1; nbar++)
     Print("nbar=", nbar, "  BBLow[nbar]=", DoubleToString(BBLow[nbar], _Digits), "  BBMidle[nbar]", DoubleToString(BBMidle[nbar], _Digits),
                    "  BBUp[nbar]=", DoubleToString(BBUp[nbar], _Digits));

  }
//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
//---
   printf("test string 1 ");
 
   
  }
//+------------------------------------------------------------------+


 
C-4:
Le dernier championnat organisé par MetaQuotes remonte à 2012. Il n'existe plus de tels championnats aujourd'hui. Mais de nombreux courtiers organisent encore leurs propres championnats. Vous pouvez y participer.
C'est un bon site, j'y participe moi-même. Dans la plupart d'entre eux, les EA sont interdits, mais il y en a avec des EA et même des gratuits avec des prix. _http://contestsarena.com/xm/ru#/login/
 
LBatters:
Cela ne fonctionne pas. Quel que soit le nombre de tampons que vous définissez, il est toujours dit que seul le dernier extremum est calculé(
C'est ce qu'il dit, le dernier extremum
 

comment faire pour que l'EA dessine des lignes de bollinger au démarrage ?

J'ai (code ci-dessus) sorti quelques valeurs de bollinger, mais j'ai besoin d'observer les paramètres visuellement.

 

Au secours ! !!

J'ai téléchargé et installé Metatrader 4 build 711.

J'ai téléchargé et installé uncompte de démonstration sur InstaForex-Demo.com.

Je ne peux pas m'abonner aux signaux gratuits, ni par le terminal, ni par le site web.

J'ai entré le mot de passe et je me suis connecté à l'onglet "Communauté" dans le terminal.

le bilan montre

J'ai une connexion

dans le terminal :

2014.10.15 23:35:16.541 Virtual Hosting : échec de la connexion au serveur 'www.mql5.com' (www.mql5.com:443 failed)


2014.10.15 23:08:20.101 MQL5.community : l'autorisation a échoué

2014.10.15 23:08:01.847 Signal : '61447950' : échec de l'obtention de la liste des signaux, erreur de connexion
2014.10.15 23:03:19.887 MQL5.community : l'autorisation a échoué
2014.10.15 23:03:01.696 Signal : '61447950' : échec de l'obtention de la liste des signaux, erreur de connexion

Aidez-nous à comprendre...

 
xscanerx:

H 2014.10.15 23:08:20.101 MQL5.community : l'autorisation a échoué

Cela indique un mot de passe incorrect. Erreurs possibles - vous insérez un espace, vous oubliez le signe "_", vous confondez les majuscules et les minuscules lors de la saisie.
 
Pouvez-vous me dire comment faire pour qu'un EA augmente le lot dans une position déjà ouverte? MQL5. Merci déjà.
 
ArkFatalist:
Pouvez-vous me dire comment faire pour qu'un EA augmente le lot dans une position déjà ouverte? MQL5. Merci déjà.
Ouvrez une position supplémentaire avec un lot égal à l'augmentation et avec la même direction que la position déjà ouverte. MT5 fusionnera les deux positions en une seule position cumulée par lui-même.
Raison: