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

 

Bon après-midi. Comment puis-je utiliser l'indicateur pour afficher l'heure de la barre dans la fenêtre de données du terminal au format "yyyyy.mm.dd" et "hh:mi".

Le tampon indicateur peut afficher soit le temps en secondes à partir de 00:00 1 janvier 1970, soit après conversion(TimeToStr).

ou une date ou une heure tronquée. J'ai besoin de conseils, merci d'avance !

 

#property strict devrait être ajouté, après quoi la sortie de la date sera au format "yyyyy.mm.dd hh:mm:ss" même sans conversion.

ou TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)

 

tu evillive

On dirait que ce n'est pas si simple, ou y a-t-il quelque chose que je ne comprends pas ?

En version, le chien est enterré dans le tampon de l'indicateur, car il est de type double.

//+------------------------------------------------------------------+
//|                                                   WinData_v1.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2

string g_DataTimeValue;

double WinDataBuffer[];
double WinNumberBarBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   IndicatorDigits(0);//(8)

   SetIndexBuffer(0,WinDataBuffer);
   SetIndexStyle(0,DRAW_NONE);

   SetIndexBuffer(1,WinNumberBarBuffer);
   SetIndexStyle(1,DRAW_NONE);

   SetIndexLabel(0,"WinDataTime");
   SetIndexLabel(1,"№ Bara");

//---
   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[])
  {
//---
   for(int i=0; i<100; i++)
     {

      g_DataTimeValue=TimeToString(time[i],TIME_DATE|TIME_SECONDS);

      WinDataBuffer[i]=TimeToString(time[i],TIME_DATE|TIME_SECONDS);
      WinNumberBarBuffer[i]=i;
      // WinDataBuffer[i]=StrToDouble(g_DataTimeValue);

      Print(" WinDataBuffer[i] = ",WinDataBuffer[i],"  WinNumberBarBuffer[i] = ",WinNumberBarBuffer[i],
            "  g_DataTimeValue = ",g_DataTimeValue);

     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
Принт:


2014.08.11 15:39:54.016 WinData_v1 EURUSD,M1:  WinDataBuffer[i] = 2014.08  WinNumberBarBuffer[i] = 99.0  g_DataTimeValue = 2014.08.06 11:41:00



 

Bonjour, camarades !

C'est la première fois que je viens sur le forum, alors ne me frappez pas si c'est une question démodée...

Comment ouvrir des transactions en cycle après un certain intervalle (chaque minute, par exemple) ?

D'avance, merci
 
vld:

tu evillive

On dirait que ce n'est pas si simple, ou y a-t-il quelque chose que je ne comprends pas ?

En version, le chien est enterré dans le tampon de l'indicateur, car il est de type double.


Pourquoi mettez-vous la chaîne dans le tampon de l'indicateur?
 
Sanyo:

Bonjour, camarades !

C'est la première fois que je viens sur le forum, alors ne me frappez pas si c'est une question démodée...

Comment ouvrir des positions dans un cycle à un certain intervalle (toutes les minutes par exemple) ?

Merci d'avance.

En vérifiant l'ouverture d'une nouvelle barre du TF approprié !
 
Sanyo:

Bonjour, camarades !

C'est la première fois que je viens sur le forum, alors ne me frappez pas si c'est une question démodée...

Comment ouvrir des positions dans un cycle à un certain intervalle (toutes les minutes par exemple) ?

Merci d'avance.
Lisez sur OnTimer()
 

Bonjour, j'ai cette question :

MT4 offre de grandes possibilités pour l'optimisation des experts, mais existe-t-il un outil pour optimiser les indicateurs ? Si je veux optimiser les paramètres d'un indicateur pour que ses lectures soient le plus "correctes" possible, est-il vrai que la seule façon de le faire est d'écrire un ekspert sur sa base et de le faire tourner dans l'historique ?

Et je voudrais aussi savoir si MT-4 a un critère personnalisé d'optimisation des Expert Advisors comme dans MT5 ?

 

Les gars, j'ai oublié...

Comment obtenir un tableau des commandes en cours et le parcourir en boucle. Et boucle pour obtenir les informations sur la commande. MT4, merci...

 
Vinin:

Et pourquoi mettez-vous la chaîne dans le tampon de l'indicateur ?

Je comprends l'absurdité de cette action, mais je ne comprends pas comment utiliser l'indicateur

afficher l'heure de la barre dans la fenêtre de données du terminal au format "aaaa.mm.jj" et "hh:mi" (comme première et deuxième lignes de la fenêtre de données du terminal)

Le tampon indicateur va soit sortir le temps en secondes à partir de 00:00 1er janvier 1970 en lui assignant time[i],

ou après conversion(TimeToString) date ou heure tronquée.

Et s'il est possible de l'afficher à l'aide d'outils MQL personnalisés, veuillez m'indiquer comment le faire. Merci d'avance !