Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 686

 

Buon pomeriggio. Come visualizzare l'ora della barra nella finestra dei dati del terminale nel formato "aaaa.mm.gg" e "hh:mi" usando un indicatore.

Il buffer dell'indicatore può visualizzare sia il tempo in secondi da 00:00 1 gennaio 1970, o dopo la conversione(TimeToStr)

o troncare la data o l'ora. Ho bisogno di qualche consiglio, grazie in anticipo!

 

#property strict dovrebbe essere aggiunto, dopo di che l'output della data sarà nel formato "yyyyy.mm.dd hh:mm:ss" anche senza conversione.

o TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)

 

tu malvagio

Sembra che non sia così semplice, o c'è qualcosa che non capisco?

Come versione, il cane è sepolto nel buffer dell'indicatore, poiché è un tipo 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



 

Buon pomeriggio, compagni!

Questa è la prima volta sul forum, quindi non prendetemi a calci se questa è una domanda fuori moda...

Come aprire trade in ciclo dopo un certo intervallo (ogni minuto, per esempio)?

Grazie in anticipo
 
vld:

tu malvagio

Sembra che non sia così semplice, o c'è qualcosa che non capisco?

Come versione, il cane è sepolto nel buffer dell'indicatore, poiché è un tipo double.


Perché metti la stringa nel buffer dell'indicatore?
 
Sanyo:

Buon pomeriggio, compagni!

Questa è la prima volta sul forum, quindi non prendetemi a calci se questa è una domanda fuori moda...

Come aprire trade in un ciclo ad un certo intervallo (ogni minuto per esempio)?

Grazie in anticipo.

Controllando l'apertura di una nuova barra del TF appropriato!
 
Sanyo:

Buon pomeriggio, compagni!

Questa è la prima volta sul forum, quindi non prendetemi a calci se questa è una domanda fuori moda...

Come aprire trade in un ciclo ad un certo intervallo (ogni minuto per esempio)?

Grazie in anticipo.
Leggi su OnTimer()
 

Ciao, ho questa domanda:

MT4 ha grandi possibilità per l'ottimizzazione degli esperti, ma c'è qualche strumento per ottimizzare gli indicatori? Se voglio ottimizzare i parametri di un indicatore in modo che le sue letture siano il più possibile "corrette", è vero che l'unico modo per farlo è scrivere un ekspert sulla sua base ed eseguirlo nella storia?

E vorrei anche sapere se MT-4 ha un criterio personalizzato di ottimizzazione degli Expert Advisors come in MT5?

 

Ragazzi ho dimenticato...

Come ottenere un array di ordini correnti e fare un ciclo attraverso di esso. E il loop per ottenere le informazioni sull'ordine. MT4, grazie...

 
Vinin:

E perché metti la stringa nel buffer dell'indicatore?

Capisco l'assurdità di questa azione, ma non capisco come usare l'indicatore

visualizzare l'ora della barra nella finestra dei dati del terminale nel formato "aaaa.mm.gg" e "hh:mi" (come prima e seconda riga nella finestra dei dati del terminale)

Il buffer indicatore emette il tempo in secondi dalle 00:00 del 1° gennaio 1970 assegnandogli time[i],

o dopo la conversione(TimeToString) data o ora troncata.

E se c'è la possibilità di visualizzarlo usando strumenti MQL personalizzati, per favore consigliate come farlo. Grazie in anticipo!